Você está na página 1de 23

Desenvolva aplicaes 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 construo, desenvolvimento e implantao de aplicativos na nuvem.
Artigo do tipo Tutorial Recursos especiais neste artigo: Artigo no estilo Soluo Completa Autores:Fernanda Cristina Girelli e Everton Coimbra de Arajo

Desenvolvendo aplicaes para nuvem com CloudBees Este artigo tem por objetivo apresentar a plataforma CloudBees, que proporciona ao desenvolvedor maior facilidade nos procedimentos de construo, desenvolvimento e implantao de aplicativos na nuvem. Visando demonstrar estes procedimentos nessa plataforma, ser desenvolvida uma aplicao web referente a um cadastro de alunos e notas, utilizando a linguagem de programao Java. Em que situao 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 construo, desenvolvimento e hospedagem das aplicaes, alm de ser gratuita, se torna mais simples, fcil e rpida. Diariamente arquivos so acessados, informaes dos mais variados tipos so armazenadas e ferramentas e aplicaes so utilizadas de maneira on premise. Este termo empregado quando preciso se referir a arquivos, informaes e aplicaes que so armazenadas/instaladas localmente nos computadores pessoais, ao invs de se utilizar uma instalao remota como, por exemplo, a tecnologia de computao em nuvem. Entretanto, quando se fala em ambientes corporativos, essa prtica de acessar arquivos e ferramentas localmente nos computadores deixa de ser interessante, pois, nas empresas, os funcionrios necessitam compartilhar a todo o momento as mesmas informaes e recursos, para desempenhar suas funes. Com o objetivo de suprir essa necessidade de compartilhamento, alm de reduzir custos relacionados mo de obra e equipamentos computacionais, surge a computao em nuvem, do ingls Cloud Computing, que tem se popularizado com a evoluo constante da tecnologia computacional, principalmente pela grande facilidade no acesso Internet. No Brasil, a computao em nuvem recente. Ela comeou a ser implantada no ano de 2008 e, gradativamente, as empresas vm adotando essa tecnologia para oferecer seus servios e produtos.

O termo computao em nuvem surgiu com a proposta de que ningum mais precisaria instalar programas nos seus computadores, pois tudo seria acessado via Internet, desde tarefas mais bsicas (como edio de planilhas e arquivos texto) at as mais complexas (como edio de imagens). Uma vez conectado Internet, possvel acessar um servidor que execute a ferramenta desejada. Assim, enquanto o servidor fica responsvel por executar esse servio, o computador do usurio apenas utiliza o monitor e seus perifricos, j que o restante do processamento fica a cargo do servidor. Com a computao em nuvem o usurio no precisa se preocupar, por exemplo, com a capacidade de armazenamento do seu computador, quantidade de memria, backup, segurana, manuteno, entre outros fatores, porque todas essas atribuies ficam a cargo do fornecedor do servidor. Em alguns casos, o usurio ainda pode desfrutar de todos esses benefcios sem custo algum, j que existem aplicaes em nuvem disponibilizas gratuitamente, como o Google Docs, Dropbox e SkyDrive. Alm das aplicaes citadas anteriormente, a computao em nuvem possibilitou tambm a abertura de novos negcios, como foi o caso da plataforma CloudBees. Esta plataforma foi desenvolvida com o objetivo de facilitar a construo, implantao e execuo de forma gratuita de solues Java, na nuvem. O CloudBees foi fundado no incio de 2010, por Sacha Labourey (ex-diretor da JBoss), e tem como meta oferecer uma plataforma que possibilite aos desenvolvedores concentrar-se 100% na implementao dos sistemas, no se preocupando com tarefas de manuteno e infraestrutura dos servidores. Com base nisso, neste artigo sero apresentados alguns dos recursos da plataforma CloudBees, bem como a construo de um aplicativo Java, referente a um cadastro de alunos e notas, com o objetivo de demonstrar os passos para criao, desenvolvimento, implantao e execuo de uma soluo na nuvem. Conhecendo a plataforma CloudBees Como j informado, o CloudBees uma plataforma recentemente fundada que tem como objetivo simplificar o processo de desenvolvimento, implantao e execuo de aplicaes, utilizando para isso o conceito de computao em nuvem. A arquitetura dessa plataforma baseada em trs tipos de servios: Build, Run e Manage que, respectivamente, so responsveis pela construo, execuo e gerenciamento da aplicao. No servio de construo (Build), o CloudBees oferece recursos para criao, integrao e teste das aplicaes. So disponibilizadas diversas ferramentas que auxiliam neste servio, como o caso do plugin CloudBees para a IDE Eclipse, que auxilia no processo de criao da aplicao, e tambm o suporte a Jenkins, que pode ser utilizado para integrao contnua e para a realizao de testes. Para o servio de execuo (Run), o CloudBees oferece todos os recursos necessrios para a hospedagem da aplicao na nuvem, como servidores de aplicao (JBoss e Tomcat), deploy atravs de arquivo WAR ou pela IDE Eclipse, e servios de armazenamento de dados (MySQL e PostgreSQL). J no servio de gerenciamento da aplicao (Manage), esto disponveis,

