desenvolva aplicações para a nuvem com cloudbees

23
Desenvolva aplicações para a nuvem com CloudBees - Revista Java Magazine 116 Este artigo tem por objetivo apresentar a plataforma CloudBees, que proporciona ao desenvolvedor maior facilidade nos procedimentos de construção, desenvolvimento e implantação de aplicativos na nuvem. Artigo do tipo Tutorial Recursos especiais neste artigo: Artigo no estilo Solução Completa Autores:Fernanda Cristina Girelli e Everton Coimbra de Araújo Desenvolvendo aplicações para nuvem com CloudBees Este artigo tem por objetivo apresentar a plataforma CloudBees, que proporciona ao desenvolvedor maior facilidade nos procedimentos de construção, desenvolvimento e implantação de aplicativos na nuvem. Visando demonstrar estes procedimentos nessa plataforma, será desenvolvida uma aplicação web referente a um cadastro de alunos e notas, utilizando a linguagem de programação Java. Em que situação o tema é útil Este tema é útil para quem deseja conhecer e utilizar a plataforma CloudBees para desenvolvimento de aplicativos Java para a nuvem. Com ela, a construção, desenvolvimento e hospedagem das aplicações, além de ser gratuita, se torna mais simples, fácil e rápida. Diariamente arquivos são acessados, informações dos mais variados tipos são armazenadas e ferramentas e aplicações são utilizadas de maneira on premise. Este termo é empregado quando é preciso se referir a arquivos, informações e aplicações que são armazenadas/instaladas localmente nos computadores pessoais, ao invés de se utilizar uma instalação remota como, por exemplo, a tecnologia de computação em nuvem. Entretanto, quando se fala em ambientes corporativos, essa prática de acessar arquivos e ferramentas localmente nos computadores deixa de ser interessante, pois, nas empresas, os funcionários necessitam compartilhar a todo o momento as mesmas informações e recursos, para desempenhar suas funções. Com o objetivo de suprir essa necessidade de compartilhamento, além de reduzir custos relacionados à mão de obra e equipamentos computacionais, surge a computação em nuvem, do inglês Cloud Computing, que tem se popularizado com a evolução constante da tecnologia computacional, principalmente pela grande facilidade no acesso à Internet. No Brasil, a computação em nuvem é recente. Ela começou a ser implantada no ano de 2008 e, gradativamente, as empresas vêm adotando essa tecnologia para oferecer seus serviços e produtos.

Upload: shalom-acacio

Post on 31-Dec-2015

76 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Desenvolva aplicações para a nuvem com CloudBees

Desenvolva aplicações para a nuvem com

CloudBees - Revista Java Magazine 116

Este artigo tem por objetivo apresentar a plataforma

CloudBees, que proporciona ao desenvolvedor maior

facilidade nos procedimentos de construção,

desenvolvimento e implantação de aplicativos na

nuvem.

Artigo do tipo Tutorial

Recursos especiais neste artigo:

Artigo no estilo Solução Completa

Autores:Fernanda Cristina Girelli e Everton Coimbra de Araújo

Desenvolvendo aplicações para nuvem com CloudBees

Este artigo tem por objetivo apresentar a plataforma CloudBees, que proporciona ao

desenvolvedor maior facilidade nos procedimentos de construção, desenvolvimento e

implantação de aplicativos na nuvem. Visando demonstrar estes procedimentos nessa

plataforma, será desenvolvida uma aplicação web referente a um cadastro de alunos e

notas, utilizando a linguagem de programação Java.

Em que situação o tema é útil

Este tema é útil para quem deseja conhecer e utilizar a plataforma CloudBees para

desenvolvimento de aplicativos Java para a nuvem. Com ela, a construção,

desenvolvimento e hospedagem das aplicações, além de ser gratuita, se torna mais

simples, fácil e rápida.

Diariamente arquivos são acessados, informações dos mais variados tipos são

armazenadas e ferramentas e aplicações são utilizadas de maneira on premise. Este

termo é empregado quando é preciso se referir a arquivos, informações e aplicações que

são armazenadas/instaladas localmente nos computadores pessoais, ao invés de se

utilizar uma instalação remota como, por exemplo, a tecnologia de computação em

nuvem. Entretanto, quando se fala em ambientes corporativos, essa prática de acessar

