SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
Java nas Nuvens:
Uma abordagem de Cloud Computing com Java




                              Thiago Gonzaga
                                Java Noroeste
Agenda

   Quem?!
   Java?! Que saci é esse?
   Cloud Computing?! Que saci é esse, parte 2?
   Google App Engine
   Por quê Java?
   Por onde começo?
   JSP
   Servlets
   Banco de Dados NoSQL (Big Table)
   Mapeamento Objeto-Relacional e Persistência
   Java Noroeste
Quem é esse LOKO?!

   Estudante de computação
   Trabalhou na Sun Microsystems (hoje, Oracle) por 2 anos.
   Programador Java há +5 anos.
   Palestrante em vários eventos: Campus Party, Just Java, etc
   Coordenador do Java Noroeste
   Membro fundador e organizador do projeto Java Day
   E Professor de Inglês!!!
JAVA?! QUE SACI É ESSE?!
O que é Java?



Linguagem de programação + Plataforma
Linguagem

   Alto nível
   Híbrida
   Compilada para bytecodes
   Orientada a objetos
   Sintáxe semelhante ao C++
   Robusta e altamente escalável
   Multiplataforma
Plataforma

   Java Virtual Machine
   Responsável por tornar Java multiplataforma
   Interpreta bytecodes e tranforma em linguagem
    de máquina
   JIT (Just-in-Time Compiler)
   Sandbox
   Garbage Collector
Processo do Código
Ou seja...
QUE DIFERENÇA ISSO FAZ?!
Essa...
CLOUD COMPUTING?! QUE SACI É ESSE?
            PARTE 2
Cloud Computing

   informações são processadas e armazenadas
    em diversos servidores (centenas, muitas
    vezes milhares deles) espalhados pela Internet.
   Transparência
   Internet = Nuvem (Cloud)
   Serviço
   Pague pelo que usar
   Melhor aproveitamento dos recursos
Cloud Computing

   Serviços na Cloud:
       IaaS (Infrastructure as a Service, ou
        Infraestrutura como Serviço)
       PaaS (Platform as a Service, ou Plataforma
        como Serviço)
       SaaS (Software as a Service, ou Software
        como Serviço)
Google App Engine

   PaaS
   Conjunto de tecnologias para criar e hospedar
    aplicativos da web
   Java
   Python
   BigTable (NoSQL)
   Alta disponibilidade
   Gratuito até certo ponto
Por Quê Java?

   Plataforma
   JVM
   JIT
   Sandbox
   Escalabilidade
   Scala, PHP, Ruby, Python, ...
Por onde começo?

   Baixe o Eclipse
   Baixe o SDK
Problema




    Cadastro de participantes do evento
Vamos por partes...

   Módulos:
       Cadastro
       Edição
       Remoção de registros
       Busca de um registro
JSP

   Java Server Pages
   Integração Cliente/Servidor
   Utiliza 2 padrões de codificação: Java e JSP
    tags
   O conteúdo é gerado no servidor e
    transformado em HTML.
   Similar ao PHP e ASP.
Exemplo

   Tags:
    <%@ page contentType="text/html;charset=UTF-8"
    language="java" %> (obrigatória no topo de toda página JSP
    antes de qualquer html)
    <%@ page import="java.util.List" %> (imports da página)
   Java:
   <% out.println(”Hello World!”) %> - Todo código java vai
    entre ”<% %>”
Servlets

   Miniservidores
   Recursos disponiveis na parte do servidor
   Acesso via GET ou POST
   Acesso direto ao Banco de Dados
NoSQL

   Sistema simples
   Geralmente arquivo de texto plano
   Sem relacionamentos
   Mais rápido
   Problema de consistência de dados
   Pode ser resolvido via código
Mapeamento Objeto/Relacional

   Define a tabela do banco em um POJO (Plan
    Old Java Object)
   Persistentes
   JPA (Java Persistence API)
   Simples de usar
   Pode trabalhar em conjunto com outros
    frameworks, como Hibernate ou TopLink
