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, R u les 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 J R ockit 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 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
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 c lass 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 T e ste de Unidade:  J U nit 3.8 Web:  Spring MVC 2.5,  WebWork 2.2 Webservices:  X F ire 1.2
Servidores de Aplicação O único requisito para o uso dos frameworks propostos é  J2EE 1.4 : 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!) 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 X Fire  é 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 J B oss 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_address]
Licença
Referências [1] SUN MICROSYSTEMS;  Java EE Compatibility . D i sponí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 .
 

Como Sobreviver Com Java2

  • 1.
    Como sobreviver comJava 2? Saulo Arruda
  • 2.
    Agenda Apresentação Contextodo mercado Soluções para Java 5+ Soluções para Java 2 Conclusões
  • 3.
    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
  • 4.
    Apresentação Quem usa Java ? Quem usa JEE ? Frameworks: Spring, Hibernate, Struts, JSF, JPA, Submacro, outros? Java 2 ou Java 5+
  • 5.
    Agenda Apresentação Contextodo mercado Soluções para Java 5+ Soluções para Java 2 Conclusões
  • 6.
    Servidores de AplicaçãoGrandes 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, R u les Engines Cluster, monitoramento
  • 7.
    AS Disponíveis Osprincipais servidores de aplicação do mercado dão suporte à JEE 5 [1]
  • 8.
    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 J R ockit 1.4 / J2EE 1.3)
  • 9.
    Custo de MigraçãoNo 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
  • 10.
    Resumindo Até queo 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)
  • 11.
    Agenda Apresentação Contextodo mercado Soluções para Java 5+ Soluções para Java 2 Conclusões
  • 12.
    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
  • 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.
    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;
  • 15.
    Benefícios [2]POJOs de Negócio e Webservices @WebService(name=“pessoaService”) @Stateless public class PessoaServiceBean implements PessoaService JavaServer Faces Managed Beans public c lass PessoaMB { private Pessoa pessoa; public void salvar() { …} }
  • 16.
    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
  • 17.
    Agenda Apresentação Contextodo mercado Soluções para Java 5+ Soluções para Java 2 Conclusões
  • 18.
    Limitadores O usode 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)
  • 19.
    Frameworks Persistência: Hibernate 3.2, Spring JDBC IoC e DI: Spring Framework 2.5 Template (Web): SiteMesh 2.3 T e ste de Unidade: J U nit 3.8 Web: Spring MVC 2.5, WebWork 2.2 Webservices: X F ire 1.2
  • 20.
    Servidores de AplicaçãoO único requisito para o uso dos frameworks propostos é J2EE 1.4 : 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!) Isto é, boa parte dos AS usados atualmente pelo mercado!
  • 21.
    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
  • 22.
    Agenda Apresentação Contextodo mercado Soluções para Java 5+ Soluções para Java 2 Conclusões
  • 23.
    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 X Fire é webservice “mamão com açúcar”
  • 24.
    Vantagens de Java2 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
  • 25.
    Desvantagens de Java2 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
  • 26.
    Perguntas? Devo usarSpring Framework? E J B oss Seam? Qual melhor servidor de aplicação? Hibernate ou JPA? Spring MVC, Struts ou JSF? Como ficar rico?
  • 27.
    Obrigado! Saulo Arrudahttp://sauloarruda.eti.br [email_address]
  • 28.
  • 29.
    Referências [1] SUNMICROSYSTEMS; Java EE Compatibility . D i sponí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 .
  • 30.