concurrency 1.0: concorrência em ambientes corporativos

Post on 09-Jul-2015

182 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

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

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 usa? • Demo • Case • Referências

Sobre "Eu"

3

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

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, JNDI, RMI, etc)

Interface Gráfica (Swing, AWT)

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

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 tido como má pratica. • Threads dentro de EJBs/Servlets • não gerenciáveis. • sem garantia.

• Contexto • JMS e EJBs assíncronos podem ser

complexos

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 • ContextService

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 “log” • MongoDB • Utiliza contexto para salvar páginas html

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

Perguntas??????

26

OBRIGADO!Concurrency 1.0: Concorrência em Ambientes Corporativos

Thiago Gonzaga @thiago_javaboy

thiago.gonzaga@zup.com.br

top related