por exemplo, recursos rpidos para identificao de problemas de desempenho, facilidade para visualizar os relatrios de logs, ferramentas para controle de verses e consumo de memria, entre outros. Com a utilizao dessa plataforma o desenvolvedor pode usufruir de diversas vantagens, tais como: No necessrio se preocupar com a infraestrutura do servidor; Manutenes no servidor ficam por conta do CloudBees; Disponibilidade para armazenamento de dados; Possibilidade de migrar facilmente seu aplicativo para outro ambiente, caso no goste do ambiente oferecido pelo CloudBees; Suporte a qualquer linguagem de programao que rode sobre a JVM, como Java, JRuby, Grails, entre outras. Para utilizar esta plataforma necessria a criao de uma conta no site do CloudBees. Todos os passos para a realizao desse cadastro so apresentados na sequncia. Depois de estar registrado, possvel implantar gratuitamente as aplicaes na nuvem, porm com algumas limitaes, como: Possibilidade de hospedar at cinco aplicaes; Capacidade mxima de memria para cada aplicao restrita a 128 MB; Disponibilidade de apenas 5 MB para o banco de dados. Como descrito, este PaaS oferece uma camada de servios gratuita; porm, caso o usurio opte por utilizar uma franquia, com mais recursos e/ou maior capacidade de armazenamento, por exemplo, ser necessrio pagar pelo servio desejado. A relao completa de preos pode ser visualizada no site do CloudBees (veja a seo Links). Registrando-se no CloudBees O cadastro na plataforma CloudBees gratuito, simples e rpido. Para isto, preciso acessar o site oficial da plataforma, clicar sobre o item de menu SIGN UP (veja Links) e preencher as informaes do formulrio, conforme apresentado na Figura 1. Observe que, na realizao do cadastro, dever ser feito o registro do domnio por meio da opo Domain/Account. Esse nome de domnio ser usado para construo da URL de acesso sua aplicao. Por exemplo, se o domnio for registrado como minhaaplicacao, de acordo com a Figura 1, a URL da aplicao 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 usurio poder optar pela compra de servios adicionais. Para isto, depois de autenticado, s clicar sobre a opo de menu Services, localizada no topo da pgina, escolher o servio desejado e preencher as informaes para pagamento. No caso deste artigo, no ser necessrio adquirir nenhum recurso adicional, sendo utilizados apenas os servios gratuitos. Criando um projeto CloudBees

Com o objetivo de facilitar o desenvolvimento de aplicaes Java baseadas no conceito de computao em nuvem, o CloudBees anunciou um plugin integrado IDE Eclipse que pode ser instalado gratuitamente. Com esse plugin, o processo de construo e implantao do aplicativo se torna mais simples e rpido. Para que esse plugin se torne ativo para utilizao, ou seja, para que seja possvel implantar um aplicativo na nuvem, necessrio 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 criao da conta e clique no boto Validate, para realizar a ativao do plugin.

abrir imagem em nova janela Figura 2. Ativando a conta do CloudBees no Eclipse. Aps a instalao 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 opo New CloudBees Project..., informe um nome para a aplicao, de acordo com a Figura 4, e clique no boto Next.

