CONCORRÊNCIA EM AMBIENTES
CORPORATIVOS
Concurrency 1.0:
Thiago Gonzaga
@thiago_javaboy
thiago.gonzaga@zup.com.br
Agenda
2
• Concorrência: Java SE vs. Java EE
• Problemas, problemas e mais problemas…
• Deep into
• Pra onde ir?
• Quem us...
Sobre "Eu"
3
• Desenvolvedor Java
• Coordenador do Java Noroeste
• Organizador do Java Day (SJRP)
• Bláh
• Bláh
• Bláh
• E...
Concorrência é tudo igual?
R: Conceito sim, aplicação não.
4
Plataforma Java SE
5
JVM
Bibliotecas Base (java.lang.Thread, java.util.concurrent, etc)
Bibliotecas de integração (JDBC, J...
Java EE
6
Plataforma Java SE
Processos, Gerenciamento de threads, controle de tempo de execução
Container EJB
Gerenciament...
Cumé?
Houston, we have a problem!
Problemas
8
• Thread pools gerenciados pelo container.
• Utilizar API de concorrência do Java SE no
Java EE sempre foi tid...
O que fazer?
9
Corra pras colinas e salvem suas vidas!!!!
NÃO!!!!!
10
Solução: Java EE 7
Estamos falando "especificamente" da
especificação JSR-236
Java SE Concurrency Utilities
11
• ExecutorService
• ScheduledExecutorService
• ThreadFactory
Java EE Concurrency Utilities
12
• ManagedExecutorService
• ManagedScheduledExecutorService
• ManagedThreadFactory
• Conte...
Setup
13
• Configurações pelo AS
• Quantidade de Cores
• Quantidades de Threads
• Fila
• etc.
Quem implementa?
Demo
15
Case
16
Solução
24
• Notificador
• Cria threads de notificação tanto para
sucessos ou erros.
• EJB Singleton
• Gera registros de “...
Referências
25
• Meu Blog
• www.arquivolivre.com.br
• Oracle
• www.oracle.com/technetwork/java/javaee
• JSR 236 - Concurre...
Perguntas??????
26
OBRIGADO!
Concurrency 1.0: Concorrência em Ambientes Corporativos
Thiago Gonzaga
@thiago_javaboy
thiago.gonzaga@zup.com.br
Concurrency 1.0: Concorrência em Ambientes Corporativos
Concurrency 1.0: Concorrência em Ambientes Corporativos
Concurrency 1.0: Concorrência em Ambientes Corporativos
Concurrency 1.0: Concorrência em Ambientes Corporativos
Concurrency 1.0: Concorrência em Ambientes Corporativos
Concurrency 1.0: Concorrência em Ambientes Corporativos
Concurrency 1.0: Concorrência em Ambientes Corporativos
Próximos SlideShares
Carregando em…5
×

Concurrency 1.0: Concorrência em Ambientes Corporativos

352 visualizações

Publicada em

Concurrency 1.0: Concorrência em Ambientes Corporativos utilizando a nova API do Java EE 7

Código Fonte: https://github.com/javaboybr/TDC2014-Exemplo

Publicada em: Software
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
352
No SlideShare
0
A partir de incorporações
0
Número de incorporações
13
Ações
Compartilhamentos
0
Downloads
3
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Concurrency 1.0: Concorrência em Ambientes Corporativos

  1. 1. CONCORRÊNCIA EM AMBIENTES CORPORATIVOS Concurrency 1.0: Thiago Gonzaga @thiago_javaboy thiago.gonzaga@zup.com.br
  2. 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. 3. Sobre "Eu" 3 • Desenvolvedor Java • Coordenador do Java Noroeste • Organizador do Java Day (SJRP) • Bláh • Bláh • Bláh • Escritor de testes
  4. 4. Concorrência é tudo igual? R: Conceito sim, aplicação não. 4
  5. 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. 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
  7. 7. Cumé? Houston, we have a problem!
  8. 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
  9. 9. O que fazer? 9 Corra pras colinas e salvem suas vidas!!!!
  10. 10. NÃO!!!!! 10 Solução: Java EE 7 Estamos falando "especificamente" da especificação JSR-236
  11. 11. Java SE Concurrency Utilities 11 • ExecutorService • ScheduledExecutorService • ThreadFactory
  12. 12. Java EE Concurrency Utilities 12 • ManagedExecutorService • ManagedScheduledExecutorService • ManagedThreadFactory • ContextService
  13. 13. Setup 13 • Configurações pelo AS • Quantidade de Cores • Quantidades de Threads • Fila • etc.
  14. 14. Quem implementa?
  15. 15. Demo 15
  16. 16. Case 16
  17. 17. 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
  18. 18. Referências 25 • Meu Blog • www.arquivolivre.com.br • Oracle • www.oracle.com/technetwork/java/javaee • JSR 236 - Concurrency Utilities Java EE • jcp.org/en/jsr/detail?id=236 • JSR 166 - Concurrency Utilities Java SE • jcp.org/en/jsr/detail?id=166
  19. 19. Perguntas?????? 26
  20. 20. OBRIGADO! Concurrency 1.0: Concorrência em Ambientes Corporativos Thiago Gonzaga @thiago_javaboy thiago.gonzaga@zup.com.br

×