Navegando em um mar de siglas do mundo java
Upcoming SlideShare
Loading in...5
×
 

Navegando em um mar de siglas do mundo java

on

  • 820 views

O números de apis e frameworks que existem para a plataforma Java podem assustar novos desenvolvedores. Essa palestra busca mostrar uma visão geral das principais apis relacionadas ao padrão ...

O números de apis e frameworks que existem para a plataforma Java podem assustar novos desenvolvedores. Essa palestra busca mostrar uma visão geral das principais apis relacionadas ao padrão JavaEE.

Após visitar as principais tecnologias JavaEE, vamos analisar cenários e decidir quais tecnologias utilizar.

Statistics

Views

Total Views
820
Views on SlideShare
820
Embed Views
0

Actions

Likes
1
Downloads
18
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Navegando em um mar de siglas do mundo java Navegando em um mar de siglas do mundo java Presentation Transcript

  • Navegando em ummar de siglas do mundo
  • @andreitognoloandreitognolo@gmail.com
  • andreitognolo/navegando_mar_siglas_java
  • Por que Java?É coolMercado de trabalhoÉ uma plataforma robustaTem uma comunidade ativaÉ fácil de aprender
  • Por que Java?É coolMercado de trabalhoÉ uma plataforma robustaTem uma comunidade ativaGosto de sofrer
  • O que torna o aprendizado difícil?
  • O que você prefere?Documentação extensaUm monte de diagramasUm livro com 500 páginasExemplos fáceis de executar
  • WebRequisiçãoRespostaLógica de NegócioInteraçãoBanco de DadosBanco deDadosSalvaConsulta
  • Ruby on Rails
  • Servlets JSPJSFJPAEJBJdbcHibernateSpring MVCPrimeFacesjQuery AjaxStrutsJavaScriptSpringRichFaces
  • Como o Java se tornou tãopoderoso?
  • Como o Java se tornou tãopoderoso?Concorrência
  • JavaScript Ajax jQuery
  • WebJSP Servlet JSFStruts Spring MVCJavaScript Ajax jQueryPrimeFaces
  • WebLógica de NegócioJSP Servlet JSFStruts Spring MVCJavaScript Ajax jQueryPrimeFacesEJB Spring
  • WebLógica de NegócioInteraçãoBanco de DadosJSP Servlet JSFStruts Spring MVCJavaScript Ajax jQueryJPAPrimeFacesEJB SpringHibernateJdbc
  • WebLógica de NegócioInteraçãoBanco de DadosJSP Servlet JSFStruts Spring MVCJavaScript Ajax jQueryJPAPrimeFacesEJB SpringHibernateJdbc
  • Web
  • Exemplo
  • 2HTTP => Java1(Servidor Web)3HTTP RequestJava => HTTP5HTTP Response64
  • ServletReceber uma requisição e processar suaresposta
  • 2HTTP => Java1(Servidor Web)3HTTP RequestJava => HTTP5HTTP Response64
  • Servlet● Quase tão antiga quanto o Java● Maneira mais "roots" possível● Não inclui forma fácil de se escrever HTMLReceber uma requisição e processar suaresposta
  • Servlet - Pontos fracos?
  • Servlet - Pontos fracos?Processar resposta HTML de um jeitosimples
  • Servlet - Pontos fracos?Processar resposta HTML de um jeitosimplesMesmo assim euutilizo até hoje!!
  • JSP (JavaServer Pages)Processar resposta HTML (template)
  • 2HTTP => Java<html>...</html>(consultarClientes.jsp)51(Servidor Web)3HTTP RequestJava => HTTP6HTTP Response74
  • JSP (JavaServer Pages)Processar resposta HTML (template)● Quase tão antiga quanto o Java● Semelhante a linguagens como PHP
  • JSP - Pontos fracos?
  • JSP - Pontos fracos?Mistura HTML com código Java
  • JSP - Pontos fracos?Mistura HTML com código JavaNão provê Ajax "nativo"
  • StrutsProdutividade na criação de aplicações web("sem" Servlets / "sem" misturar HTML com Java)
  • Struts● Não é um padrão JavaEE● Bastante "burocracia" para criar as páginas● Struts 1.x foi um sucesso! (última versão em 2008)● Struts 2.x nunca ouvi falar de alguém usandoProdutividade na criação de aplicações web("sem" Servlets / "sem" misturar HTML com Java)
  • JSF (JavaServer Faces)Produtividade na criação de aplicações web(sem a burocracia do Struts)
  • 2HTTP => Java<html>...</html>(consultarClientes.xhtml)51(Servidor Web)3HTTP RequestJava => HTTP6HTTP Response74
  • JSF (JavaServer Faces)● Padrão JavaEE● Componentes (não escrevemos HTML, ele é gerado)● Provê Ajax "nativo"Produtividade na criação de aplicações web(sem a burocracia do Struts)
  • "Extensões" para JSFPrimeFaces JBoss RichFaces ICEFacesTemas
  • "Extensões" para JSFPrimeFaces JBoss RichFaces ICEFacesTemas
  • JSF (s/ extensão)
  • JSF - Pontos fracos?
  • JSF - Pontos fracos?Geração de código HTML, CSS e JavaScript(confie em mim, você não quer ver o código que ele gera)
  • Persistência
  • Banco deDadosSELECT ...ResultadoBanco deDadosINSERT INTO ...
  • JDBC (Java DataBase Connectivity)● Pode comunicar com "qualquer" banco de dadosConectar e executar comandos SQL nosbancos de dados
  • JDBCExemplos:Consultar cliente por IdIncluir novo cliente
  • Jdbc - Pontos fracos?
  • Jdbc - Pontos fracos?O desenvolvedor tem que escrever a SQL
  • Jdbc - Pontos fracos?O desenvolvedor tem que escrever a SQLO que fazer com herança?
  • JPA (Java Persistence API)Abstrair o fato que o banco de dadosnão é orientado a objetos
  • Banco deDadosSELECT ...ResultadoBanco deDadosINSERT INTO ...JPAJPA
  • JPA (Java Persistence API)● Não é preciso escrever SQLs de INSERT/UPDATE● Facilita trabalhar com herança no banco de dadosAbstrair o fato que o banco de dadosnão é orientado a objetos
  • JPA - Pontos fracos?Geração de código SQL
  • JPAAPI FrameworkHibernate
  • JPAAPI FrameworkSó interfaces e annotations Faz o trabalho duroHibernate
  • JPAAPI FrameworkSó interfaces e annotations Faz o trabalho duroEspecificação JavaEE Segue espec e tem + coisasHibernate
  • JPAAPI FrameworkSó interfaces e annotations Faz o trabalho duroEspecificação JavaEE Segue espec e tem + coisasDefinido pela Oracle Concorrentes: TopLink,OpenJPA, ...Hibernate
  • Lógica de Negócio
  • Lógica de NegócioExemplo:Transferência bancária entre contas
  • Preciso de alguma API/frameworkpara implementar minha lógica denegócio?
  • Lógica de NegócioRevisitando o exemplo:Transferência bancária entre contas
  • Preciso de alguma API/frameworkpara implementar minha lógica denegócio?
  • Mas seria bom separar minhalógica de negócios do "resto"Em geral, NÃO
  • EJB (Enterprise JavaBeans)● Especificação bastante abrangenteSepara a lógica de negócios dainfraestrutura
  • Quais são os problemas de infraestrutura?● Transação
  • Quais são os problemas de infraestrutura?● Transação● Acesso remoto
  • Quais são os problemas de infraestrutura?● Transação● Acesso remoto● Autenticação e Autorização
  • Quais são os problemas de infraestrutura?● Transação● Acesso remoto● Autenticação e Autorização● Envio de mensagens assíncronas
  • Quais são os problemas de infraestrutura?● Transação● Acesso remoto● Autenticação e Autorização● Envio de mensagens assíncronas● Agendamento de tarefas
  • Quais são os problemas de infraestrutura?● Transação● Acesso remoto● Autenticação e Autorização● Envio de mensagens assíncronas● Agendamento de tarefasJTASession Bean (@Remote)JAASJMSTimer Service
  • EJB - Pontos fracos?
  • EJB - Pontos fracos?Precisa de um Servidor de Aplicação
  • Servidor WebTomcat, Jetty JBoss, GlassFish, WebSphereServidor de Aplicação
  • Servidor WebTomcat, Jetty JBoss, GlassFish, WebSphereNão entende EJB Entende EJBServidor de Aplicação
  • Servidor WebTomcat, Jetty JBoss, GlassFish, WebSphereNão entende EJB Entende EJBLeve (sobe rápido) Pesado (demora mais para subir)Servidor de Aplicação
  • Sendo um consultor dearquiteturas
  • Cenário 1Sistema para locadora do bairro onde você mora
  • Cenário 1Sistema para locadora do bairro onde você moraJSF JPA(JBoss)EJB
  • Cenário 2Sistema para locadora do bairro onde você mora
  • Cenário 2Sistema para locadora do bairro onde você moraJSPServletJPA(Tomcat)
  • Cenário 3Sistema para um consultório médico
  • Cenário 3Sistema para um consultório médicoJSF JPA(JBoss)
  • Cenário 4Reestruturação de um módulo de um sistemabancário
  • Cenário 4Reestruturação de um pedaço de um sistemabancárioJSF JPA(Tomcat)
  • Cenário 5Criação de gestor de conteúdo para site degrande porte
  • Cenário 5Criação de gestor de conteúdo para site degrande porteJSF JPA(Tomcat)
  • @andreitognoloandreitognolo@gmail.com