30
Como sobreviver com Java 2? Saulo Arruda

Como Sobreviver Com Java2

Embed Size (px)

DESCRIPTION

Palestra ministrada no Javaneiros 2008 no dia 08/11/2008.

Citation preview

Page 1: Como Sobreviver Com Java2

Como sobreviver com Java 2?

Saulo Arruda

Page 2: Como Sobreviver Com Java2

Agenda

• Apresentação• Contexto do mercado• Soluções para Java 5+• Soluções para Java 2• Conclusões

Page 3: Como Sobreviver Com Java2

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

Page 4: Como Sobreviver Com Java2

Apresentação

• Quem usa Java?• Quem usa JEE?• Frameworks: Spring, Hibernate,

Struts, JSF, JPA, Submacro, outros?• Java 2 ou Java 5+

Page 5: Como Sobreviver Com Java2

Agenda

• Apresentação• Contexto do mercado• Soluções para Java 5+• Soluções para Java 2• Conclusões

Page 6: Como Sobreviver Com Java2

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

Page 7: Como Sobreviver Com Java2

AS Disponíveis

• Os principais servidores de aplicação do mercado dão suporte à JEE 5 [1]

Page 8: Como Sobreviver Com Java2

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)

Page 9: Como Sobreviver Com Java2

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

Page 10: Como Sobreviver Com Java2

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)

Page 11: Como Sobreviver Com Java2

Agenda

• Apresentação• Contexto do mercado• Soluções para Java 5+• Soluções para Java 2• Conclusões

Page 12: Como Sobreviver Com Java2

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

Page 13: Como Sobreviver Com Java2

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

Page 14: Como Sobreviver Com Java2

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;

Page 15: Como Sobreviver Com Java2

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() {…} }

Page 16: Como Sobreviver Com Java2

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

Page 17: Como Sobreviver Com Java2

Agenda

• Apresentação• Contexto do mercado• Soluções para Java 5+• Soluções para Java 2• Conclusões

Page 18: Como Sobreviver Com Java2

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)

Page 19: Como Sobreviver Com Java2

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

Page 20: Como Sobreviver Com Java2

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!

Page 21: Como Sobreviver Com Java2

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

Page 22: Como Sobreviver Com Java2

Agenda

• Apresentação• Contexto do mercado• Soluções para Java 5+• Soluções para Java 2• Conclusões

Page 23: Como Sobreviver Com Java2

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”

Page 24: Como Sobreviver Com Java2

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

Page 25: Como Sobreviver Com Java2

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

Page 26: Como Sobreviver Com Java2

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?

Page 27: Como Sobreviver Com Java2

Obrigado!

Saulo Arrudahttp://[email protected]

Page 28: Como Sobreviver Com Java2

Licença

Page 29: Como Sobreviver Com Java2

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.

Page 30: Como Sobreviver Com Java2