Exemplo
@Entity
public class Participante {

            @Id
            @GeneratedValue(strategy = GenerationType.IDENTITY)
            private Long id;
            private String nome;
            private String email;

            public Long getId() {
            return id;
            }

            public String getNome() {
            return nome;
            }

            public void setNome(String nome) {
            this.nome = nome;
            }


            public String getEmail() {
            return email;
            }

            public void setEmail(String email) {
            this.email = email;
            }
}
Prática
Java Noroeste

   Grupo de usuários Java
   Lista de e-mails
   Mais de 1000 usuários cadastrados
   Um dos maiores grupos do Brasil
   Dúvidas
   Eventos
   Região de Rio Preto
   Site: www.javanoroeste.com.br
?!

DÚVIDAS
OBRIGADO!
Java nas Nuvens:
Uma abordagem de Cloud Computing com Java




Thiago Gonzaga
Twitter: @thiago_javaboy
Facebook: http://www.facebook.com/thiago.gonzaga

Mais conteúdo relacionado

Semelhante a Compweek

Apresentação java
Apresentação javaApresentação java
Apresentação javamunosai
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos JavaMarcio Marinho
 
Inovando na plataforma Java
Inovando na plataforma JavaInovando na plataforma Java
Inovando na plataforma JavaEteg
 
Java Bahia Desenvolvimento Java Area1
Java Bahia Desenvolvimento Java Area1Java Bahia Desenvolvimento Java Area1
Java Bahia Desenvolvimento Java Area1guestc9a1c7
 
Certificacoes java
Certificacoes javaCertificacoes java
Certificacoes javaBruno Garcia
 
Navegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo javaNavegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo javaAndrei Tognolo
 
Apache NiFi com postgresql
Apache NiFi com postgresqlApache NiFi com postgresql
Apache NiFi com postgresqlGerdan Santos
 
Apache NiFi com PostgreSQL - PGConf.Brasil 2018
Apache NiFi com PostgreSQL - PGConf.Brasil 2018Apache NiFi com PostgreSQL - PGConf.Brasil 2018
Apache NiFi com PostgreSQL - PGConf.Brasil 2018Davy Alvarenga Machado
 
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228MoisesInacio
 
Spring framework 2.5
Spring framework 2.5Spring framework 2.5
Spring framework 2.5Diego Pacheco
 
Java: A Máquina Virtual e seu Mercado de Trabalho
Java: A Máquina Virtual e seu Mercado de TrabalhoJava: A Máquina Virtual e seu Mercado de Trabalho
Java: A Máquina Virtual e seu Mercado de TrabalhoAndrey Masiero
 
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...Daniel Destro Do Carmo
 
Introdução ao Google AppEngine
Introdução ao Google AppEngineIntrodução ao Google AppEngine
Introdução ao Google AppEngineRafael Nunes
 

Semelhante a Compweek (20)

Jsp+Jdbc+Servlets
Jsp+Jdbc+ServletsJsp+Jdbc+Servlets
Jsp+Jdbc+Servlets
 
teste86940.78038637294
teste86940.78038637294teste86940.78038637294
teste86940.78038637294
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Apresentação java
Apresentação javaApresentação java
Apresentação java
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos Java
 
Inovando na plataforma Java
Inovando na plataforma JavaInovando na plataforma Java
Inovando na plataforma Java
 
Inovando na Plataforma Java
Inovando na Plataforma JavaInovando na Plataforma Java
Inovando na Plataforma Java
 
Java Bahia Desenvolvimento Java Area1
Java Bahia Desenvolvimento Java Area1Java Bahia Desenvolvimento Java Area1
Java Bahia Desenvolvimento Java Area1
 
Certificacoes java
Certificacoes javaCertificacoes java
Certificacoes java
 
Minicurso Java
Minicurso JavaMinicurso Java
Minicurso Java
 
Navegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo javaNavegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo java
 
Apache NiFi com postgresql
Apache NiFi com postgresqlApache NiFi com postgresql
Apache NiFi com postgresql
 
