Java nas Nuvens:Uma abordagem de Cloud Computing com Java
Thiago GonzagaJava 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@Entitypublic 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 GonzagaTwitter: @thiago_javaboyFacebook: http://www.facebook.com/thiago.gonzaga
Recommended