arquivos e ferramentas localmente nos computadores deixa de ser interessante, pois, nas

empresas, os funcionários necessitam compartilhar a todo o momento as mesmas

informações e recursos, para desempenhar suas funções.

Com o objetivo de suprir essa necessidade de compartilhamento, além de reduzir custos

relacionados à mão de obra e equipamentos computacionais, surge a computação em

nuvem, do inglês Cloud Computing, que tem se popularizado com a evolução constante

da tecnologia computacional, principalmente pela grande facilidade no acesso à

Internet. No Brasil, a computação em nuvem é recente. Ela começou a ser implantada

no ano de 2008 e, gradativamente, as empresas vêm adotando essa tecnologia para

oferecer seus serviços e produtos.

Page 2: Desenvolva aplicações para a nuvem com CloudBees

O termo computação em nuvem surgiu com a proposta de que ninguém mais precisaria

instalar programas nos seus computadores, pois tudo seria acessado via Internet, desde

tarefas mais básicas (como edição de planilhas e arquivos texto) até as mais complexas

(como edição de imagens).

Uma vez conectado à Internet, é possível acessar um servidor que execute a ferramenta

desejada. Assim, enquanto o servidor fica responsável por executar esse serviço, o

computador do usuário apenas utiliza o monitor e seus periféricos, já que o restante do

processamento fica a cargo do servidor.

Com a computação em nuvem o usuário não precisa se preocupar, por exemplo, com a

capacidade de armazenamento do seu computador, quantidade de memória, backup,

segurança, manutenção, entre outros fatores, porque todas essas atribuições ficam a

cargo do fornecedor do servidor. Em alguns casos, o usuário ainda pode desfrutar de

todos esses benefícios sem custo algum, já que existem aplicações em nuvem

disponibilizas gratuitamente, como o Google Docs, Dropbox e SkyDrive.

Além das aplicações citadas anteriormente, a computação em nuvem possibilitou

também a abertura de novos negócios, como foi o caso da plataforma CloudBees. Esta

plataforma foi desenvolvida com o objetivo de facilitar a construção, implantação e

execução de forma gratuita de soluções Java, na nuvem. O CloudBees foi fundado no

início de 2010, por Sacha Labourey (ex-diretor da JBoss), e tem como meta oferecer

uma plataforma que possibilite aos desenvolvedores concentrar-se 100% na

implementação dos sistemas, não se preocupando com tarefas de manutenção e

infraestrutura dos servidores.

Com base nisso, neste artigo serão apresentados alguns dos recursos da plataforma

CloudBees, bem como a construção de um aplicativo Java, referente a um cadastro de

alunos e notas, com o objetivo de demonstrar os passos para criação, desenvolvimento,

implantação e execução de uma solução na nuvem.

Conhecendo a plataforma CloudBees

Como já informado, o CloudBees é uma plataforma recentemente fundada que tem

como objetivo simplificar o processo de desenvolvimento, implantação e execução de

aplicações, utilizando para isso o conceito de computação em nuvem.

A arquitetura dessa plataforma é baseada em três tipos de serviços: Build, Run e

Manage que, respectivamente, são responsáveis pela construção, execução e

gerenciamento da aplicação.

No serviço de construção (Build), o CloudBees oferece recursos para criação, integração

e teste das aplicações. São disponibilizadas diversas ferramentas que auxiliam neste

serviço, como é o caso do plugin CloudBees para a IDE Eclipse, que auxilia no

processo de criação da aplicação, e também o suporte a Jenkins, que pode ser utilizado

para integração contínua e para a realização de testes. Para o serviço de execução (Run),

o CloudBees oferece todos os recursos necessários para a hospedagem da aplicação na

nuvem, como servidores de aplicação (JBoss e Tomcat), deploy através de arquivo

WAR ou pela IDE Eclipse, e serviços de armazenamento de dados (MySQL e

PostgreSQL). Já no serviço de gerenciamento da aplicação (Manage), estão disponíveis,

Page 3: Desenvolva aplicações para a nuvem com CloudBees

por exemplo, recursos rápidos para identificação de problemas de desempenho,

facilidade para visualizar os relatórios de logs, ferramentas para controle de versões e

consumo de memória, entre outros.

Com a utilização dessa plataforma o desenvolvedor pode usufruir de diversas vantagens,

