Maio/2009 Java EE: soluções para o mundo corporativo Thiago Faria de Andrade [email_address] www.openk.com.br
Palestrante
Palestrante Thiago Faria de Andrade <ul><ul><li>Programador há 13 anos </li></ul></ul><ul><ul><li>Bacharel em Sistemas de ...
Agenda
Agenda <ul><ul><li>O que é Java EE? </li></ul></ul><ul><ul><li>Arquitetura de referência </li></ul></ul><ul><ul><li>Persis...
O que é Java EE?
O que é Java EE? <ul><ul><li>Plataforma de programação Java para aplicações multi-camadas </li></ul></ul><ul><ul><li>Supor...
Arquitetura de referência
Arquitetura de referência <ul><ul><li>Modelo de solução para sistemas corporativos </li></ul></ul><ul><ul><li>Não é a únic...
Arquitetura de referência Servidor de aplicações Consumidores de WS Negócio Persistência Relatórios Gráficos WebServices R...
Persistência de dados
Persistência de dados Servidor de aplicações Consumidores de WS Negócio Persistência Relatórios Gráficos WebServices Rotin...
Persistência de dados <ul><ul><li>Armazenamento não-volátil de dados </li></ul></ul><ul><ul><li>Normalmente realizada em b...
Persistência de dados Código-fonte
Regras de negócio
Regras de negócio Servidor de aplicações Consumidores de WS Negócio Persistência Relatórios Gráficos WebServices Rotinas D...
Regras de negócio <ul><ul><li>Inteligência do sistema (backend) </li></ul></ul><ul><ul><li>Realiza cálculos, consistências...
Regras de negócio Código-fonte
Serviços web
Serviços web Servidor de aplicações Consumidores de WS Negócio Persistência Relatórios Gráficos WebServices Rotinas DB UI ...
Serviços web <ul><ul><li>Webservices são usados para fornecer serviços remotos para outros sistemas da empresa e para o pú...
Serviços web Código-fonte
Interface com usuário
Interface com usuário Servidor de aplicações Consumidores de WS Negócio Persistência Relatórios Gráficos WebServices Rotin...
Interface com usuário <ul><ul><li>Implementação da interface visual (painéis, botões, campos, etc) </li></ul></ul><ul><ul>...
Interface com usuário Código-fonte
Relatórios
Relatórios Servidor de aplicações Consumidores de WS Negócio Persistência Relatórios Gráficos WebServices Rotinas DB UI Us...
Relatórios <ul><ul><li>Documentos para impressão e análise, com informações valiosas extraídas normalmente do banco de dad...
Relatórios Código-fonte
Gráficos
Gráficos Servidor de aplicações Consumidores de WS Negócio Persistência Relatórios Gráficos WebServices Rotinas DB UI Usuá...
Gráficos <ul><ul><li>Gráficos são excelentes indicadores para descobrir se alguma coisa está indo bem ou mal, e por isso o...
Gráficos Código-fonte
Rotinas
Rotinas Servidor de aplicações Consumidores de WS Negócio Persistência Relatórios Gráficos WebServices Rotinas DB UI Usuário
Rotinas <ul><ul><li>Rotinas são tarefas planejadas para serem executadas em um período pré-definido </li></ul></ul><ul><ul...
Rotinas Código-fonte
Envio de e-mail
Envio de e-mail Servidor de aplicações Consumidores de WS Negócio Persistência Relatórios Gráficos WebServices Rotinas DB ...
Envio de e-mail <ul><ul><li>Praticamente todas as aplicações precisam enviar algum tipo de e-mail para os usuários </li></...
Envio de e-mail Código-fonte
Autenticação e autorização
Autenticação e autorização Servidor de aplicações Consumidores de WS Negócio Persistência Relatórios Gráficos WebServices ...
Autenticação e autorização <ul><ul><li>Um bom mecanismo de autenticação e autorização é extremamente importante, porém mui...
Autenticação e autorização Código-fonte
Servidor de aplicação
Autenticação e autorização Servidor de aplicações Consumidores de WS Negócio Persistência Relatórios Gráficos WebServices ...
Servidor de aplicação <ul><ul><li>Ambiente para instalação e execução das aplicações </li></ul></ul><ul><ul><li>Existem di...
Perguntas? Thiago Faria de Andrade [email_address] http://www.openk.com.br http://blog.openk.com.br Obrigado!
Próximos SlideShares
Carregando em…5
×

