Como sobreviver com Java 2?

Propaganda
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.
Download