Desenvolva aplicações para a nuvem com CloudBees

Transcrição

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.
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,
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.
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
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.
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.
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).
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.
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.
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.
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.
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.
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=UTF8">
<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">
<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>
</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.
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
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
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>
<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
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);
//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.
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/
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

Documentos relacionados