Programação e Configuração de Aplicações JEE. Edilmar Alves



Documentos relacionados
PROJETO PEDAGÓGICO DE CURSOS

EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

Fundamentos da Plataforma Java EE. Prof. Fellipe Aleixo

Spring: Um suite de novas opções para Java EE

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

Como sobreviver com Java 2? Saulo Arruda

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

CURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias

MÓDULOS DE REGISTRO DE PARA ÓRGÃOS PÚBLICOS

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

UFG - Instituto de Informática

Manual de Procedimentos para Desenvolvimento de Softwares

Integração de sistemas utilizando Web Services do tipo REST

Experiência em missão crítica de missão crítica

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

INTEGRAÇÃO DE TÉCNICAS DE SISTEMAS DISTRIBUÍDOS APLICADA AO DESENVOLVIMENTO DE UM AMBIENTE PARA O JOGO DE XADREZ

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

Aplicações Desktop: Swing/SubMacroForms. Carlos Renato Alves Gouveia Novembro/2008

Projeto Arquitetural do IEmbedded

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.

ARQUITETURA DO SISTEMA ERP PEGASUS

TUTORIAL SISTEMA DE CONTROLE DE ACESSO

CURSO DESENVOLVEDOR JAVA Edição 2010

WebApps em Java com uso de Frameworks

FACULDADE DE TECNOLOGIA SENAC GOIÁS CONTROLE DE ACESSO USANDO O FRAMEWORK RICHFACES. 5º PERÍODO Gestão da Tecnologia da Informação

CURSO DESENVOLVEDOR JAVA Edição 2009

SenchaTouch + PhoneGap

DESENVOLVIMENTO COM JAVA EE E SUAS ESPECIFICAÇÕES

Este livro é dedicado a minha esposa Edna e a todos os desenvolvedores que fizeram do software livre um meio profissional levado a sério.

JSF e PrimeFaces. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul

SISTEMAS OPERACIONAIS

TDC2012. EJB simples e descomplicado, na prática. Slide 1

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Tuning de Servidores de Aplicação Java EE

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse


Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

SOFTWARE INFORMAÇÕES GERAIS

UFG - Instituto de Informática

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition)

Fatos e Mitos do Java EE. Fernando Lozano Consultor 4Linux lozano@4linux.com.br

U3 Sistemas Análise e Desenvolvimento de Softwares ===== Manual de Instalação ===== Manual. Instalação do Sistema

Relatório do GPES. Descrição dos Programas e Plugins Utilizados. Programas Utilizados:

Manual de Instalação Versão 1.0

Projuris Enterprise Visão Geral da Arquitetura do Sistema

ORDEM DE SERVIÇO OS 003/DINFO/ /09/2013

Java e Banco de Dados: JDBC, Hibernate e JPA

UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMÁTICA CIÊNCIA DA COMPUTAÇÃO LINGUAGENS PARA APLICAÇÃO COMERCIAL. Java Peristence API 1.

Mercado Eletrônico Instalação e Atualização MEConnect2

SISTEMA GERENCIADOR DE BANCO DE DADOS


PROTÓTIPO DE UM SISTEMA DE RASTREAMENTO PARA COMPUTADORES

Aula 03 - Projeto Java Web

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

UFG - Instituto de Informática

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Persistência de dados com JPA. Hélder Antero Amaral Nunes

Mini-curso Gratuito Globalcode Slide 1

MANUAL DE UTILIZAÇÃO DO SISTEMA GLPI

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

MANUAL DE USO DO COMUNICADOR INSTANTÂNEO

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

SISTEMAS DISTRIBUÍDOS

Índice. Para encerrar um atendimento (suporte) Conversa Adicionar Pessoa (na mesma conversa)... 20

Demoiselle Tutorial Módulo 1 Arquitetura

Padrão ix. Manual de Instalação do Q-Ware Server Versão

BI Citsmart Fornece orientações necessárias para instalação, configuração e utilização do BI Citsmart.

JPA: Persistência padronizada em Java

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática

Personata Recorder. Manual de Instalação e Configuração