tais como:

· Não é necessário se preocupar com a infraestrutura do servidor;

· Manutenções no servidor ficam por conta do CloudBees;

· Disponibilidade para armazenamento de dados;

· Possibilidade de migrar facilmente seu aplicativo para outro ambiente, caso não goste

do ambiente oferecido pelo CloudBees;

· Suporte a qualquer linguagem de programação que rode sobre a JVM, como Java,

JRuby, Grails, entre outras.

Para utilizar esta plataforma é necessária a criação de uma conta no site do CloudBees.

Todos os passos para a realização desse cadastro são apresentados na sequência. Depois

de estar registrado, é possível implantar gratuitamente as aplicações na nuvem, porém

com algumas limitações, como:

· Possibilidade de hospedar até cinco aplicações;

· Capacidade máxima de memória para cada aplicação restrita a 128 MB;

· Disponibilidade de apenas 5 MB para o banco de dados.

Como descrito, este PaaS oferece uma camada de serviços gratuita; porém, caso o

usuário opte por utilizar uma franquia, com mais recursos e/ou maior capacidade de

armazenamento, por exemplo, será necessário pagar pelo serviço desejado. A relação

completa de preços pode ser visualizada no site do CloudBees (veja a seção Links).

Registrando-se no CloudBees

O cadastro na plataforma CloudBees é gratuito, simples e rápido. Para isto, é preciso

acessar o site oficial da plataforma, clicar sobre o item de menu SIGN UP (veja Links)

e preencher as informações do formulário, conforme apresentado na Figura 1. Observe

que, na realização do cadastro, deverá ser feito o registro do domínio por meio da opção

Domain/Account. Esse nome de domínio será usado para construção da URL de acesso

à sua aplicação. Por exemplo, se o domínio for registrado como minhaaplicacao, de

acordo com a Figura 1, a URL da aplicação será semelhante a

[nome_da_aplicacao].minhaaplicacao.cloubdees.net.

Page 4: Desenvolva aplicações para a nuvem com CloudBees

Figura 1. Criando uma conta no CloudBees.

Depois de realizar o cadastro no site, se desejar, o usuário poderá optar pela compra de

serviços adicionais. Para isto, depois de autenticado, é só clicar sobre a opção de menu

Services, localizada no topo da página, escolher o serviço desejado e preencher as

informações para pagamento. No caso deste artigo, não será necessário adquirir nenhum

recurso adicional, sendo utilizados apenas os serviços gratuitos.

Criando um projeto CloudBees

Page 5: Desenvolva aplicações para a nuvem com CloudBees

Com o objetivo de facilitar o desenvolvimento de aplicações Java baseadas no conceito

de computação em nuvem, o CloudBees anunciou um plugin integrado à IDE Eclipse

que pode ser instalado gratuitamente. Com esse plugin, o processo de construção e

implantação do aplicativo se torna mais simples e rápido.

Para que esse plugin se torne ativo para utilização, ou seja, para que seja possível

implantar um aplicativo na nuvem, é necessário validar a sua conta criada anteriormente

no site do CloudBees. Para isso, acesse o menu Window > Preferences. No item

CloudBees (vide Figura 2), informe o e-mail e senha cadastrados no momento da

criação da conta e clique no botão Validate, para realizar a ativação do plugin.

abrir imagem em nova janela

Figura 2. Ativando a conta do CloudBees no Eclipse.

Após a instalação do plugin, é disponibilizado um ícone do CloudBees na barra de

ferramentas do Eclipse, como pode ser observado na Figura 3.

Page 6: Desenvolva aplicações para a nuvem com CloudBees

Figura 3. Ícone do CloudBees na barra de ferramentas do Eclipse.

Para criar um novo projeto, clique sobre a opção New CloudBees Project..., informe um

nome para a aplicação, de acordo com a Figura 4, e clique no botão Next.

Figura 4. Criação do projeto.

Na próxima tela é possível integrar o projeto aos serviços do Jenkins e repositórios SVN

do CloudBees. Neste caso, no entanto, apenas será finalizada a criação do projeto

clicando em Finish, pois, para este artigo, essa integração não será necessária. Feito

isso, o Eclipse criará um projeto com a estrutura semelhante à exibida na Figura 5.