Figura 4. Criao do projeto. Na prxima tela possvel integrar o projeto aos servios do Jenkins e repositrios SVN do CloudBees. Neste caso, no entanto, apenas ser finalizada a criao do projeto clicando em Finish, pois, para este artigo, essa integrao no ser necessria. 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 necessrias para a utilizao do CloudBees j foram importadas. Tambm foi criada a pgina index.jsp que, ao ser executada, exibir uma mensagem informando que a aplicao foi criada e est funcionando com sucesso. Nessa mesma pgina apresentado um boto rotulado com o texto Take me to the console que, ao ser clicado, promover o redirecionamento do usurio pgina de administrao da conta CloudBees. Para testar o funcionamento da aplicao no ambiente local (localhost), clique com o boto direito do mouse no nome do projeto e escolha a opo Run as > CloudBees Application (local). Em seguida, inicie o navegador de sua preferncia e digite o endereo: http://localhost:8335/. Caso deseje efetuar o deploy da aplicao na nuvem CloudBees, clique com o boto direito do mouse no nome do projeto e escolha a opo 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 aplicao. Nesta aplicao, clique com o boto direito do mouse e selecione a opo Open In Browser, conforme indicado na Figura 6. Dessa forma, ser iniciado o navegador padro do computador, onde ser apresentado o resultado da execuo da aplicao (Figura 7).

Figura 6. Selecionando a opo Open In Browser no Eclipse.

Figura 7. Resultado da aplicao aps realizar o deploy na nuvem CloudBees. Criando o banco de dados no CloudBees Um dos mais importantes servios disponibilizados pelo CloudBees o gerenciamento de banco de dados. Para o caso de uma licena gratuita, a capacidade de armazenamento de dados est limitada a 5MB. Se for necessrio, no entanto, o usurio pode adquirir uma maior capacidade de armazenamento pagando por uma franquia adicional.

Neste cenrio, 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 informaes. Para criar a base de dados preciso acessar sua conta a partir do endereo http://www.cloudbees.com/. Aps autenticar-se, selecione a opo Databases, conforme a Figura 8.

abrir imagem em nova janela Figura 8. Selecionando a opo Databases no CloudBees. Em seguida, no menu ao lado esquerdo da pgina, selecione a opo Add New Database, preencha as informaes solicitadas sobre o banco de dados (nome da base de dados, usurio e senha) e clique sobre o boto Finish, de acordo com a Figura 9.

Figura 9. Criando o banco de dados. Feito isso, necessrio vincular o banco ao projeto criado. Deste modo, clique sobre a opo Manage (localizada no menu ao lado esquerdo da pgina) e selecione a base de dados criada. Veja que, na tela apresentada, possvel visualizar todas as caractersticas do banco, inclusive o servidor no qual est hospedado (em destaque na cor azul, na Figura 10). Na Figura 10 tambm destacado, na cor vermelha, os cdigos 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 aplicao ao banco de dados. Apenas lembrando que esse cdigo gerado automaticamente pelo CloudBees ao finalizar a criao do banco de dados. Isto , o desenvolvedor s precisa copiar e colar esses cdigos em seus respectivos arquivos.

abrir imagem em nova janela Figura 10. Vinculando a aplicao ao banco de dados. At o momento, apenas foi criada e configurada a base de dados, ou seja, as tabelas e seus atributos ainda no foram especificados, sendo necessrio defini-los externamente, pois a plataforma CloudBees no oferece uma interface para a realizao 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 licena gratuita onde possvel abrir e editar bases de dados locais ou remotas, atravs do endereo do servidor, porta, usurio e senha. Na Figura 11 apresentada a estrutura lgica do banco de dados que ser empregado neste artigo.