OneDrive: saiba como usar a nuvem da Microsoft

PORTARIA N Nº Rio de Janeiro, 24 de Outubro de 2013.

SISTEMA PARA AUTOMATIZAR O MONITORAMENTO DE ROTEADORES DE UM PROVEDOR DE ACESSO

Configurações necessárias para emissão de NF-e no sistema Lojamix

Arquivos de Instalação Instalação JDK Instalação Apache Tomcat Configurando Tomcat... 9

TRANSMISSOR ECF. Sistema de transmissão de arquivos Nota Fiscal Paulista. Manual de Utilização

GERENCIAL SEPLAG CARTILHA AGENDA. Sumário

EAI Manual do Administrador

Sistema de chamados técnicos GUIA DO USUÁRIO. Gestão de Atendimento de Chamados Técnicos. SoftSol Sistemas & Informática

JPA Passo a Passo. Henrique Eduardo M. Oliveira henrique@voffice.com.br. Globalcode Open4Education

SolarWinds Kiwi Syslog Server

Manual de Instalação. Sistema de Gestão e Acompanhamento de Frotas SIGAFROTA. Versão 1.0 Francisco Edilson do Nascimento

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick

Instalando e Atualizando a Solução Arquivos de Instalação Instalação do Servidor de Aplicação Instalação JDK...

Framework. Marcos Paulo de Souza Brito João Paulo Raittes

Computação II Orientação a Objetos

Mobile Command. Diego Armando Gusava. Orientador: Mauro Marcelo Mattos

AUDITORIA ELETRÔNICA DE ORGÃOS PÚBLICOS DO ESTADO DE SÃO PAULO

Transcrição:

Programação e Configuração de Aplicações JEE Edilmar Alves

Palestrante Sócio da InterSite Informática Professor Universitário Coordenador do JUGMS e membro do BrazilJUGs Fã de Linux, Java e outros softwares livres

Sumário Estruturação do Projeto Pacote básico de frameworks JSF2 + CDI + CODI JPA + JTA Webservices Timers Configurações do GlassFish Profiling Conclusão

Estruturação do Projeto O que é uma Aplicação JEE? Interface Cliente Servidor de Aplicações JEE Banco de Dados Aplicação JEE não é necessariamente com interface CLIENTE = WEB! Cliente em qualquer lugar + webservices (SOAP ou REST)

Estruturação do Projeto Interface: Desktop (Swing, JavaFX, etc) Mobile (Android, ios, WinPhone, etc) Web (framework JS, JSF, etc) Aplicação Servidora: Webservices Controllers JSF Servidor JEE: GlassFish, JBoss, TomEE, etc

Estruturação do Projeto Foco: JSF + Controllers + GlassFish Pastas da Interface: Principal (xhtmls JSF) /js (Javascript) /css (layout) /imagens /WEB-INF/templates (padrões de layout JSF)

Estruturação do Projeto Pacotes Java: control: Controllers JSF dao: operações no BD entity: mapeamentos de tabelas do BD util: outras classes úteis em geral

Pacote básico de Frameworks IDE (NetBeans, Eclipse) Servidor de Aplicações embutido na IDE JSF + {Rich Prime My}faces: controle da interface CDI: injeção de dependências public class CidadeController { @Inject CidadeDAO dao; } public class CidadeJpaDAO implements CidadeDAO { @PersistenceContext(unitName= BD ) EntityManager em; }

Pacote básico de Frameworks CDI possui alguns bugs, problemas de desempenho e alocação de memória, e uma certa lentidão no desenvolvimento CODI: extensões ao projeto CDI, feito pela Apache/Myfaces Fácil integração em projetos já existentes com JSF e CDI Resolve vários problemas do CDI

Pacote básico de Frameworks ConversationScoped: Novo escopo do CDI Maior que RequestScoped Menor que SessionScoped Ideal para telas CRUD @Inject Conversation conversation; Entrar na tela: conversation.begin(); Continuar após inserir/alterar/remover Sair da tela: conversation.end(); PARECE SIMPLES!!!