Page 7: Desenvolva aplicações para a nuvem com CloudBees

Figura 5. Estrutura do projeto CloudBees.

Observe que as bibliotecas necessárias para a utilização do CloudBees já foram

importadas. Também foi criada a página index.jsp que, ao ser executada, exibirá uma

mensagem informando que a aplicação foi criada e está funcionando com sucesso.

Nessa mesma página é apresentado um botão rotulado com o texto Take me to the

console que, ao ser clicado, promoverá o redirecionamento do usuário à página de

administração da conta CloudBees.

Para testar o funcionamento da aplicação no ambiente local (localhost), clique com o

botão direito do mouse no nome do projeto e escolha a opção Run as > CloudBees

Application (local). Em seguida, inicie o navegador de sua preferência e digite o

endereço: http://localhost:8335/.

Caso deseje efetuar o deploy da aplicação na nuvem CloudBees, clique com o botão

direito do mouse no nome do projeto e escolha a opção Run as > CloudBees Application

(RUN@cloud). Observe que, depois de efetuar este procedimento, no item RUN@cloud

applications, da view CloudBees do Eclipse, foi criada uma aplicação. Nesta aplicação,

clique com o botão direito do mouse e selecione a opção Open In Browser, conforme

indicado na Figura 6. Dessa forma, será iniciado o navegador padrão do computador,

onde será apresentado o resultado da execução da aplicação (Figura 7).

Page 8: Desenvolva aplicações para a nuvem com CloudBees

Figura 6. Selecionando a opção Open In Browser no Eclipse.

Figura 7. Resultado da aplicação após realizar o deploy na nuvem CloudBees.

Criando o banco de dados no CloudBees

Um dos mais importantes serviços disponibilizados pelo CloudBees é o gerenciamento

de banco de dados. Para o caso de uma licença gratuita, a capacidade de armazenamento

de dados está limitada a 5MB. Se for necessário, no entanto, o usuário pode adquirir

uma maior capacidade de armazenamento pagando por uma franquia adicional.

Page 9: Desenvolva aplicações para a nuvem com CloudBees

Neste cenário, o CloudBees possui uma parceria com sistemas de gerenciamento de

bancos de dados, como é o caso do MySQL e do PostgreSQL. No caso deste artigo, será

utilizado o banco de dados MySQL para gerenciamento das informações.

Para criar a base de dados é preciso acessar sua conta a partir do endereço

http://www.cloudbees.com/. Após autenticar-se, selecione a opção Databases, conforme

a Figura 8.

abrir imagem em nova janela

Figura 8. Selecionando a opção Databases no CloudBees.

Em seguida, no menu ao lado esquerdo da página, selecione a opção Add New

Database, preencha as informações solicitadas sobre o banco de dados (nome da base

de dados, usuário e senha) e clique sobre o botão Finish, de acordo com a Figura 9.

Page 10: Desenvolva aplicações para a nuvem com CloudBees

Figura 9. Criando o banco de dados.

Feito isso, é necessário vincular o banco ao projeto criado. Deste modo, clique sobre a

opção Manage (localizada no menu ao lado esquerdo da página) e selecione a base de

dados criada. Veja que, na tela apresentada, é possível visualizar todas as características

do banco, inclusive o servidor no qual está hospedado (em destaque na cor azul, na

Figura 10).

Na Figura 10 também é destacado, na cor vermelha, os códigos a serem adicionados

nos arquivos WEB-INF/cloudbees-web.xml e WEB-INF/web.xml do projeto. Estes

arquivos precisam ser modificados justamente para vincular a aplicação ao banco de

dados. Apenas lembrando que esse código é gerado automaticamente pelo CloudBees

ao finalizar a criação do banco de dados. Isto é, o desenvolvedor só precisa copiar e

colar esses códigos em seus respectivos arquivos.

Page 11: Desenvolva aplicações para a nuvem com CloudBees

abrir imagem em nova janela

Figura 10. Vinculando a aplicação ao banco de dados.

Até o momento, apenas foi criada e configurada a base de dados, ou seja, as tabelas e

seus atributos ainda não foram especificados, sendo necessário defini-los externamente,

pois a plataforma CloudBees não oferece uma interface para a realização dessa tarefa.

Para isso, é preciso utilizar um programa que possibilite acessar o banco de dados

