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!!!
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
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, ...
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