O documento discute a concorrência no Java EE versus Java SE, os problemas relacionados à concorrência em ambientes corporativos e como a especificação Java EE 7 resolve esses problemas através da introdução de utilitários de concorrência gerenciados. O documento também inclui uma demonstração e caso de uso para ilustrar essas soluções.
2. Agenda
2
• Concorrência: Java SE vs. Java EE
• Problemas, problemas e mais problemas…
• Deep into
• Pra onde ir?
• Quem usa?
• Demo
• Case
• Referências
3. Sobre "Eu"
3
• Desenvolvedor Java
• Coordenador do Java Noroeste
• Organizador do Java Day (SJRP)
• Bláh
• Bláh
• Bláh
• Escritor de testes
5. Plataforma Java SE
5
JVM
Bibliotecas Base (java.lang.Thread, java.util.concurrent, etc)
Bibliotecas de integração (JDBC, JNDI, RMI, etc)
Interface Gráfica (Swing, AWT)
6. Java EE
6
Plataforma Java SE
Processos, Gerenciamento de threads, controle de tempo de execução
Container EJB
Gerenciamento Lifeclycle
HTTP listeners
Servlets, web
services
Servidor HTTP Container Web
Instância do Servidor de Aplicação
8. Problemas
8
• Thread pools gerenciados pelo container.
• Utilizar API de concorrência do Java SE no
Java EE sempre foi tido como má pratica.
• Threads dentro de EJBs/Servlets
• não gerenciáveis.
• sem garantia.
• Contexto
• JMS e EJBs assíncronos podem ser
complexos
24. Solução
24
• Notificador
• Cria threads de notificação tanto para
sucessos ou erros.
• EJB Singleton
• Gera registros de “log”
• MongoDB
• Utiliza contexto para salvar páginas html