remotamente. Um exemplo seria o HeidiSQL, que é um programa de licença gratuita

onde é possível abrir e editar bases de dados locais ou remotas, através do endereço do

servidor, porta, usuário e senha. Na Figura 11 é apresentada a estrutura lógica do banco

de dados que será empregado neste artigo.

Page 12: Desenvolva aplicações para a nuvem com CloudBees

Figura 11. Estrutura lógica do banco de dados.

Finalizando estes procedimentos, a aplicação estará pronta para utilizar o banco de

dados para persistir as informações.

Desenvolvendo uma aplicação web com CloudBees

Para exemplificar o funcionamento desse PaaS, será desenvolvida uma aplicação Web

referente a um cadastro de alunos e notas de uma determinada escola. Considera-se que

para cada aluno serão atribuídas as notas referentes às disciplinas de Português,

Matemática, História e Geografia. Nesta aplicação, também será possível consultar as

notas de um determinado aluno, de acordo com o número da matrícula informado pelo

usuário.

Até o momento, já temos o projeto da aplicação criado e também a configuração do

banco de dados realizada. Agora, o restante do desenvolvimento passa a ser o de

costume, ou seja, não é mais necessário inserir código fonte ou realizar outras

configurações específicas para que a aplicação seja executada na nuvem CloudBees.

A aplicação será desenvolvida utilizando apenas Servlets e páginas JSP. Tendo em vista

que o foco do artigo é demonstrar o funcionamento da plataforma CloudBees, não será

utilizado nenhum outro recurso que possa, de certa maneira, desviar o objetivo do nosso

estudo de caso. Os Servlets serão responsáveis pelas funcionalidades de inserir e

recuperar as informações no banco de dados, enquanto as páginas JSP serão empregadas

para construir a interface com o usuário, enviando as requisições do usuário e exibindo

as respostas do Servlet.

Criação da página Inicial

O ponto de partida para o desenvolvimento será a construção da página inicial para a

aplicação. Esta página será representada pelo arquivo index.jsp e possuirá dois links: um

para acesso à página de cadastro de alunos e notas e outro para acesso à página de

consulta de notas por aluno. Veja na Listagem 1 o código referente a este arquivo. Vale

lembrar que index.jsp já existe no projeto, então, seu conteúdo será apenas modificado.

Na Figura 12 é apresentado o resultado da execução em ambiente local da página

index.jsp.

Page 13: Desenvolva aplicações para a nuvem com CloudBees

Listagem 1. Código fonte referente à página index.jsp.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-

8">

<title>Cloudbees</title>

</head>

<body>

<h1>Bem vindo ao Cloudbees!</h1>

<a href="cadastrarAlunos.jsp"> Cadastrar Aluno </a><br/>

<a href="consultarNotas.jsp"> Consultar Notas </a>

</body>

</html>

Figura 12. Resultado da execução da página index.jsp.

Cadastro de alunos

Após a criação da página index.jsp, o desenvolvimento da aplicação prossegue com a

construção da página cadastarAlunos.jsp. Nesta página o usuário realizará o cadastro

dos alunos, informando o número da matrícula, nome, idade e as notas referentes às

disciplinas de Português, Matemática, História e Geografia. Na Listagem 2 é

apresentado o código dessa página. É importante ressaltar que, assim como na

Listagem 1, verifica-se que não existe nada de novo ou diferente no código das páginas,

para a execução delas na nuvem.

Listagem 2. Código fonte referente à página cadastrarAlunos.jsp.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Page 14: Desenvolva aplicações para a nuvem com CloudBees

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Cadastro de alunos</title>

</head>

<body>

<h1>Cadastro de Alunos</h1>

<form method="get" action="hello">

<table>

<tr>

<td align="left" width="10%"><b>Matricula:</b></td>

<td align="left"><input type="text" name="matricula"

size="10 maxlength="10"></td>

</tr>

<tr>

<td align="left" width="10%"><b>Nome:</b></td>

<td align="left"><input type="text" name="nome" size="40"

maxlength="40"></td>

</tr>

<tr>

<td align="left" width="10%"><b>Idade: </b></td>

<td align="left"><input type="text" name="idade" size="5"

maxlength="2"></td>

</tr>

<tr>

<td align="left" width="10%"><b>Portugues: </b></td>