Apache NiFi com PostgreSQL - PGConf.Brasil 2018
Apache NiFi com PostgreSQL - PGConf.Brasil 2018Apache NiFi com PostgreSQL - PGConf.Brasil 2018
Apache NiFi com PostgreSQL - PGConf.Brasil 2018
 
Tecnologia Java
Tecnologia JavaTecnologia Java
Tecnologia Java
 
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
 
Spring framework 2.5
Spring framework 2.5Spring framework 2.5
Spring framework 2.5
 
MC - Java Enterprise Edition 6 (Java EE)
MC - Java Enterprise Edition 6 (Java EE)MC - Java Enterprise Edition 6 (Java EE)
MC - Java Enterprise Edition 6 (Java EE)
 
Java: A Máquina Virtual e seu Mercado de Trabalho
Java: A Máquina Virtual e seu Mercado de TrabalhoJava: A Máquina Virtual e seu Mercado de Trabalho
Java: A Máquina Virtual e seu Mercado de Trabalho
 
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...
 
Introdução ao Google AppEngine
Introdução ao Google AppEngineIntrodução ao Google AppEngine
Introdução ao Google AppEngine
 

Mais de Thiago Gonzaga

Big Data: Seus problemas estão apenas começando
Big Data: Seus problemas estão apenas começandoBig Data: Seus problemas estão apenas começando
Big Data: Seus problemas estão apenas começandoThiago Gonzaga
 
Keynote Abertura 20 Dias de Java - Javanoroeste
Keynote Abertura 20 Dias de Java - JavanoroesteKeynote Abertura 20 Dias de Java - Javanoroeste
Keynote Abertura 20 Dias de Java - JavanoroesteThiago Gonzaga
 
Concurrency 1.0: Concorrência em Ambientes Corporativos
Concurrency 1.0: Concorrência em Ambientes CorporativosConcurrency 1.0: Concorrência em Ambientes Corporativos
Concurrency 1.0: Concorrência em Ambientes CorporativosThiago Gonzaga
 
Virtualização e cloud computing
Virtualização e cloud computingVirtualização e cloud computing
Virtualização e cloud computingThiago Gonzaga
 
Introdução a Tecnologia Java
Introdução a Tecnologia JavaIntrodução a Tecnologia Java
Introdução a Tecnologia JavaThiago Gonzaga
 

Mais de Thiago Gonzaga (8)

Big Data: Seus problemas estão apenas começando
Big Data: Seus problemas estão apenas começandoBig Data: Seus problemas estão apenas começando
Big Data: Seus problemas estão apenas começando
 
Software Livre
Software LivreSoftware Livre
Software Livre
 
Keynote Abertura 20 Dias de Java - Javanoroeste
Keynote Abertura 20 Dias de Java - JavanoroesteKeynote Abertura 20 Dias de Java - Javanoroeste
Keynote Abertura 20 Dias de Java - Javanoroeste
 
Java 8 e futuro
Java 8 e futuroJava 8 e futuro
Java 8 e futuro
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Concurrency 1.0: Concorrência em Ambientes Corporativos
Concurrency 1.0: Concorrência em Ambientes CorporativosConcurrency 1.0: Concorrência em Ambientes Corporativos
Concurrency 1.0: Concorrência em Ambientes Corporativos
 
Virtualização e cloud computing
Virtualização e cloud computingVirtualização e cloud computing
Virtualização e cloud computing
 
Introdução a Tecnologia Java
Introdução a Tecnologia JavaIntrodução a Tecnologia Java
Introdução a Tecnologia Java
 

