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 No. de Classes 67 Builder Linhas de Cód. 3.284 RosterApp No. de Classes 17 Linhas de Cód. 987 Arquivos XML 9 Linhas de XML 782 JEE 5 Melhoria 43 2.777 7 716 2 26 36% menos classes 15% menos código 27% menos classes 27% menos código 78% menos arq. XML 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
[email protected]
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.