<td align="left"><input type="text" name="portugues"

size="40" maxlength="40"></td>

</tr>

<tr>

<td align="left" width="10%"><b>Matematica: </b></td>

<td align="left"><input type="text" name="matematica"

size="40" maxlength="40"></td>

</tr>

<tr>

<td align="left" width="10%"><b>Historia: </b></td>

<td align="left"><input type="text" name="historia"

size="40" maxlength="40"></td>

</tr>

<tr>

<td align="left" width="10%"><b>Geografia: </b></td>

<td align="left"><input type="text" name="geografia"

size="40" maxlength="40"></td>

Page 15: Desenvolva aplicações para a nuvem com CloudBees

</tr>

<tr>

<td align="left" width="10%"><p align="left"> </td>

<td align="left"><p align="left">

<input type="submit" value="Enviar"><input type="reset"

value="Limpar">

</td>

</tr>

</table>

</form>

</body>

</html>

Nesta página, depois do usuário preencher todas as informações do aluno e clicar sobre

o botão Enviar, o formulário chamará a classe HelloServlet (apresentada na Listagem

3), especificada na action da tag <form>. Este Servlet, assim como a página index.jsp,

já é criado por padrão no projeto. Portanto, ele também já está declarado no arquivo

web.xml, com o nome hello. Caso seja necessário criar um novo Servlet, o

procedimento é o mesmo do desenvolvimento web tradicional.

A classe HelloServlet será responsável por recuperar os dados do aluno, informados

pelo usuário no formulário de cadastro, e salvar estes dados no banco de dados. Para

que essa classe consiga realizar a conexão com a base de dados, é preciso ter acesso ao

código Java gerado automaticamente pelo CloudBees. Para ter acesso a esse código,

acesse sua conta na plataforma e clique sobre o nome do banco de dados que está

utilizando para a aplicação. No box Datasource configuration tips, logo abaixo do

código adicionado anteriormente nos arquivos cloudbees-web.xml e web.xml, é

apresentado o código para a conexão com o banco (em destaque na Figura 13).

Portanto, copie este código e o adicione à classe HelloServlet.

Page 16: Desenvolva aplicações para a nuvem com CloudBees

abrir imagem em nova janela

Figura 13. Código para conexão com o banco de dados.

Listagem 3. Código fonte referente à classe HelloServlet.

public class HelloServlet extends HttpServlet{

public void doGet(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

//recuperar os dados do formulário de cadastro

String matricula = req.getParameter("matricula");

String nome = req.getParameter("nome");

String idade = req.getParameter("idade");

String portugues = req.getParameter("portugues");

String matematica = req.getParameter("matematica");

String geografia = req.getParameter("geografia");

String historia = req.getParameter("historia");

Context ctx = null;

DataSource ds = null;

Connection conn = null;

Statement stmt = null;

// criando a SQL para inserção dos dados do aluno na tabela

aluno

String sql = "INSERT INTO aluno (matricula, nome, idade) ";

sql += "VALUES ('"+matricula+"','"+nome+"','"+idade+"')";

// criando a SQL para inserção das notas do aluno na tabela

notas

String sql2 = "INSERT INTO notas (matricula_aluno, portugues,

matematica, historia, geografia) ";

sql2 += "VALUES ("+matricula+","+portugues+","+matematica+",

"+historia+","+geografia+")";

try {

//conexão com o banco de dados - código copiado do Cloudbees

ctx = new InitialContext();

ds = (DataSource)ctx.lookup("java:comp/env/jdbc/banco");

conn = ds.getConnection();

stmt = conn.createStatement();

stmt.executeUpdate(sql); //salvando os dados do aluno

Page 17: Desenvolva aplicações para a nuvem com CloudBees

stmt.executeUpdate(sql2); //salvando as notas do aluno

conn.close();

} catch (NamingException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

//redirecionando para a página inicial

RequestDispatcher dispatcher =

req.getRequestDispatcher("index.jsp");

dispatcher.forward(req, resp);

}

}

Ao executar a página index.jsp e clicar sobre o link Cadastrar Aluno, o resultado será

semelhante ao apresentado na Figura 14.

Figura 14. Resultado da execução da página cadastrarAlunos.jsp.

Consulta de notas por aluno

Agora, com o cadastro de alunos concluído e funcionando corretamente, prossegue-se