Compweek

  • 1. Java nas Nuvens: Uma abordagem de Cloud Computing com Java Thiago Gonzaga Java Noroeste
  • 2. Agenda  Quem?!  Java?! Que saci é esse?  Cloud Computing?! Que saci é esse, parte 2?  Google App Engine  Por quê Java?  Por onde começo?  JSP  Servlets  Banco de Dados NoSQL (Big Table)  Mapeamento Objeto-Relacional e Persistência  Java Noroeste
  • 3. Quem é esse LOKO?!  Estudante de computação  Trabalhou na Sun Microsystems (hoje, Oracle) por 2 anos.  Programador Java há +5 anos.  Palestrante em vários eventos: Campus Party, Just Java, etc  Coordenador do Java Noroeste  Membro fundador e organizador do projeto Java Day  E Professor de Inglês!!!
  • 4. JAVA?! QUE SACI É ESSE?!
  • 5. O que é Java? Linguagem de programação + Plataforma
  • 6. Linguagem  Alto nível  Híbrida  Compilada para bytecodes  Orientada a objetos  Sintáxe semelhante ao C++  Robusta e altamente escalável  Multiplataforma
  • 7. Plataforma  Java Virtual Machine  Responsável por tornar Java multiplataforma  Interpreta bytecodes e tranforma em linguagem de máquina  JIT (Just-in-Time Compiler)  Sandbox  Garbage Collector
  • 12. CLOUD COMPUTING?! QUE SACI É ESSE? PARTE 2
  • 13. Cloud Computing  informações são processadas e armazenadas em diversos servidores (centenas, muitas vezes milhares deles) espalhados pela Internet.  Transparência  Internet = Nuvem (Cloud)  Serviço  Pague pelo que usar  Melhor aproveitamento dos recursos
  • 14. Cloud Computing  Serviços na Cloud:  IaaS (Infrastructure as a Service, ou Infraestrutura como Serviço)  PaaS (Platform as a Service, ou Plataforma como Serviço)  SaaS (Software as a Service, ou Software como Serviço)
  • 15. Google App Engine  PaaS  Conjunto de tecnologias para criar e hospedar aplicativos da web  Java  Python  BigTable (NoSQL)  Alta disponibilidade  Gratuito até certo ponto
  • 16. Por Quê Java?  Plataforma  JVM  JIT  Sandbox  Escalabilidade  Scala, PHP, Ruby, Python, ...
  • 17. Por onde começo?  Baixe o Eclipse  Baixe o SDK
  • 18. Problema Cadastro de participantes do evento
  • 19. Vamos por partes...  Módulos:  Cadastro  Edição  Remoção de registros  Busca de um registro
  • 20. JSP  Java Server Pages  Integração Cliente/Servidor  Utiliza 2 padrões de codificação: Java e JSP tags  O conteúdo é gerado no servidor e transformado em HTML.  Similar ao PHP e ASP.
  • 21. Exemplo  Tags: <%@ page contentType="text/html;charset=UTF-8" language="java" %> (obrigatória no topo de toda página JSP antes de qualquer html) <%@ page import="java.util.List" %> (imports da página)  Java:  <% out.println(”Hello World!”) %> - Todo código java vai entre ”<% %>”
  • 22. Servlets  Miniservidores  Recursos disponiveis na parte do servidor  Acesso via GET ou POST  Acesso direto ao Banco de Dados
  • 23. NoSQL  Sistema simples  Geralmente arquivo de texto plano  Sem relacionamentos  Mais rápido  Problema de consistência de dados  Pode ser resolvido via código
  • 24. Mapeamento Objeto/Relacional  Define a tabela do banco em um POJO (Plan Old Java Object)  Persistentes  JPA (Java Persistence API)  Simples de usar  Pode trabalhar em conjunto com outros frameworks, como Hibernate ou TopLink
  • 25. Exemplo @Entity public class Participante { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String nome; private String email; public Long getId() { return id; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }
  • 27. Java Noroeste  Grupo de usuários Java  Lista de e-mails  Mais de 1000 usuários cadastrados  Um dos maiores grupos do Brasil  Dúvidas  Eventos  Região de Rio Preto  Site: www.javanoroeste.com.br
  • 29. OBRIGADO! Java nas Nuvens: Uma abordagem de Cloud Computing com Java Thiago Gonzaga Twitter: @thiago_javaboy Facebook: http://www.facebook.com/thiago.gonzaga