Como sobreviver com Java 2? Saulo Arruda
Agenda Apresentação Contexto do mercado Soluções para Java 5+ Soluções para Java 2 Conclusões
Apresentação Saulo Arruda (http://sauloarruda.eti.br) Trabalha com Java desde 2002 Coordenador do JUG-MS Gerente de Produção da Agence Instrutor do SENAC/MS Trabalha em projetos em Java para Honda, Toyota, Bradesco, Brasil Telecom
Apresentação Quem usa Java? Quem usa JEE? Frameworks: Spring, Hibernate, Struts, JSF, JPA, Submacro, outros? Java 2 ou Java 5+
Agenda Apresentação Contexto do mercado Soluções para Java 5+ Soluções para Java 2 Conclusões
Servidores de Aplicação Grandes empresas que usam Java, dependem de um Servidor de Aplicação (Application Server, ou simplesmente AS) para execução de Aplicações JEE. Componentes de um AS: Container Web (Servlet/JSP) e EJB Webservices, SOA, Rules Engines Cluster, monitoramento
AS Disponíveis Os principais servidores de aplicação do mercado dão suporte à JEE 5 [1]
AS Usados Porém, as empresas não usam a última versão por uma questão de CUSTO OK, mas falando de JDK, os principais Servidores de Aplicação USADOS pelo mercado ainda não usam JEE 5: IBM Websphere 6.0 (IBM JDK 1.4 / J2EE 1.4) Oracle AS 9i (SUN JDK 1.3 / J2EE 1.3) BEA Weblogic 8.1 (BEA JRockit 1.4 / J2EE 1.3)
Custo de Migração No quesito CUSTO, devemos considerar: Licença do servidor de aplicação Horas para instalação do novo ambiente Horas para migração das aplicações Horas para teste integrado Prazo para implantação Prejuízos decorrentes de problemas após a migração
Resumindo Até que o fornecedor do AS continue dando suporte à plataforma antiga, a migração provavelmente não será feita. Logo... Sua aplicação deverá ser compatível com a plataforma (JRE 1.4/ J2EE 1.4) até que a migração aconteça. Previsão: 2010 (daminha bola de cristal)
Agenda Apresentação Contexto do mercado Soluções para Java 5+ Soluções para Java 2 Conclusões
Especificação JEE 5 [2] Foco na facilidade reduzindo necessidade configuração com o uso de Annotations EJB (Enterprise Java Beans) 3.0 JPA (Java Persistence API) 1.0 JSF (JavaServer Faces) 1.2 JAX-WS (Java API for XML-Based Web Services) 2.0
J2EE 1.4 vs JEE 5 [2] Aplicação Item Medido J2EE 1.4 Adventure Builder JEE 5 Melhoria No. de 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
Benefícios [2] Injeção de Dependências @Resource private DataSource iscds; Controle Transacional @TransactionAttribute(MANDATORY) Mapeamento Objeto Relacional @Entity public class Pessoa { @Id private Integer id; } @PersistenceContext EntityManager em;
Benefícios [2] POJOs de Negócio e Webservices @WebService(name= pessoaservice ) @Stateless public class PessoaServiceBean implements PessoaService JavaServer Faces Managed Beans public class PessoaMB { private Pessoa pessoa; public void salvar() { } }
Benefícios [3] IDEs mais completas Vários fornecedores para as especificações (JPA, JSF) Componentes JSF de prateleira Testabilidade sem servidor JEE Menos extensões proprietárias do AS
Agenda Apresentação Contexto do mercado Soluções para Java 5+ Soluções para Java 2 Conclusões
Limitadores O uso de Annotations é o maior limitador para a adoção de novas tecnologias A maioria dos bons frameworks na sua última versão são compatíveis com J2EE 1.4, mas não com 1.3 Limitações da especificações J2EE 1.3 (especialmente Servlet e JSP)
Frameworks Persistência: Hibernate 3.2, Spring JDBC IoC e DI: Spring Framework 2.5 Template (Web): SiteMesh 2.3 Teste de Unidade: JUnit 3.8 Web: Spring MVC 2.5, WebWork 2.2 Webservices: XFire 1.2
Servidores de Aplicação O único requisito para o uso dos frameworks propostos é J2EE 1.4: JBoss 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!) Isto é, boa parte dos AS usados atualmente pelo mercado!
Dependências Na prática, usando os frameworks citados, seu ambiente deve ser compatível com: Servlet 2.4 JSP 2.0 JRE/JDK 1.4 Não usa EJB, mas garante escalabilidade para grandes sistemas
Agenda Apresentação Contexto do mercado Soluções para Java 5+ Soluções para Java 2 Conclusões
Arquitetura Boa notícia: É possível desenvolver aplicações sem EJB! JPA é a consagração do sucesso do Hibernate JSF pega as melhores idéias de todos os frameworks Web XFire é webservice mamão com açúcar
Vantagens de Java 2 Arquitetura simples, com pouca de pendência do Servidor de Aplicação Frameworks mais maduros, com menos ocorrência de bugs ou evoluções Java garante compatibilidade retroativa
Desvantagens de Java 2 A aplicação não usa os padrões de mercado (especificações) e por isso os componentes devem parar de evoluir Uso de JRE menos performática JEE 5 é mais produtivo para o desenvolvedor
Perguntas? Devo usar Spring Framework? E JBoss Seam? Qual melhor servidor de aplicação? Hibernate ou JPA? Spring MVC, Struts ou JSF? Como ficar rico?
Obrigado! Saulo Arruda http://sauloarruda.eti.br sauloarruda@gmail.com
Licença
Referências [1] SUN MICROSYSTEMS; Java EE Compatibility. Disponível em http://java.sun.com/javaee/overview/compatibility.jsp. [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/. [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.