Download - Como Sobreviver Com Java2
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
JEE 5 Melhoria
Adventure Builder
No. de Classes 67 43 36% menos classesLinhas de Cód. 3.284 2.777 15% menos código
RosterApp No. de Classes 17 7 27% menos classesLinhas de Cód. 987 716 27% menos códigoArquivos XML 9 2 78% menos arq. XMLLinhas 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 Beanspublic 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 Arrudahttp://[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.