Figura 11. Estrutura lgica do banco de dados. Finalizando estes procedimentos, a aplicao estar pronta para utilizar o banco de dados para persistir as informaes. Desenvolvendo uma aplicao web com CloudBees Para exemplificar o funcionamento desse PaaS, ser desenvolvida uma aplicao Web referente a um cadastro de alunos e notas de uma determinada escola. Considera-se que para cada aluno sero atribudas as notas referentes s disciplinas de Portugus, Matemtica, Histria e Geografia. Nesta aplicao, tambm ser possvel consultar as notas de um determinado aluno, de acordo com o nmero da matrcula informado pelo usurio. At o momento, j temos o projeto da aplicao criado e tambm a configurao do banco de dados realizada. Agora, o restante do desenvolvimento passa a ser o de costume, ou seja, no mais necessrio inserir cdigo fonte ou realizar outras configuraes especficas para que a aplicao seja executada na nuvem CloudBees. A aplicao ser desenvolvida utilizando apenas Servlets e pginas JSP. Tendo em vista que o foco do artigo demonstrar o funcionamento da plataforma CloudBees, no ser utilizado nenhum outro recurso que possa, de certa maneira, desviar o objetivo do nosso estudo de caso. Os Servlets sero responsveis pelas funcionalidades de inserir e recuperar as informaes no banco de dados, enquanto as pginas JSP sero empregadas para construir a interface com o usurio, enviando as requisies do usurio e exibindo as respostas do Servlet. Criao da pgina Inicial O ponto de partida para o desenvolvimento ser a construo da pgina inicial para a aplicao. Esta pgina ser representada pelo arquivo index.jsp e possuir dois links: um para acesso pgina de cadastro de alunos e notas e outro para acesso pgina de consulta de notas por aluno. Veja na Listagem 1 o cdigo referente a este arquivo. Vale lembrar que index.jsp j existe no projeto, ento, seu contedo ser apenas modificado. Na Figura 12 apresentado o resultado da execuo em ambiente local da pgina index.jsp.

Listagem 1. Cdigo fonte referente pgina 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 execuo da pgina index.jsp. Cadastro de alunos Aps a criao da pgina index.jsp, o desenvolvimento da aplicao prossegue com a construo da pgina cadastarAlunos.jsp. Nesta pgina o usurio realizar o cadastro dos alunos, informando o nmero da matrcula, nome, idade e as notas referentes s disciplinas de Portugus, Matemtica, Histria e Geografia. Na Listagem 2 apresentado o cdigo dessa pgina. importante ressaltar que, assim como na Listagem 1, verifica-se que no existe nada de novo ou diferente no cdigo das pginas, para a execuo delas na nuvem. Listagem 2. Cdigo fonte referente pgina 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 pgina, depois do usurio preencher todas as informaes do aluno e clicar sobre o boto Enviar, o formulrio chamar a classe HelloServlet (apresentada na Listagem 3), especificada na action da tag <form>. Este Servlet, assim como a pgina index.jsp, j criado por padro no projeto. Portanto, ele tambm j est declarado no arquivo web.xml, com o nome hello. Caso seja necessrio criar um novo Servlet, o procedimento o mesmo do desenvolvimento web tradicional. A classe HelloServlet ser responsvel por recuperar os dados do aluno, informados pelo usurio no formulrio de cadastro, e salvar estes dados no banco de dados. Para que essa classe consiga realizar a conexo com a base de dados, preciso ter acesso ao cdigo Java gerado automaticamente pelo CloudBees. Para ter acesso a esse cdigo, acesse sua conta na plataforma e clique sobre o nome do banco de dados que est utilizando para a aplicao. No box Datasource configuration tips, logo abaixo do cdigo adicionado anteriormente nos arquivos cloudbees-web.xml e web.xml, apresentado o cdigo para a conexo com o banco (em destaque na Figura 13). Portanto, copie este cdigo e o adicione classe HelloServlet.

