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 SpringHi...
WebLógica de NegócioInteraçãoBanco de DadosJSP Servlet JSFStruts Spring MVCJavaScript Ajax jQueryJPAPrimeFacesEJB SpringHi...
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 ...
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 ...
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 n...
"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 ...
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 dados...
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 pel...
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ínc...
Quais são os problemas de infraestrutura?● Transação● Acesso remoto● Autenticação e Autorização● Envio de mensagens assínc...
Quais são os problemas de infraestrutura?● Transação● Acesso remoto● Autenticação e Autorização● Envio de mensagens assínc...
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 par...
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
Navegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo java
Próximos SlideShares
Carregando em…5
×

Navegando em um mar de siglas do mundo java

1.137 visualizações

Publicada em

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.

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.137
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
28
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Navegando em um mar de siglas do mundo java

  1. 1. Navegando em ummar de siglas do mundo
  2. 2. @andreitognoloandreitognolo@gmail.com
  3. 3. andreitognolo/navegando_mar_siglas_java
  4. 4. Por que Java?É coolMercado de trabalhoÉ uma plataforma robustaTem uma comunidade ativaÉ fácil de aprender
  5. 5. Por que Java?É coolMercado de trabalhoÉ uma plataforma robustaTem uma comunidade ativaGosto de sofrer
  6. 6. O que torna o aprendizado difícil?
  7. 7. O que você prefere?Documentação extensaUm monte de diagramasUm livro com 500 páginasExemplos fáceis de executar
  8. 8. WebRequisiçãoRespostaLógica de NegócioInteraçãoBanco de DadosBanco deDadosSalvaConsulta
  9. 9. Ruby on Rails
  10. 10. Servlets JSPJSFJPAEJBJdbcHibernateSpring MVCPrimeFacesjQuery AjaxStrutsJavaScriptSpringRichFaces
  11. 11. Como o Java se tornou tãopoderoso?
  12. 12. Como o Java se tornou tãopoderoso?Concorrência
  13. 13. JavaScript Ajax jQuery
  14. 14. WebJSP Servlet JSFStruts Spring MVCJavaScript Ajax jQueryPrimeFaces
  15. 15. WebLógica de NegócioJSP Servlet JSFStruts Spring MVCJavaScript Ajax jQueryPrimeFacesEJB Spring
  16. 16. WebLógica de NegócioInteraçãoBanco de DadosJSP Servlet JSFStruts Spring MVCJavaScript Ajax jQueryJPAPrimeFacesEJB SpringHibernateJdbc
  17. 17. WebLógica de NegócioInteraçãoBanco de DadosJSP Servlet JSFStruts Spring MVCJavaScript Ajax jQueryJPAPrimeFacesEJB SpringHibernateJdbc
  18. 18. Web
  19. 19. Exemplo
  20. 20. 2HTTP => Java1(Servidor Web)3HTTP RequestJava => HTTP5HTTP Response64
  21. 21. ServletReceber uma requisição e processar suaresposta
  22. 22. 2HTTP => Java1(Servidor Web)3HTTP RequestJava => HTTP5HTTP Response64
  23. 23. 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
  24. 24. Servlet - Pontos fracos?
  25. 25. Servlet - Pontos fracos?Processar resposta HTML de um jeitosimples
  26. 26. Servlet - Pontos fracos?Processar resposta HTML de um jeitosimplesMesmo assim euutilizo até hoje!!
  27. 27. JSP (JavaServer Pages)Processar resposta HTML (template)
  28. 28. 2HTTP => Java<html>...</html>(consultarClientes.jsp)51(Servidor Web)3HTTP RequestJava => HTTP6HTTP Response74
  29. 29. JSP (JavaServer Pages)Processar resposta HTML (template)● Quase tão antiga quanto o Java● Semelhante a linguagens como PHP
  30. 30. JSP - Pontos fracos?
  31. 31. JSP - Pontos fracos?Mistura HTML com código Java
  32. 32. JSP - Pontos fracos?Mistura HTML com código JavaNão provê Ajax "nativo"
  33. 33. StrutsProdutividade na criação de aplicações web("sem" Servlets / "sem" misturar HTML com Java)
  34. 34. 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)
  35. 35. JSF (JavaServer Faces)Produtividade na criação de aplicações web(sem a burocracia do Struts)
  36. 36. 2HTTP => Java<html>...</html>(consultarClientes.xhtml)51(Servidor Web)3HTTP RequestJava => HTTP6HTTP Response74
  37. 37. 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)
  38. 38. "Extensões" para JSFPrimeFaces JBoss RichFaces ICEFacesTemas
  39. 39. "Extensões" para JSFPrimeFaces JBoss RichFaces ICEFacesTemas
  40. 40. JSF (s/ extensão)
  41. 41. JSF - Pontos fracos?
  42. 42. 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)
  43. 43. Persistência
  44. 44. Banco deDadosSELECT ...ResultadoBanco deDadosINSERT INTO ...
  45. 45. JDBC (Java DataBase Connectivity)● Pode comunicar com "qualquer" banco de dadosConectar e executar comandos SQL nosbancos de dados
  46. 46. JDBCExemplos:Consultar cliente por IdIncluir novo cliente
  47. 47. Jdbc - Pontos fracos?
  48. 48. Jdbc - Pontos fracos?O desenvolvedor tem que escrever a SQL
  49. 49. Jdbc - Pontos fracos?O desenvolvedor tem que escrever a SQLO que fazer com herança?
  50. 50. JPA (Java Persistence API)Abstrair o fato que o banco de dadosnão é orientado a objetos
  51. 51. Banco deDadosSELECT ...ResultadoBanco deDadosINSERT INTO ...JPAJPA
  52. 52. 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
  53. 53. JPA - Pontos fracos?Geração de código SQL
  54. 54. JPAAPI FrameworkHibernate
  55. 55. JPAAPI FrameworkSó interfaces e annotations Faz o trabalho duroHibernate
  56. 56. JPAAPI FrameworkSó interfaces e annotations Faz o trabalho duroEspecificação JavaEE Segue espec e tem + coisasHibernate
  57. 57. JPAAPI FrameworkSó interfaces e annotations Faz o trabalho duroEspecificação JavaEE Segue espec e tem + coisasDefinido pela Oracle Concorrentes: TopLink,OpenJPA, ...Hibernate
  58. 58. Lógica de Negócio
  59. 59. Lógica de NegócioExemplo:Transferência bancária entre contas
  60. 60. Preciso de alguma API/frameworkpara implementar minha lógica denegócio?
  61. 61. Lógica de NegócioRevisitando o exemplo:Transferência bancária entre contas
  62. 62. Preciso de alguma API/frameworkpara implementar minha lógica denegócio?
  63. 63. Mas seria bom separar minhalógica de negócios do "resto"Em geral, NÃO
  64. 64. EJB (Enterprise JavaBeans)● Especificação bastante abrangenteSepara a lógica de negócios dainfraestrutura
  65. 65. Quais são os problemas de infraestrutura?● Transação
  66. 66. Quais são os problemas de infraestrutura?● Transação● Acesso remoto
  67. 67. Quais são os problemas de infraestrutura?● Transação● Acesso remoto● Autenticação e Autorização
  68. 68. Quais são os problemas de infraestrutura?● Transação● Acesso remoto● Autenticação e Autorização● Envio de mensagens assíncronas
  69. 69. Quais são os problemas de infraestrutura?● Transação● Acesso remoto● Autenticação e Autorização● Envio de mensagens assíncronas● Agendamento de tarefas
  70. 70. 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
  71. 71. EJB - Pontos fracos?
  72. 72. EJB - Pontos fracos?Precisa de um Servidor de Aplicação
  73. 73. Servidor WebTomcat, Jetty JBoss, GlassFish, WebSphereServidor de Aplicação
  74. 74. Servidor WebTomcat, Jetty JBoss, GlassFish, WebSphereNão entende EJB Entende EJBServidor de Aplicação
  75. 75. Servidor WebTomcat, Jetty JBoss, GlassFish, WebSphereNão entende EJB Entende EJBLeve (sobe rápido) Pesado (demora mais para subir)Servidor de Aplicação
  76. 76. Sendo um consultor dearquiteturas
  77. 77. Cenário 1Sistema para locadora do bairro onde você mora
  78. 78. Cenário 1Sistema para locadora do bairro onde você moraJSF JPA(JBoss)EJB
  79. 79. Cenário 2Sistema para locadora do bairro onde você mora
  80. 80. Cenário 2Sistema para locadora do bairro onde você moraJSPServletJPA(Tomcat)
  81. 81. Cenário 3Sistema para um consultório médico
  82. 82. Cenário 3Sistema para um consultório médicoJSF JPA(JBoss)
  83. 83. Cenário 4Reestruturação de um módulo de um sistemabancário
  84. 84. Cenário 4Reestruturação de um pedaço de um sistemabancárioJSF JPA(Tomcat)
  85. 85. Cenário 5Criação de gestor de conteúdo para site degrande porte
  86. 86. Cenário 5Criação de gestor de conteúdo para site degrande porteJSF JPA(Tomcat)
  87. 87. @andreitognoloandreitognolo@gmail.com

×