concurrency 1.0: concorrência em ambientes corporativos

27
CONCORRÊNCIA EM AMBIENTES CORPORATIVOS Concurrency 1.0: Thiago Gonzaga @thiago_javaboy [email protected]

Upload: thiago-gonzaga

Post on 09-Jul-2015

182 views

Category:

Software


1 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Concurrency 1.0: Concorrência em Ambientes Corporativos

CONCORRÊNCIA EM AMBIENTES CORPORATIVOS

Concurrency 1.0:

Thiago Gonzaga @thiago_javaboy

[email protected]

Page 2: Concurrency 1.0: Concorrência em Ambientes Corporativos

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

Page 3: Concurrency 1.0: Concorrência em Ambientes Corporativos

Sobre "Eu"

3

• Desenvolvedor Java • Coordenador do Java Noroeste • Organizador do Java Day (SJRP) • Bláh • Bláh • Bláh • Escritor de testes

Page 4: Concurrency 1.0: Concorrência em Ambientes Corporativos

Concorrência é tudo igual?

R: Conceito sim, aplicação não.

4

Page 5: Concurrency 1.0: Concorrência em Ambientes Corporativos

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)

Page 6: Concurrency 1.0: Concorrência em Ambientes Corporativos

Java EE

6Plataforma 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

Page 7: Concurrency 1.0: Concorrência em Ambientes Corporativos

Cumé?

Houston, we have a problem!

Page 8: Concurrency 1.0: Concorrência em Ambientes Corporativos

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

Page 9: Concurrency 1.0: Concorrência em Ambientes Corporativos

O que fazer?

9

Corra pras colinas e salvem suas vidas!!!!

Page 10: Concurrency 1.0: Concorrência em Ambientes Corporativos

NÃO!!!!!

10

Solução: Java EE 7 Estamos falando "especificamente" da

especificação JSR-236

Page 11: Concurrency 1.0: Concorrência em Ambientes Corporativos

Java SE Concurrency Utilities

11

• ExecutorService • ScheduledExecutorService • ThreadFactory

Page 12: Concurrency 1.0: Concorrência em Ambientes Corporativos

Java EE Concurrency Utilities

12

• ManagedExecutorService • ManagedScheduledExecutorService • ManagedThreadFactory • ContextService

Page 13: Concurrency 1.0: Concorrência em Ambientes Corporativos

Setup

13

• Configurações pelo AS • Quantidade de Cores • Quantidades de Threads • Fila • etc.

Page 14: Concurrency 1.0: Concorrência em Ambientes Corporativos

Quem implementa?

Page 15: Concurrency 1.0: Concorrência em Ambientes Corporativos

Demo

15

Page 16: Concurrency 1.0: Concorrência em Ambientes Corporativos

Case

16

Page 17: Concurrency 1.0: Concorrência em Ambientes Corporativos
Page 18: Concurrency 1.0: Concorrência em Ambientes Corporativos
Page 19: Concurrency 1.0: Concorrência em Ambientes Corporativos
Page 20: Concurrency 1.0: Concorrência em Ambientes Corporativos
Page 21: Concurrency 1.0: Concorrência em Ambientes Corporativos
Page 22: Concurrency 1.0: Concorrência em Ambientes Corporativos
Page 23: Concurrency 1.0: Concorrência em Ambientes Corporativos
Page 24: Concurrency 1.0: Concorrência em Ambientes Corporativos

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

Page 25: Concurrency 1.0: Concorrência em Ambientes Corporativos

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

Page 26: Concurrency 1.0: Concorrência em Ambientes Corporativos

Perguntas??????

26

Page 27: Concurrency 1.0: Concorrência em Ambientes Corporativos

OBRIGADO!Concurrency 1.0: Concorrência em Ambientes Corporativos

Thiago Gonzaga @thiago_javaboy

[email protected]