abrir imagem em nova janela Figura 13. Cdigo para conexo com o banco de dados. Listagem 3. Cdigo fonte referente classe HelloServlet.
public class HelloServlet extends HttpServlet{ public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //recuperar os dados do formulrio 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 insero dos dados do aluno na tabela aluno String sql = "INSERT INTO aluno (matricula, nome, idade) "; sql += "VALUES ('"+matricula+"','"+nome+"','"+idade+"')"; // criando a SQL para insero 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 { //conexo com o banco de dados - cdigo 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 pgina inicial RequestDispatcher dispatcher = req.getRequestDispatcher("index.jsp"); dispatcher.forward(req, resp); } }

Ao executar a pgina index.jsp e clicar sobre o link Cadastrar Aluno, o resultado ser semelhante ao apresentado na Figura 14.

Figura 14. Resultado da execuo da pgina cadastrarAlunos.jsp. Consulta de notas por aluno Agora, com o cadastro de alunos concludo e funcionando corretamente, prossegue-se com o desenvolvimento da aplicao e passa-se para a criao da pgina

consultarNotas.jsp. Ao navegar por essa pgina, o usurio poder consultar as notas de um determinado aluno, informando o nmero da matrcula do mesmo. Veja na Listagem 4 a implementao desta pgina. Listagem 4. Implementao da pgina 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 usurio informar a matrcula do aluno desejado e, ao clicar sobre o boto Pesquisar, o formulrio 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 cdigo necessrio para isto. Listagem 5. Cdigo 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 cdigo exibido na Listagem 6, ser responsvel por recuperar o nmero da matrcula informado pelo usurio 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 requisio novamente para a pgina

consultarNotas.jsp, inserindo os dados recuperados da base de dados como parmetros na URL. Listagem 6. Cdigo fonte referente classe ServletNotas.
public class ServletNotas extends HttpServlet{ public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{ //recupera o nmero da matrcula informado pelo usurio 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 { //conexo 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 nmero da matrcula rst = stmt.executeQuery("SELECT nome FROM aluno WHERE matricula = "+matricula); //armazena o nome do aluno na varivel String aluno aluno = rst.getString(1); //cria a SQL para consultar as notas do aluno de acordo com o nmero da matrcula rst = stmt.executeQuery("SELECT portugues,matematica,historia,geografia FROM notas WHERE matricula_aluno = "+matricula);

//armazena nas variveis as notas de cada disciplina portugues = rst.getString(1); matematica = rst.getString(2); historia = rst.getString(3); geografia = rst.getString(4); //encerra a conexo com o banco de dados conn.close(); } catch (NamingException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } //redireciona para a pgina consultarNotas.jsp //passando o nome do aluno e suas notas como parmetro na URL RequestDispatcher dispatcher = req.getRequestDispatcher("consultarNotas.jsp? n="+aluno+"&m="+matricula+"&p="+portugus+"&ma="+matematica+" &h="+historia+"&g="+geografia); dispatcher.forward(req, resp); } }

A pgina consultarNotas.jsp recupera, por meio do mtodo getParameter(), os dados (nome do aluno e suas notas) enviados pelo Servlet na URL, verifica se o nome do aluno no nulo (null) e, caso positivo, seu nome e suas notas so exibidas na tela. Veja na Figura 15 a execuo da pgina consultarNotas.jsp, que lista as notas do aluno selecionado.

abrir imagem em nova janela Figura 15. Pgina consultarNotas.jsp listando as notas do aluno selecionado.

Aps concluir todas as etapas da construo da aplicao, ela estar pronta para ser publicada na nuvem CloudBees. Para efetuar o deploy do projeto, clique com o boto direito do mouse no seu nome e escolha a opo Run as > CloudBees Application (RUN@cloud). Aps este procedimento, siga os passos indicados na Figura 6 ou inicie o navegador de sua preferncia e digite o endereo: [nome_da_aplicacao].[dominio_registrado].cloubdees.net. Concluso Cada vez mais as empresas esto optando por solues de TI que incluam computao em nuvem, pois esta tecnologia pode reduzir os custos associados infraestrutura de computadores ao deixar de ser necessrio, para a empresa contratante do servio, manter mquinas com grandes capacidades de processamento e armazenamento de informaes e, ainda, agilizar os processos de negcio. Neste contexto, as plataformas baseadas no conceito de computao em nuvem esto 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 manuteno de servidores, j que isso fica por conta da prpria plataforma. Alm disso, o CloudBees oferece vrios servios gratuitos e de excelente qualidade, porm, com algumas limitaes. Caso seja necessrio, no entanto, possvel contratar servios e recursos adicionais, pagando-se pouco por isso. Outro ponto positivo o plugin CloudBees para a IDE Eclipse, que auxilia no desenvolvimento e implantao das aplicaes na plataforma. Para quem j est acostumado com essa IDE, com certeza este recurso ser muito bem-vindo. Links O que computao em nuvens? http://www.tecmundo.com.br/computacao-em-nuvem/ 738-o-que-e-computacao-em-nuvens-.htm O que cloud computing (computao 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/ Opes de Cloud Computing para Java. http://marcosvperboni.wordpress.com/2012/09/30/ conseitos-sobre-cloud-computing/

Relao de preos dos servios da plataforma CloudBees http://www.cloudbees.com/platform/pricing/devcloud.cb Tutorial para instalao do plugin CloudBees no Eclipse. http://wiki.cloudbees.com/bin/view/Documentation/ CloudBeesEclipseToolkit