com o desenvolvimento da aplicação e passa-se para a criação da página

Page 18: Desenvolva aplicações para a nuvem com CloudBees

consultarNotas.jsp. Ao navegar por essa página, o usuário poderá consultar as notas de

um determinado aluno, informando o número da matrícula do mesmo. Veja na

Listagem 4 a implementação desta página.

Listagem 4. Implementação da página consultarNotas.jsp.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<%@page import="example.HelloServlet"%>

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Consulta de Notas</title>

</head>

<body>

<h1>Consulta de Notas</h1>

<form method="get" action="notas">

<table>

<tr >

<td align="left" width="30%"><b>Matricula do

aluno:</b></td>

<td align="left"><input type="text" name="matricula"

size="15" maxlength="40"></td>

</tr>

<tr>

<td align="left" width="10%"><p align="left"> </td>

<td align="left"><p align="left"> <input type="submit"

value="Pesquisar"></td>

</tr>

</table>

</form>

<%

String nome = request.getParameter("n");

String matricula = request.getParameter("m");

String portugues = request.getParameter("p");

String matematica = request.getParameter("ma");

String historia = request.getParameter("h");

String geografia = request.getParameter("g");

if(nome != null){

out.println("Verificando notas do aluno "+nome);

%>

<br/>

<br/>

<table>

Page 19: Desenvolva aplicações para a nuvem com CloudBees

<tr>

<td align="left" width="10%"><b>Portugues </b></td>

<td align="left" width="10%"><b>Matematica </b></td>

<td align="left" width="10%"><b>Historia</b></td>

<td align="left" width="10%"><b>Geografia</b></td>

</tr>

<tr>

<td align="left"

width="10%"><b><%out.println(portugues);%></b></td>

<td align="left" width="10%"><b><%out.println(matematica);%>

</b></td>

<td align="left" width="10%"><b><%out.println(historia);%>

</b></td>

<td align="left" width="10%"><b><%out.println(geografia);%>

</b></td>

</tr>

</table>

<%

}

%>

</body>

</html>

Em consultarNotas.jsp, o usuário informará a matrícula do aluno desejado e, ao clicar

sobre o botão Pesquisar, o formulário chamará a classe ServletNotas, especificada na

action da tag <form>. Esse Servlet, diferentemente do anterior (HelloServlet), deverá

ser criado no projeto e mapeado no arquivo web.xml com o nome notas. Veja na

Listagem 5 o código necessário para isto.

Listagem 5. Código para mapear a classe ServletNotas no web.xml.

<servlet>

<servlet-name>ServletNotas</servlet-name>

<servlet-class>example.ServletNotas</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>ServletNotas</servlet-name>

<url-pattern>/notas</url-pattern>

</servlet-mapping>

A classe ServletNotas, cujo código é exibido na Listagem 6, será responsável por

recuperar o número da matrícula informado pelo usuário no campo de pesquisa e

consultar no banco de dados o nome do aluno, bem como suas notas. Depois de realizar

a consulta, o Servlet redireciona a requisição novamente para a página

Page 20: Desenvolva aplicações para a nuvem com CloudBees

consultarNotas.jsp, inserindo os dados recuperados da base de dados como parâmetros

na URL.

Listagem 6. Código fonte referente à classe ServletNotas.

