#Aplicando BigData ao
                     Java EE 6
Otávio Santana
@otaviojava
http://www.java.net/blogs/otaviojava/
http://otaviosantana.blogspot.com.br/
Comunidades

• @javabahia
• @soujava
• @java
•
Big Data com java EE 6
• O que é BigData ?
• BigData nas Empresas
• Novidades no JavaEE6
• Novidades com o Java 7
• SQL
• NOSQL
• NewSQL
• Cache
• DataGrid
• Dicas
Big Data ?



             Conceito ?
             Volumes Grandes ?


             Volume
             Velocidade
Evolução da informática


          •Muitas Pessoas para uma máquina
          •Uma pessoa para uma máquina

          •Uma pessoa para muitas máquinas
Os dados crescem, mas o
tempo de resposta não
      •1000 funcionários 200 terabytes
      •60% ao ano

      •Mais dispositivos

      •Dados vão crescer 50 vezes até 2020
Big Data: O Desafio
    •Respostas rápidas
    •Mineração em tempo real

    •Escalável

    •Velocidade de


    Desenvolvimento
    •Velocidade de modelagem
(
Big Data   •Escalabilidade
           •Horizontal vs Vertical
)
Java EE 6


 Servlets 3.0
Java Server Faces 2.0,
EJB 3.1(com EJB Lite)    25% menos Classe
JPA 2.0 (agora com       50% menos linhas de código
Criteria API)            80% menos XML
JAX-RS
Beans Validation         Simplicidade e Produtividade
Dependency Injection
Java EE 6


Injeção de dependência
Produção de Objetos
Definir escopo
Qualificadores
Interceptadores
Java EE 6


SOA “Escalável”
Comunicação mais simples
Possibilidade de usar JSON
Super simples Fazer o
Servidor e o Cliente
Java 7
Simples
1)multi-try
2)Try-resource
3)Diamante
4)Gerenciamento de Recursos   Rápido
Automático                    1)Refatorações
                              2)Placa de Vídeo
Produtivo                     3)Invoke dynamic
1)NIO2
2)Pacote de concorrência
Java 7


    BIG Data
    1)JEP 141: Aumento do valor de memória da
    JVM
    2)JEP 149: Redução do uso de memória Core
    3)JEP 144: Reduz a latência de Grandes
    Memória ( 32GB até 60%)
Java 7



         Open Source
         1)OpenJDK a referência
SQL


•Tipo de Banco mais adotado
•O mais maduro

•Padrões

•Pouco impacto nas mudanças

•
               •Normalização surgiu na década de 80
               •Hardware diferentes e problemas diferentes

               •Preço armazenamento




                   •16 KB de RAM
                   •800 KB Armazenamento
NOSQL


• Definição
• Arquitetura

•Armazenamento

• Tipos
NOSQL
       Arquitetura          •Redis
   •Amazon Dynamo           •Tokyo Tyrant

   •Scalaris                •MemcacheDb

   •Voldemort               •Amazon SimpleDb

   •CouchDb (thru Lounge)

   •Riak

   •MongoDb (in alpha)

   •BigTable

   •Cassandra

   •HyperTable

   •HBase
NOSQL
       Armazenamento
                              •Scalaris
   •CouchDb                   •Redis
   •MongoDb

   •Riak

   •Voldemort




                •BigTable
                •Cassandra

                •Hbase

                •HyperTable
NOSQL
       Modelo
                            •Cassandra
   •Amazon SimpleDb         •Google BigTable
   •Apache Couchdb
                            •HBase
   •MongoDb
                            •Hyperbase
   •Riak




                        •Amazon Dynamo
                        •Amazon S3
        •Neo4j          •Redis
        •InfoGrid
                        •Scalaris
        •Sones
                        •Voldemort
        •HyperGraphDB
Indexador


•Buscas mais rápidas
•Soluciona Problema


NOSQL
•Buscas Eficientes
NOSQL
NewSQL


•Pega o melhor de dois mundos
•Versão Híbrida

•SQL 2.0
Cache


•Acesso rápido
•Já processados

•2 problemas
Cache


•Esquentar
•Matar o cache

•Dados sempre frescos
Data Grid


•Processos Paralelos
•Load Balancing

•Map Reduce
Escolha seu time


•Use o melhor de vários mundos
•Escolha seu time de frameworks

•Não existe bala de prata

•

•
Dicas


•Conheça bem o seu negócio
•Conceito é fácil vs Aplicar é difícil

•Domine as sopas de letrinhas

•Conheça várias ferramentas

•Evite emulações

•Explore todo o potencial do


JavaEE
•
Cloud


•Paga pelo que usar
•Elasticidade Simples

• Recurso infinito

•Sem se preocupar com infra
Html 5


•Banco de Dados (50 MB)
•Cache (5MB/ página)

•Worker (javascript em thread)

•Recurso do Cliente

•
DEMO
Escrita
Leitura
JAVA EE 6


Explorar o uso do Weld
Gerenciamento do escopo do objeto
Evite um grande número de Camadas (Delay Layer)
Decorator e intecptor
Cuidado com os Singletons
Faça o Clean


•
#Obrigado
Otávio Santana
@otaviojava
http://www.java.net/blogs/otaviojava/
http://otaviosantana.blogspot.com.br/

Bigdata