Pacote básico de Frameworks CODI ConversationScoped: Não requer conversation.begin(); Gerencia melhor os objetos da conversação, evitando bugs de AJAX dos Frameworks JSF (RichFaces,PrimeFaces) Tela CRUD sem botão Sair + Menu Principal

Pacote básico de Frameworks Tela CRUD sem botão Sair + Menu Principal CDI não sabe que saiu da tela, apenas que entrou na outra Se fizer na entrada da outra end() + begin(), não elimina objetos da conversação anterior PROBLEMA: Consumo excessivo de RAM SOLUÇÃO: no JSF, ao acionar cada opção de menu, chamar método do CODI para fechar conversação do controller atual conversation.close();

Pacote básico de Frameworks JPA: camada de persistência de objetos em BDs de forma padronizada no Java Hibernate, EclipseLink, etc: implementações de persistência usadas pelo JPA JTA: Gerenciamento de transações com o BD Integrado aos servidores de aplicações CDI injeta objetos de sessão e de transação do BD @PersistenceContext(unitName= BD ) EntityManager em; @Resource UserTransaction ut;

Webservices Implementação no servidor Comunicação por XML sobre HTTP Interfaces SOAP ou REST SOAP: REST: Mais comum entre sistemas de diferentes fornecedores XML de comunicação maior Mais novo, XML menor, mais simples de desenvolver

Webservices É possível programar de tal forma que Controllers JSF usem código comum com Webservices Permitir várias interfaces clientes com pouco código adicional Cuidado com situações específicas de cada interface!!! 1. Como retornar mensagens de aviso ou erro para o usuário final na interface cliente??? 2. Como armazenar o contexto de objetos???

Timers Executam em data/hora pré-determinada no servidor de aplicações Semelhante a uma Tarefa Agendada/Windows ou Crontab/Linux Pode ser definida a data/hora por anotação: @Schedule(dayOfWeek="Sun", hour="0")

Timers Mais flexível no arquivo WEB-INF/ejb-jar.xml <timer> <schedule> <second>0</second> <minute>0</minute> <hour>1</hour> <month>*</month> <year>*</year> </schedule>... </timer>

Timers Não possui interface cliente Aviso de término por email, arquivo de log, etc Uso: Tarefas longas e automatizadas fora do expediente, como geração de relatórios gerenciais Troca de informações com outros sistemas Monitoramento de dados

Configurações do GlassFish Básico Next-Next-Finish Porta 4848: Admin Console Porta 8080: aplicações Configurações Default-config Configurações da JVM: -client => -server -XX:MaxPermSize=192m -Xmx512m

Configurações do GlassFish Básico Next-Next-Finish Porta 4848: Admin Console Porta 8080: aplicações Configurações Default-config Configurações da JVM: -client => -server -XX:MaxPermSize=192m -Xmx512m

Configurações do GlassFish Configurações Default-config Configurações de Rede Escutas de Rede http-listener-1: Aba HTTP: Compactação = On Tipos MIME compactáveis = text/html,text/xml,text/plain,text/css,text/javascript,application/json,text/xhtml Aba Cache de arquivos: Status = Ativado

Configurações do GlassFish Recursos JDBC: Grupos de Conexões JDBC: Pools de Conexão, cuidado para analisar números mínimo/máximo de conexões, e os tempos de reciclagem Recursos do JDBC: nomes correspondentes aos pools, que são usados no código para injetar EntityManager e UserTransaction (JTA) Sessões JavaMail: mesma idéia dos Recursos JDBC, mas para pool de conexões com servidor de email Outros: JMS, JNDI,...

Profiling Analisar gargalos de CPU, RAM, disco, etc, em uma aplicação JVisualVM: ferramenta nativa do JDK para monitoramento de aplicações Pode-se monitorar o GlassFish e sua aplicação

Profiling

Profiling

Profiling

Conclusão Uma alternativa viável = JSF/{Rich Prime}Faces + CDI/CODI + JPA/JTA/Hibernate + GlassFish Desenvolver = juntar peças certas (frameworks + servidor + SEU conhecimento)