public class ServletNotas extends HttpServlet{

public void doGet(HttpServletRequest req, HttpServletResponse

resp)

throws ServletException, IOException{

//recupera o número da matrícula informado pelo usuário

String matricula = req.getParameter("matricula");

String aluno = null;

String portugues = null;

String matematica = null;

String historia = null;

String geografia = null;

Context ctx = null;

DataSource ds = null;

Connection conn = null;

Statement stmt = null;

ResultSet rst = null;

try {

//conexão com o banco de dados

ctx = new InitialContext();

ds = (DataSource)ctx.lookup("java:comp/env/jdbc/banco");

conn = ds.getConnection();

stmt = conn.createStatement();

//cria a SQL para consulta do nome do aluno de acordo com o

número da matrícula

rst = stmt.executeQuery("SELECT nome FROM aluno WHERE

matricula = "+matricula);

//armazena o nome do aluno na variável String aluno

aluno = rst.getString(1);

//cria a SQL para consultar as notas do aluno de acordo com

o número da matrícula

rst = stmt.executeQuery("SELECT

portugues,matematica,historia,geografia

FROM notas WHERE matricula_aluno = "+matricula);

Page 21: Desenvolva aplicações para a nuvem com CloudBees

//armazena nas variáveis as notas de cada disciplina

portugues = rst.getString(1);

matematica = rst.getString(2);

historia = rst.getString(3);

geografia = rst.getString(4);

//encerra a conexão com o banco de dados

conn.close();

} catch (NamingException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

//redireciona para a página consultarNotas.jsp

//passando o nome do aluno e suas notas como parâmetro na URL

RequestDispatcher dispatcher =

req.getRequestDispatcher("consultarNotas.jsp?

n="+aluno+"&m="+matricula+"&p="+português+"&ma="+matematica+"

&h="+historia+"&g="+geografia);

dispatcher.forward(req, resp);

}

}

A página consultarNotas.jsp recupera, por meio do método getParameter(), os dados

(nome do aluno e suas notas) enviados pelo Servlet na URL, verifica se o nome do

aluno não é nulo (null) e, caso positivo, seu nome e suas notas são exibidas na tela.

Veja na Figura 15 a execução da página consultarNotas.jsp, que lista as notas do aluno

selecionado.

abrir imagem em nova janela

Figura 15. Página consultarNotas.jsp listando as notas do aluno selecionado.

Page 22: Desenvolva aplicações para a nuvem com CloudBees

Após concluir todas as etapas da construção da aplicação, ela estará pronta para ser

publicada na nuvem CloudBees. Para efetuar o deploy do projeto, clique com o botão

direito do mouse no seu nome e escolha a opção Run as > CloudBees Application

(RUN@cloud). Após este procedimento, siga os passos indicados na Figura 6 ou inicie

o navegador de sua preferência e digite o endereço:

[nome_da_aplicacao].[dominio_registrado].cloubdees.net.

Conclusão

Cada vez mais as empresas estão optando por soluções de TI que incluam computação

em nuvem, pois esta tecnologia pode reduzir os custos associados à infraestrutura de

computadores ao deixar de ser necessário, para a empresa contratante do serviço, manter

máquinas com grandes capacidades de processamento e armazenamento de informações

e, ainda, agilizar os processos de negócio. Neste contexto, as plataformas baseadas no

conceito de computação em nuvem estão crescendo e se popularizando no mercado.

O CloudBees é uma dessas plataformas. Ela fornece um ambiente onde o programador

pode criar, desenvolver e implantar aplicativos na nuvem, com facilidade e rapidez, sem

precisar se preocupar com a infraestrutura e manutenção de servidores, já que isso fica

por conta da própria plataforma. Além disso, o CloudBees oferece vários serviços

gratuitos e de excelente qualidade, porém, com algumas limitações. Caso seja

necessário, no entanto, é possível contratar serviços e recursos adicionais, pagando-se

pouco por isso.

Outro ponto positivo é o plugin CloudBees para a IDE Eclipse, que auxilia no

desenvolvimento e implantação das aplicações na plataforma. Para quem já está

acostumado com essa IDE, com certeza este recurso será muito bem-vindo.

Links

O que é computação em nuvens?

http://www.tecmundo.com.br/computacao-em-nuvem/

738-o-que-e-computacao-em-nuvens-.htm

O que é cloud computing (computação nas nuvens)?

http://www.infowester.com/cloudcomputing.php

Plugin do CloudBees para Eclipse.

http://www.infoq.com/br/news/2011/07/cloudbees-eclipse

CloudBees Toolkit for Eclipse How-to Guide. http://wiki.cloudbees.com/bin/view/Documentation/

CloudBeesEclipseToolkit

Site oficial do CloudBees. http://www.cloudbees.com/

Opções de Cloud Computing para Java. http://marcosvperboni.wordpress.com/2012/09/30/

conseitos-sobre-cloud-computing/

Page 23: Desenvolva aplicações para a nuvem com CloudBees

Relação de preços dos serviços da plataforma CloudBees http://www.cloudbees.com/platform/pricing/devcloud.cb

Tutorial para instalação do plugin CloudBees no Eclipse. http://wiki.cloudbees.com/bin/view/Documentation/

CloudBeesEclipseToolkit