Java EE: soluções para o mundo corporativo

2.431 visualizações

Publicada em

Palestra ministrada na faculdade Uniaraxá (Araxá-MG) dia 22/05/2009 por Thiago Faria de Andrade (OpenK Tecnologia) sobre soluções Java EE.

Publicada em: Tecnologia, Negócios
0 comentários
5 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

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

Nenhuma nota no slide

Java EE: soluções para o mundo corporativo

  1. 1. Maio/2009 Java EE: soluções para o mundo corporativo Thiago Faria de Andrade [email_address] www.openk.com.br
  2. 2. Palestrante
  3. 3. Palestrante Thiago Faria de Andrade <ul><ul><li>Programador há 13 anos </li></ul></ul><ul><ul><li>Bacharel em Sistemas de Informação – FPU </li></ul></ul><ul><ul><li>Diretor de treinamentos da OpenK Tecnologia </li></ul></ul><ul><ul><li>Arquiteto, desenvolvedor e instrutor Java </li></ul></ul><ul><ul><li>7 anos de experiência com Java </li></ul></ul><ul><ul><li>Certificado como programador pela Sun (SCJP) </li></ul></ul>
  4. 4. Agenda
  5. 5. Agenda <ul><ul><li>O que é Java EE? </li></ul></ul><ul><ul><li>Arquitetura de referência </li></ul></ul><ul><ul><li>Persistência de dados </li></ul></ul><ul><ul><li>Regras de negócio </li></ul></ul><ul><ul><li>Serviços web </li></ul></ul><ul><ul><li>Interface com usuário </li></ul></ul><ul><ul><li>Relatórios </li></ul></ul><ul><ul><li>Gráficos </li></ul></ul><ul><ul><li>Rotinas </li></ul></ul><ul><ul><li>Envio de e-mail </li></ul></ul><ul><ul><li>Autenticação e autorização </li></ul></ul><ul><ul><li>Servidor de aplicação </li></ul></ul>
  6. 6. O que é Java EE?
  7. 7. O que é Java EE? <ul><ul><li>Plataforma de programação Java para aplicações multi-camadas </li></ul></ul><ul><ul><li>Suporta componentes que são implantados em servidores de aplicações </li></ul></ul><ul><ul><li>Padrão de desenvolvimento corporativo em Java </li></ul></ul><ul><ul><li>Possui uma série de especificações, como JSP, Servlets, JSTL, JSF, JPA, JTA, EJB, etc. </li></ul></ul>
  8. 8. Arquitetura de referência
  9. 9. Arquitetura de referência <ul><ul><li>Modelo de solução para sistemas corporativos </li></ul></ul><ul><ul><li>Não é a única solução e nem a melhor </li></ul></ul><ul><ul><li>Auxilia pessoas com menos experiência na definição de uma boa arquitetura </li></ul></ul><ul><ul><li>Flexível para mudanças de tecnologias usadas nas diversas camadas </li></ul></ul><ul><ul><li>Funciona para implementar a maioria dos sistemas corporativos com baixa complexidade </li></ul></ul><ul><ul><li>Modelos semelhantes amplamente utilizados em todo o mundo </li></ul></ul><ul><ul><li>A OpenK utiliza variações desse modelo em diversos clientes e produtos </li></ul></ul>
  10. 10. Arquitetura de referência Servidor de aplicações Consumidores de WS Negócio Persistência Relatórios Gráficos WebServices Rotinas DB UI Usuário
  11. 11. Persistência de dados
  12. 12. Persistência de dados Servidor de aplicações Consumidores de WS Negócio Persistência Relatórios Gráficos WebServices Rotinas DB UI Usuário
  13. 13. Persistência de dados <ul><ul><li>Armazenamento não-volátil de dados </li></ul></ul><ul><ul><li>Normalmente realizada em bancos de dados </li></ul></ul><ul><ul><li>Uso da JPA para produtividade e transparência de banco de dados </li></ul></ul><ul><ul><li>Hibernate como implementação da JPA </li></ul></ul><ul><ul><li>Uso do padrão DAO para abstração da camada de acesso a dados </li></ul></ul><ul><ul><li>Mapeamento do banco de dados através de anotações da JPA </li></ul></ul><ul><ul><li>Cada entidade deve possuir um DAO com métodos para consultas, inserção, atualização e exclusão (somente o necessário) </li></ul></ul><ul><ul><li>Quando usamos EJB, cada DAO pode ser um Stateless Session Bean </li></ul></ul>
  14. 14. Persistência de dados Código-fonte
  15. 15. Regras de negócio
  16. 16. Regras de negócio Servidor de aplicações Consumidores de WS Negócio Persistência Relatórios Gráficos WebServices Rotinas DB UI Usuário
  17. 17. Regras de negócio <ul><ul><li>Inteligência do sistema (backend) </li></ul></ul><ul><ul><li>Realiza cálculos, consistências, etc </li></ul></ul><ul><ul><li>Deve ser independente de banco de dados (foco no negócio) </li></ul></ul><ul><ul><li>Não deve ter acesso a componentes da tela (é um erro passar como parâmetro objetos que estão fortemente acoplados a camada de visualização) </li></ul></ul><ul><ul><li>Uso de DI (injeção de dependência) para acessar objetos de acesso a dados </li></ul></ul><ul><ul><li>Quando usamos EJB, pode ser um Stateless Session Bean </li></ul></ul>
  18. 18. Regras de negócio Código-fonte
  19. 19. Serviços web
  20. 20. Serviços web Servidor de aplicações Consumidores de WS Negócio Persistência Relatórios Gráficos WebServices Rotinas DB UI Usuário
  21. 21. Serviços web <ul><ul><li>Webservices são usados para fornecer serviços remotos para outros sistemas da empresa e para o público externo (clientes, parceiros, fornecedores, etc) </li></ul></ul><ul><ul><li>Os webservices devem realizar regras de negócio! Cuidado para não criar vários serviços apenas para expor dados e deixar a lógica sobre responsabilidade do consumidor do serviço </li></ul></ul><ul><ul><li>Os serviços devem ter granularidade mais grossa </li></ul></ul><ul><ul><li>São configurados com apenas algumas anotações </li></ul></ul>
  22. 22. Serviços web Código-fonte
  23. 23. Interface com usuário
  24. 24. Interface com usuário Servidor de aplicações Consumidores de WS Negócio Persistência Relatórios Gráficos WebServices Rotinas DB UI Usuário
  25. 25. Interface com usuário <ul><ul><li>Implementação da interface visual (painéis, botões, campos, etc) </li></ul></ul><ul><ul><li>Resposta aos estímulos dos usuários e chamadas às regras de negócio </li></ul></ul><ul><ul><li>Não deve possuir regras de negócio, mas apenas regras de apresentação </li></ul></ul><ul><ul><li>JSF é a especificação padrão para desenvolvimento de UI, principalmente para web </li></ul></ul><ul><ul><li>Existem outros bons frameworks para a camada de apresentação, porém apenas JSF é uma especificação </li></ul></ul><ul><ul><li>Um sistema “perfeito” em sua arquitetura, mas pobre de visual, não gera credibilidade alguma para os usuários </li></ul></ul><ul><ul><li>Existem diversas bibliotecas de componentes ricos em JSF (Richfaces, Icefaces, etc) </li></ul></ul>
  26. 26. Interface com usuário Código-fonte
  27. 27. Relatórios
  28. 28. Relatórios Servidor de aplicações Consumidores de WS Negócio Persistência Relatórios Gráficos WebServices Rotinas DB UI Usuário
  29. 29. Relatórios <ul><ul><li>Documentos para impressão e análise, com informações valiosas extraídas normalmente do banco de dados </li></ul></ul><ul><ul><li>O ideal é que não possua queries SQL no código-fonte dos relatórios (facilita a manutenção e independência de banco de dados) </li></ul></ul><ul><ul><li>JasperReports é um excelente framework para geração de relatórios em Java </li></ul></ul><ul><ul><li>É possível criar relatórios com tabelas cruzadas, gráficos, códigos de barras e etc </li></ul></ul><ul><ul><li>Existe suporte para diversas saídas, como PDF, HTML, XLS, etc </li></ul></ul><ul><ul><li>O código-fonte do relatório é um arquivo XML (JRXML) </li></ul></ul><ul><ul><li>iReport é uma ferramenta visual para edição do JRXML </li></ul></ul>
  30. 30. Relatórios Código-fonte
  31. 31. Gráficos
  32. 32. Gráficos Servidor de aplicações Consumidores de WS Negócio Persistência Relatórios Gráficos WebServices Rotinas DB UI Usuário
  33. 33. Gráficos <ul><ul><li>Gráficos são excelentes indicadores para descobrir se alguma coisa está indo bem ou mal, e por isso os usuários adoram (principalmente executivos) </li></ul></ul><ul><ul><li>JFreeChart é uma biblioteca para geração de gráficos de diversos tipos </li></ul></ul><ul><ul><li>Para web, a saída dos gráficos pode ser JPG, GIF ou PNG </li></ul></ul><ul><ul><li>Pode-se criar um Servlet que executa um método de negócio (que retorna informações valiosas), e esse Servlet gera o gráfico (através do JFreeChart) e envia o fluxo de dados para a saída </li></ul></ul><ul><ul><li>Diversas bibliotecas JSF possuem componentes para geração de gráficos, mas nem sempre esses componentes serão suficientes para o que você precisa </li></ul></ul>
  34. 34. Gráficos Código-fonte
  35. 35. Rotinas
  36. 36. Rotinas Servidor de aplicações Consumidores de WS Negócio Persistência Relatórios Gráficos WebServices Rotinas DB UI Usuário
  37. 37. Rotinas <ul><ul><li>Rotinas são tarefas planejadas para serem executadas em um período pré-definido </li></ul></ul><ul><ul><li>Existem diversas maneiras de programar rotinas em ambientes Java EE (anotações, XML, código-fonte, etc) </li></ul></ul><ul><ul><li>Uma forma interessante é com a utilização do Quartz Framework </li></ul></ul><ul><ul><li>A programação do agendamento de execução pode ser feita através de expressões cron , o que garante bastante flexibilidade </li></ul></ul>
  38. 38. Rotinas Código-fonte
  39. 39. Envio de e-mail
  40. 40. Envio de e-mail Servidor de aplicações Consumidores de WS Negócio Persistência Relatórios Gráficos WebServices Rotinas DB UI Usuário
  41. 41. Envio de e-mail <ul><ul><li>Praticamente todas as aplicações precisam enviar algum tipo de e-mail para os usuários </li></ul></ul><ul><ul><li>JavaMail API é uma forma fácil de trabalhar com e-mails em diversos protocolos </li></ul></ul><ul><ul><li>Diversos servidores de aplicações fornecem componentes prontos para envio de e-mails (basta configurá-los) </li></ul></ul>
  42. 42. Envio de e-mail Código-fonte
  43. 43. Autenticação e autorização
  44. 44. Autenticação e autorização Servidor de aplicações Consumidores de WS Negócio Persistência Relatórios Gráficos WebServices Rotinas DB UI Usuário
  45. 45. Autenticação e autorização <ul><ul><li>Um bom mecanismo de autenticação e autorização é extremamente importante, porém muitas das vezes esse assunto é deixado de lado </li></ul></ul><ul><ul><li>Autenticação é a verificação se as informações de login informadas pelo usuário estão corretas </li></ul></ul><ul><ul><li>Autorização é o controle de acesso aos recursos de um sistema através do usuário identificado (previamente autenticado) </li></ul></ul><ul><ul><li>A API padrão do Java para isso é o JAAS (Java Authentication and Authorization Service) </li></ul></ul><ul><ul><li>Os servidores de aplicações já implementam alguns módulos de autenticação que podem ser reaproveitados </li></ul></ul>
  46. 46. Autenticação e autorização Código-fonte
  47. 47. Servidor de aplicação
  48. 48. Autenticação e autorização Servidor de aplicações Consumidores de WS Negócio Persistência Relatórios Gráficos WebServices Rotinas DB UI Usuário
  49. 49. Servidor de aplicação <ul><ul><li>Ambiente para instalação e execução das aplicações </li></ul></ul><ul><ul><li>Existem diversos AS (application servers) open-source , como JBoss, Glassfish, Geronimo, etc </li></ul></ul><ul><ul><li>Usamos o JBoss por ser bastante popular na comunidade Java, porém os outros servidores também merecem ser avaliados </li></ul></ul><ul><ul><li>Apesar da grande popularidade que estava adquirindo, ainda não se sabe o futuro do Glassfish com a aquisição da Sun pela Oracle </li></ul></ul>
  50. 50. Perguntas? Thiago Faria de Andrade [email_address] http://www.openk.com.br http://blog.openk.com.br Obrigado!

×