Como Sobreviver Com Java2

690 visualizações

Publicada em

Palestra ministrada no Javaneiros 2008 no dia 08/11/2008.

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
690
No SlideShare
0
A partir de incorporações
0
Número de incorporações
10
Ações
Compartilhamentos
0
Downloads
6
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Como Sobreviver Com Java2

  1. 1. Como sobreviver com Java 2? Saulo Arruda
  2. 2. Agenda <ul><li>Apresentação </li></ul><ul><li>Contexto do mercado </li></ul><ul><li>Soluções para Java 5+ </li></ul><ul><li>Soluções para Java 2 </li></ul><ul><li>Conclusões </li></ul>
  3. 3. Apresentação <ul><li>Saulo Arruda ( http://sauloarruda.eti.br ) </li></ul><ul><li>Trabalha com Java desde 2002 </li></ul><ul><li>Coordenador do JUG-MS </li></ul><ul><li>Gerente de Produção da Agence </li></ul><ul><li>Instrutor do SENAC/MS </li></ul><ul><li>Trabalha em projetos em Java para Honda, Toyota, Bradesco, Brasil Telecom </li></ul>
  4. 4. Apresentação <ul><li>Quem usa Java ? </li></ul><ul><li>Quem usa JEE ? </li></ul><ul><li>Frameworks: Spring, Hibernate, Struts, JSF, JPA, Submacro, outros? </li></ul><ul><li>Java 2 ou Java 5+ </li></ul>
  5. 5. Agenda <ul><li>Apresentação </li></ul><ul><li>Contexto do mercado </li></ul><ul><li>Soluções para Java 5+ </li></ul><ul><li>Soluções para Java 2 </li></ul><ul><li>Conclusões </li></ul>
  6. 6. Servidores de Aplicação <ul><li>Grandes empresas que usam Java, dependem de um Servidor de Aplicação (Application Server, ou simplesmente AS) para execução de Aplicações JEE. </li></ul><ul><li>Componentes de um AS: </li></ul><ul><ul><li>Container Web (Servlet/JSP) e EJB </li></ul></ul><ul><ul><li>Webservices, SOA, R u les Engines </li></ul></ul><ul><ul><li>Cluster, monitoramento </li></ul></ul>
  7. 7. AS Disponíveis <ul><li>Os principais servidores de aplicação do mercado dão suporte à JEE 5 [1] </li></ul>
  8. 8. AS Usados <ul><li>Porém, as empresas não usam a última versão por uma questão de CUSTO </li></ul><ul><li>OK, mas falando de JDK, os principais Servidores de Aplicação USADOS pelo mercado ainda não usam JEE 5: </li></ul><ul><ul><li>IBM Websphere 6.0 (IBM JDK 1.4 / J2EE 1.4) </li></ul></ul><ul><ul><li>Oracle AS 9i (SUN JDK 1.3 / J2EE 1.3) </li></ul></ul><ul><ul><li>BEA Weblogic 8.1 (BEA J R ockit 1.4 / J2EE 1.3) </li></ul></ul>
  9. 9. Custo de Migração <ul><li>No quesito CUSTO , devemos considerar: </li></ul><ul><ul><li>Licença do servidor de aplicação </li></ul></ul><ul><ul><li>Horas para instalação do novo ambiente </li></ul></ul><ul><ul><li>Horas para migração das aplicações </li></ul></ul><ul><ul><li>Horas para teste integrado </li></ul></ul><ul><ul><li>Prazo para implantação </li></ul></ul><ul><ul><li>Prejuízos decorrentes de problemas após a migração </li></ul></ul>
  10. 10. Resumindo <ul><li>Até que o fornecedor do AS continue dando suporte à plataforma “antiga”, a migração provavelmente não será feita. </li></ul><ul><li>Logo... Sua aplicação deverá ser compatível com a plataforma (JRE 1.4/J2EE 1.4) até que a migração aconteça. </li></ul><ul><li>Previsão: 2010 (daminha bola de cristal) </li></ul>
  11. 11. Agenda <ul><li>Apresentação </li></ul><ul><li>Contexto do mercado </li></ul><ul><li>Soluções para Java 5+ </li></ul><ul><li>Soluções para Java 2 </li></ul><ul><li>Conclusões </li></ul>
  12. 12. Especificação JEE 5 [2] <ul><li>Foco na facilidade reduzindo necessidade configuração com o uso de Annotations </li></ul><ul><li>EJB (Enterprise Java Beans) 3.0 </li></ul><ul><li>JPA (Java Persistence API) 1.0 </li></ul><ul><li>JSF (JavaServer Faces) 1.2 </li></ul><ul><li>JAX-WS (Java API for XML-Based Web Services) 2.0 </li></ul>
  13. 13. J2EE 1.4 vs JEE 5 [2] Aplicação Item Medido J2EE 1.4 JEE 5 Melhoria Adventure Builder No. d e Classes 67 43 36% menos classes Linhas de Cód. 3.284 2.777 15% menos código RosterApp No. de Classes 17 7 27% menos classes Linhas de Cód. 987 716 27% menos código Arquivos XML 9 2 78% menos arq. XML Linhas de XML 782 26 97% menos cód. XML
  14. 14. Benefícios [2] <ul><li>Injeção de Dependências </li></ul><ul><ul><li>@Resource private DataSource iscDS; </li></ul></ul><ul><li>Controle Transacional </li></ul><ul><ul><li>@TransactionAttribute(MANDATORY) </li></ul></ul><ul><li>Mapeamento Objeto Relacional </li></ul><ul><ul><li>@Entity public class Pessoa { </li></ul></ul><ul><ul><li>@Id private Integer id; } </li></ul></ul><ul><ul><li>@PersistenceContext EntityManager em; </li></ul></ul>
  15. 15. Benefícios [2] <ul><li>POJOs de Negócio e Webservices </li></ul><ul><ul><li>@WebService(name=“pessoaService”) </li></ul></ul><ul><ul><li>@Stateless public class PessoaServiceBean implements PessoaService </li></ul></ul><ul><li>JavaServer Faces Managed Beans </li></ul><ul><ul><li>public c lass PessoaMB { </li></ul></ul><ul><ul><li>private Pessoa pessoa; </li></ul></ul><ul><ul><li>public void salvar() { …} } </li></ul></ul>
  16. 16. Benefícios [3] <ul><li>IDEs mais completas </li></ul><ul><li>Vários fornecedores para as especificações (JPA, JSF) </li></ul><ul><li>Componentes JSF de prateleira </li></ul><ul><li>Testabilidade sem servidor JEE </li></ul><ul><li>Menos extensões proprietárias do AS </li></ul>
  17. 17. Agenda <ul><li>Apresentação </li></ul><ul><li>Contexto do mercado </li></ul><ul><li>Soluções para Java 5+ </li></ul><ul><li>Soluções para Java 2 </li></ul><ul><li>Conclusões </li></ul>
  18. 18. Limitadores <ul><li>O uso de Annotations é o maior limitador para a adoção de novas tecnologias </li></ul><ul><li>A maioria dos bons frameworks na sua última versão são compatíveis com J2EE 1.4, mas não com 1.3 </li></ul><ul><li>Limitações da especificações J2EE 1.3 (especialmente Servlet e JSP) </li></ul>
  19. 19. Frameworks <ul><li>Persistência: Hibernate 3.2, Spring JDBC </li></ul><ul><li>IoC e DI: Spring Framework 2.5 </li></ul><ul><li>Template (Web): SiteMesh 2.3 </li></ul><ul><li>T e ste de Unidade: J U nit 3.8 </li></ul><ul><li>Web: Spring MVC 2.5, WebWork 2.2 </li></ul><ul><li>Webservices: X F ire 1.2 </li></ul>
  20. 20. Servidores de Aplicação <ul><li>O único requisito para o uso dos frameworks propostos é J2EE 1.4 : </li></ul><ul><ul><li>J B oss 4.0, IBM Websphere 6.0, BEA Weblogic 9.2, Oracle OC4J 10.1.3, Geronimo 1.0-M5, JOnAS 4.4, Sun AS 8, Tomcat 5.5 e Jetty 5 (isso mesmo!) </li></ul></ul><ul><li>Isto é, boa parte dos AS usados atualmente pelo mercado! </li></ul>
  21. 21. Dependências <ul><li>Na prática, usando os frameworks citados, seu ambiente deve ser compatível com: </li></ul><ul><ul><li>Servlet 2.4 </li></ul></ul><ul><ul><li>JSP 2.0 </li></ul></ul><ul><ul><li>JRE/JDK 1.4 </li></ul></ul><ul><li>Não usa EJB, mas garante escalabilidade para grandes sistemas </li></ul>
  22. 22. Agenda <ul><li>Apresentação </li></ul><ul><li>Contexto do mercado </li></ul><ul><li>Soluções para Java 5+ </li></ul><ul><li>Soluções para Java 2 </li></ul><ul><li>Conclusões </li></ul>
  23. 23. Arquitetura <ul><li>Boa notícia : É possível desenvolver aplicações sem EJB! </li></ul><ul><li>JPA é a consagração do sucesso do Hibernate </li></ul><ul><li>JSF pega as melhores idéias de todos os frameworks Web </li></ul><ul><li>X Fire é webservice “mamão com açúcar” </li></ul>
  24. 24. Vantagens de Java 2 <ul><li>Arquitetura “ simples ”, com pouca de pendência do Servidor de Aplicação </li></ul><ul><li>Frameworks mais maduros , com menos ocorrência de bugs ou evoluções </li></ul><ul><li>Java “ garante ” compatibilidade retroativa </li></ul>
  25. 25. Desvantagens de Java 2 <ul><li>A aplicação não usa os padrões de mercado (especificações) e por isso os componentes devem parar de evoluir </li></ul><ul><li>Uso de JRE menos performática </li></ul><ul><li>JEE 5 é mais produtivo para o desenvolvedor </li></ul>
  26. 26. Perguntas? <ul><li>Devo usar Spring Framework? </li></ul><ul><li>E J B oss Seam? </li></ul><ul><li>Qual melhor servidor de aplicação? </li></ul><ul><li>Hibernate ou JPA? </li></ul><ul><li>Spring MVC, Struts ou JSF? </li></ul><ul><li>Como ficar rico? </li></ul>
  27. 27. Obrigado! <ul><li>Saulo Arruda </li></ul><ul><ul><li>http://sauloarruda.eti.br </li></ul></ul><ul><ul><li>[email_address] </li></ul></ul>
  28. 28. Licença
  29. 29. Referências <ul><li>[1] SUN MICROSYSTEMS; Java EE Compatibility . D i sponível em http://java.sun.com/javaee/overview/compatibility.jsp . </li></ul><ul><li>[2] STEANS, John; CHINNICI, Roberto; et al.; An Introduction to the Java EE 5 Plataform . Sun Microsystems: 2006, Disponível em http://java.sun.com/developer/technicalArticles/J2EE/intro_ee5/ . </li></ul><ul><li>[3] BRIENS, Adams; Java EE 5 vs J2EE 1.4 and some arguments for switching. Disponível em http://adam-bien.com/roller/abien/entry/java_ee_5_vs_j2ee . </li></ul>

×