CENTRO UNIVERSITÁRIO DE JOÃO PESSOA - UNIPÊ PRÓ-REITORIA DE ENSINO DE GRADUAÇÃO CURSO DE BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO TITAO YAMAMOTO JÚNIOR PROJETO DE DESENVOLVIMENTO WEB PUBLICADO NA NUVEM JOÃO PESSOA - PB 2010
Jul 09, 2015
CENTRO UNIVERSITÁRIO DE JOÃO PESSOA - UNIPÊ
PRÓ-REITORIA DE ENSINO DE GRADUAÇÃO
CURSO DE BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO
TITAO YAMAMOTO JÚNIOR
PROJETO DE DESENVOLVIMENTO WEB PUBLICADO NA NUVEM
JOÃO PESSOA - PB
2010
TITAO YAMAMOTO JÚNIOR
PROJETO DE DESENVOLVIMENTO WEB PUBLICADO NA NUVEM
Monografia apresentada ao Curso de
Bacharelado em Ciências da Computação do
Centro Universitário de João Pessoa - UNIPÊ,
como pré-requisito para obtenção do grau de
Bacharel em Ciências da Computação, sob
orientação do Prof. Odilon Nelson Grisi Dantas.
JOÃO PESSOA - PB
2010
Y19p Yamamoto, Titao Júnior.
Projeto de desenvolvimento web aplicado a nuvem / Titao Yamamoto Júnior, -- João Pessoa, 2010. 49f. Monografia (Curso de Ciências da Computação) – Centro Universitário de João Pessoa – UNIPÊ.
1. Identificação de um padrão de currículos. 2. O banco de talentos. 3. Plataforma de serviço Azure 4. Publicação do sistema na nuvem I. Título.
UNIPÊ / BC CDU - 004
TITAO YAMAMOTO JÚNIOR
PROJETO DE DESENVOLVIMENTO WEB PUBLICADO NA NUVEM
Monografia apresentada ao Curso de Bacharelado em Ciências da Computação do Centro Universitário de João Pessoa - UNIPÊ, como pré-requisito para obtenção do grau de Bacharel em Ciências da Computação, apreciada pela Banca Examinadora composta pelos seguintes membros:
Aprovada em ______/_______/2010
BANCA EXAMINADORA
_________________________________________
Profº Odilon Nelson
Orientador - UNIPÊ
_____________________________________________
Profº. Dr. Luis Mauricio Fraga Martins
Co-Orientador - UNIPÊ
______________________________________________
Examinador - UNIPÊ
______________________________________________
Examinador - UNIPÊ
Dedico este trabalho a minha mãe Suely, meu pai Titao, meus irmãos, familiares e amigos que estiveram sempre ao meu lado e acreditaram em mim.
Agradecimentos
Em primeiro lugar, agradeço a Deus que até aqui ele tem me ajudado. Agradeço toda
minha família, em especial aos meus pais, Titao Yamamoto e Suely Guimarães que nunca
mediram esforços pra me proporcionar tudo o que eu precisasse para construir uma carreira,
uma vida. Espero sinceramente um dia ser capaz de retribuir e honrar todo este sacrifício, e
oferecê-lo para meus filhos da mesma forma que me foi oferecido.
Agradeço ao meu irmão por ser fonte de risos e distrações constantes na minha vida,
por me agüentar e apesar de nem sempre eu demonstrar, ele me enche de orgulho e me dá
forças para continuar a ser um bom exemplo.
Agradeço aos meus amigos Thiago Grandino, Jarbas Dokimos, Everton Macedo,
Rinker Cabral, Rayan Rodrigues, Charles Andrade, Rogerio Cabral, Erick Newman, Aldair
Correia, Rhayani Cabral, Suenya Grandino, Mércia Almeida, aos meus amigos da
universidade que já concluíram, em especial a Armanda Maria, Felipe Queiroz, Evilásio
Ayres, Daniel Xavier, Natasha Tavares, Sanmara Alves e os que ainda estão para concluir a
Thiago Paiva, Leonardo Lívio, Thomas Cristanis e Edson Cavalcante “Lobão” e os que não
estão mencionados aqui, mas sabem que os agradeço muito.
Agradeço ao diretor Pedro Alves, da empresa Vsoft Tecnolgia, onde pude vivenciar
um ambiente de trabalho profissional e familiar, que muito me ajudou a desenvolver meu
potencial e meus conhecimentos antes teóricos e adquirir novas habilidades que se provaram
fundamentais para uma boa carreira profissional, aos também amigos Marta Regina, Ivandro
Sá, Alex Dekker, Adriana Oliveira e outros que aqui não foram mencionados.
Agradeço aos meus amigos profissionais que muito me ajudaram de algum modo ao
longo da minha pessoal, acadêmica e profissional, como Adriano Santos, Roberta Macêdo,
Vinícius Rocha, Teoni Valois, Robertárcio Pereira, entre outros aqui não mencionados, mas
sabem que de alguma forma seus nomes aqui também estão.
Agradeço também a todos meus professores que se fizeram especial ao longo da
minha jornada acadêmica e o apoio dado pelo orientador e co-orientador, Prof. Odilon Nelson
e Prof. Luiz Mauricio, respectivamente.
“A utopia está lá no horizonte. Me
aproximo dois passos, ela se afasta dois
passos. Caminho dez passos e o
horizonte corre dez passos. Por mais que
eu caminhe, jamais alcançarei. Para que
serve a utopia? Serve para isso: para
que eu não deixe de caminhar.”
Eduardo Galeano
8
YAMAMOTO, Titao Júnior. Projeto de desenvolvimento web publicado na nuvem. João Pessoa, 2010. 49f Monografia (Bacharelado em Ciências da Computação) – Centro Universitário de João Pessoa, UNIPÊ.
RESUMO
Este trabalho tem como base metodológica uma pesquisa exploratória e descritiva, na qual se buscou evidenciar a importância de ter um sistema publicado na nuvem. Para tanto, objetiva desenvolver e publicar na nuvem um sistema inicialmente desenvolvido focando a web, o que o mercado de trabalho já conhece. O documento destaca ainda o processo de publicação na nuvem, na utilização do Windows Azure para a hospedagem do serviço e do SQL Azure para o banco de dados na nuvem. Com isso a proposta é apresentar um sistema que visa expor melhor os potencias dos alunos do curso de ciências da computação do UNIPÊ. Como resultado espera-se que este trabalho sirva de referência para profissionais e estudantes da área.
Palavras-chave: Computação em nuvem. Plataforma de serviço Azure. Desenvolvimento web.
9
YAMAMOTO, Titao Júnior. Projeto de desenvolvimento web publicado na nuvem. João Pessoa, 2010. 49f Monografia (Bacharelado em Ciências da Computação) – Centro Universitário de João Pessoa, UNIPÊ.
ABSTRACT
This work builds on a methodological exploratory and descriptive, in which he sought to highlight the importance of having a system published in the cloud. For this, it aims to develop and publish on a cloud system originally developed focusing on the web, what the job market already knows. The document also highlights the process of publication in the cloud, the use of Windows Azure for service hosting and SQL Azure for the database in the cloud. Therefore the proposal is to introduce a system designed to better display the potential of students of computer science of UNIPÊ. As a result it is expected that this work will serve as a reference for professionals and students in the area
Palavras-chave: Cloud Computing, Azure Service Plataform. Web Development.
10
LISTA DE ILUSTRAÇÕES
Figura 1: Marca do projeto ............................................................................................. 27 Figura 2: Print Screen do sistema Student Link. ............................................................ 28 Figura 3: Print Screen do sistema Student Link. ............................................................ 28 Figura 4: Diagrama UML de Casos de Uso geral do Student Link. ............................... 30 Figura 5: Representa o DMD para Universidade, Cursos e Faculdade. ......................... 31 Figura 6: Tela principal do nDeveloper Studio com o template padrão para geração de classes de acesso a dados. ........................................................................................... 32 Figura 7: Parte do código gerado para acesso aos dados da universidade pelo NDeveloper. .................................................................................................................... 33 Figura 8: Arquitetura lógica do Student Link. ................................................................ 34 Figura 9: Imagem do Projeto UI.Web no Visual Studio. ............................................... 34 Figura 10: Código gerado para camada de Business Logic. ........................................... 35 Figura 11: Imagem do Projeto DataAcess no Visual Studio. ......................................... 36 Figura 12: Código gerado para camada Info. ................................................................. 37 Figura 13: Código sendo utilizado na camada UI.Web. ................................................. 37 Figura 14: A Plataforma de Serviço Azure suporta aplicativos executados na nuvem e em sistemas locais. ......................................................................................................... 38 Figura 15: Funcionamento das aplicações no Windows Azure. ..................................... 40 Figura 16: Partes principais do Windos Azure. .............................................................. 40 Figura 17: Inserção de novo projeto. .............................................................................. 42 Figura 18: Novo projeto criado na solução. ................................................................... 43 Figura 19: Novos arquivos gerados. ............................................................................... 43 Figura 20: Opções do Windows Azure........................................................................... 44 Figura 21: Deploy da aplicação. ..................................................................................... 45 Figura 22: Start da aplicação. ......................................................................................... 45 Figura 23: Página de administração do SQL Azure. ...................................................... 46 Figura 24: Acesso ao SQL Azure pelo SQL Server Management Studio. ..................... 46
11
LISTA DE ABREVIATURAS E SLIGAS
API – Application Programming Interface
CERN - European Nuclear Research Center
DBA - Database Administrator
WWW - World Wid Web
SAAS - Software as a Service
PAAS - Platform as a Service
IAAS - Infrastructure as a Service
DAAS - Data as a Service
CAAS - Communication as a Service
SDK - Software Development Kit
FDD - Feature Driven Development
RUP - Rational Unified Process
RAD - Rapid Application Development
IDE - Integrated Development Environment
UML - Unified Modeling Language
DMD - Database Model Diagram
SQL - Structure Query Language
CASE - Computer-Aided Software Engineering
12
SUMÁRIO
1 INTRODUÇÃO ..................................................................................................... 14
2 PROCEDIMENTOS METODOLÓGICOS ....................................................... 17
2.1 CARACTERIZAÇÃO DA PESQUISA .......................................................... 17
2.2 PROBLEMATIZAÇÃO .................................................................................. 18
2.3 OBJETIVOS .................................................................................................... 18
2.3.1 Objetivo Geral .......................................................................................... 18
2.3.2 Objetivos Específicos ............................................................................... 19
2.4 CAMPO EMPÍRICO ....................................................................................... 19
3 FUNDAMENTAÇÃO TEÓRICA ....................................................................... 20
3.1 COMPUTAÇÃO EM NUVEM ....................................................................... 20
3.2 PIONEIRISMO ................................................................................................ 21
3.3 ESTRATÉGIA ................................................................................................. 22
3.4 PROCESSO DE DESENVOLVIMENTO DE SOFTWARE ......................... 23
4 O BANCO DE TALENTOS ................................................................................. 25
4.1 IDENTIFICAÇÃO DE UM PADRÃO DE CURRÍCULOS ........................... 25
4.1.1 Como deve ser um bom currículo............................................................. 25
4.1.2 Modelo do currículo ................................................................................. 26
4.2 PLANO VISUAL ............................................................................................ 26
4.2.1 Logotipo ................................................................................................... 26
4.2.2 Visual do Site ........................................................................................... 27
4.3 ANÁLISE DE REQUISITOS .......................................................................... 29
4.4 CASO DE USO ............................................................................................... 29
4.5 IMPLEMENTAÇÃO ....................................................................................... 30
4.5.1 Tecnologias, ferramentas e componentes utilizados ................................ 30
4.5.2 Ferramenta para Modelagem .................................................................... 31
4.5.3 Ferramenta de Geração de Código ........................................................... 31
4.5.4 Tecnologias e componentes ...................................................................... 33
4.6 ARQUITETURA ............................................................................................. 33
13
4.6.1 Camada UI.Web ....................................................................................... 34
4.6.2 Camada Business Logic ............................................................................ 35
4.6.3 Camada de Persistência ............................................................................ 35
4.6.4 Camada Info ............................................................................................. 36
5 PLATAFORMA DE SERVIÇO AZURE ........................................................... 37
5.1 WINDOWS AZURE ....................................................................................... 39
5.2 SQL AZURE .................................................................................................... 41
5.3 PRIMEIROS PASSOS DA PUBLICAÇÃO ................................................... 42
5.3.1 Gerando os arquivos de publicação .......................................................... 42
5.4 PUBLICAÇÃO NA NUVEM ......................................................................... 44
5.4.1 Windows Azure ........................................................................................ 44
5.4.2 SQL Azure ................................................................................................ 45
6 CONSIDERAÇÕES FINAIS ............................................................................... 47
REFERÊNCIAS ........................................................................................................... 48
14
1 INTRODUÇÃO
Em março de 1989, o engenheiro e cientista da computação Sir Tim Berners
Lee, escreveu uma proposta de gerenciamento de informação que, logo no inicio, tinha
o intuito de disponibilizar informações apenas entre os cientistas. Ainda no mesmo ano,
nos laboratórios da European Nuclear Research Center (CERN), este cientista juntou-se
ao também cientista da computação Robert Cailliau, para que fortalecessem a idéia e
conseguisse atingir o objetivo antes definido, a proposta que viria a se chamar World
Wid Web (WWW), ou simplesmente web. A web foi então lançada no mês de dezembro
em 1990.
Desde então muitas modificações significativas e constantes vêem sendo feitas.
O crescimento da web começa em 1990, após a CERN, publicar o novo projeto “World
Wide Web”. Chegando ao final de 1994 a web havia crescente interesse público, e o que
antes era considerada muito técnica e acadêmica começa a ser acessível ao público
geral.
Antes mesmo de existir a web, já era citado o modelo que hoje conhecemos
como cloud computing, ou computação em nuvem.
A paternidade da expressão “computação em nuvem” é incerta. Mas a idéia,
ainda que em formato rudimentar, foi apresentado em 1961, o especialista em
inteligência artificial John McCarthy em uma palestra apresentou um modelo de
computação oferecido como um serviço semelhante ao de distribuição de energia.
Algumas centrais como usinas, forneceriam o processamento e armazenamento de
dados para as residências e as empresas, o que hoje já é uma idéia aplicada (Revista
Veja, 2009).
Apesar da idéia de computação em nuvem ter sido relatado há bastante tempo, a
sua história começa a ser feita há poucos anos. Com os avanços da tecnologia e da web,
o modelo de computação em nuvem começa a se incorporar e a ser promovida
diretamente pela web, passando do que seria uma possibilidade para uma realidade.
A empresa Amazon teve um papel fundamental no desenvolvimento da mesma,
pois investiu bastante em sua migração e verificou que os seus serviços começavam a
ter uma arquitetura mais flexível.
Em 2008 o Google lança a sua plataforma chamada Google Apps Engine, para
que os desenvolvedores possam hospedar suas aplicações web usando infra-estrutura do
15
Google. E em 2010 a Microsoft lança suas tecnologias de computação em nuvem
chamada de plataforma de serviço Azure, também com foco nos desenvolvedores.
Nesse sentido, o foco da presente pesquisa está em realizar um estudo descritivo
do desenvolvimento de um sistema web para o Centro Universitário de João Pessoa
(UNIPÊ), e usá-lo como caso de uso para a adaptação ao paradigma de computação em
nuvem. Mais especificamente o sistema será um “banco de talentos” com foco nos
alunos do curso de Bacharelado em Ciências da Computação, e a adaptação do sistema
ao paradigma de computação em nuvem visa uma melhor arquitetura, elasticidade e
possibilidade de agregar mais funcionalidades e valores, sem que necessariamente tenha
que obter mais recursos técnicos. A coordenação apresentou a proposta do tema baseado
na necessidade do mercado e dos alunos, visando apresentar uma solução
computacional que pudesse facilitar a exposição dos potenciais dos alunos ao mercado
de trabalho, no caso através da Internet, facilitando a obtenção de estágios, empregos e
demais oportunidades, como também aumentando a interação entre empresa,
universidade e aluno.
A proposta da pesquisa é apresentar um embasamento teórico sobre computação
em nuvem baseada nas tecnologias da Microsoft, fazendo um estudo de caso na
publicação de uma solução, inicialmente desenhada para o desenvolvimento web, para a
computação em nuvem, procurando oferecer uma melhor alternativa para resolver o
problema do curso de ciências da computação do UNIPÊ, tendo ao final uma solução
web com a possibilidade de publicação para a computação em nuvem de acordo com os
serviços da Microsoft, que possa servir como referencia para trabalhos futuros.
Este trabalho encontra-se dividido em quatro partes, que consistem em
apresentar nesta ordem: (a) metodologia do presente estudo; (b) um embasamento
teórico sobre computação em nuvem e processo de desenvolvimento de software; (c) o
estudo com foco no desenvolvimento do sistema na web e depois descrição da
publicação para a computação em nuvem; (d) e as considerações finais da pesquisa.
No capítulo referente à metodologia de estudo, será explicado o porquê de optar
por utilizar pesquisa descritiva e adotar um caráter exploratório. Além disso, será
explicado o campo empírico escolhido, que no caso é o curso de ciências da
computação do UNIPÊ. Serão também apresentados mais detalhes sobre as
distribuições do conteúdo nesta pesquisa.
16
No embasamento teórico, serão explicados os conceitos de computação em
nuvem, o processo de desenvolvimento de software, o pioneirismo das empresas com
computação em nuvem e a estratégia de por que usar a computação em nuvem.
No quarto capítulo é apresentado o modelo de currículo abordado.
No quinto capítulo será desenvolvida a proposta da solução propriamente dita,
voltada ao ambiente web, tendo como base os processos citados.
No sexto capítulo é abordado mais as tecnologias da Microsoft para a
computação em nuvem.
No sétimo capítulo é descrito como publicar o serviço na nuvem, de acordo com
as tecnologias Azure.
Por fim, será apresentada uma conclusão que tem como referencial os conceitos
chaves explicados durante a pesquisa. A pesquisa visa evidenciar a possível necessidade
de utilizar a computação em nuvem, tendo em vista que hoje já é possível a sua
utilização.
17
2 PROCEDIMENTOS METODOLÓGICOS
Este capítulo busca definir a metodologia que foi utilizada na pesquisa, bem
como explanar quais ferramentas serão utilizadas na condução e análise dos resultados.
2.1 CARACTERIZAÇÃO DA PESQUISA
Este trabalho utiliza uma metodologia de pesquisa de caráter descritiva, pois
possui como objetivo descrever as características do objeto de estudo, com a
preocupação de apresentar suas características. Gil (1991) define que a pesquisa
descritiva “visa descrever as características de determinada população ou fenômeno ou
o estabelecimento de relações entre variáveis. Envolve o uso de técnicas padronizadas
de coleta de dados: questionário e observação sistemática. Assume, em geral, a forma de
Levantamento”.
Para que fosse possível realizar os objetivos desta pesquisa, fez-se necessária
uma pesquisa de estudo de caso. Yin(1990) explica que o estudo de casos é uma forma
de se fazer pesquisa social empírica ao investigar-se um fenômeno atual dentro do seu
contexto de vida-real, onde as fronteiras entre o fenômeno e o contexto não são
claramente definidas e na situação em que múltiplas fontes de evidência são usadas.
Em paralelo, pode-se caracterizar a pesquisa como possuindo um caráter
exploratório, uma vez que os dados elementares da mesma darão suporte a realização de
estudos mais aprofundado sobre o tema. Segundo Mattar (1994), a pesquisa
exploratória procura propiciar ao pesquisador um maior conhecimento sobre o tema ou
problema que a pesquisa aborda. Uma de suas principais metas é esclarecer e ilustrar os
aspectos teóricos utilizados em um trabalho cientifico.
Assim, o objetivo desta abordagem é desenvolver um sistema de banco de
talentos ressaltando o processo de desenvolvimento do mesmo e depois adaptá-lo a
computação em nuvem e assim sanando o problema da universidade.
A primeira etapa da pesquisa foi o levantamento teórico para fundamentação dos
argumentos e como seria a publicação do serviço para nuvem, que foram levados em
conta e utilizados na publicação do sistema.
No segundo momento, foi então desenvolvido o sistema visando a web, para um
momento posterior tê-lo como caso de uso.
18
Por fim, na terceira fase, foi publicado o sistema para a “nuvem”, descrevendo
os passos técnicos que foram utilizados para a publicação, do ambiente antes que era
web para a “nuvem”. As conclusões sobre todo o estudo realizado serão apresentados ao
final da pesquisa.
2.2 PROBLEMATIZAÇÃO
Toda empresa quando necessita de ampliar seu quadro de funcionários enfrenta
um processo de contratação bastante difícil, os problemas já começam na divulgação da
vaga e a seleção dos currículos para a entrevista.
Na atualidade, um dos grandes problemas para um estudante de nível superior é
ter uma oportunidade no mercado de trabalho, isto foi identificado pelos membros da
coordenação do curso de bacharelado em ciências da computação da UNIPÊ, tendo
como base os seus próprios alunos. Apesar do curso de computação ter alunos com
potencial e conhecimento, é difícil para a coordenação deixar os mesmos em foco no
mercado.
Assim, diante de tal realidade, são apresentados três problemas para uma mesma
solução. As empresas que necessitam de funcionários, a universidade que tem pessoas
com o potencial necessário e os alunos que muitas vezes tem o conhecimento, mas não
conseguem uma oportunidade.
Nesse sentido, este trabalho trás a seguinte questão de pesquisa: Como melhor
expor os potenciais dos alunos através de uma solução computacional, facilitando a
obtenção de oportunidades no mercado de trabalho?
2.3 OBJETIVOS
2.3.1 Objetivo Geral
Facilitar a exposição dos potenciais dos alunos do curso de bacharelado em
ciências da computação do UNIPÊ ao mercado de trabalho, com foco na obtenção de
estágios, empregos e demais oportunidades, isto por meio de uma solução inicialmente
desenhada para web e posteriormente publicada a computação em nuvem.
19
2.3.2 Objetivos Específicos
Como objetivos específicos deste trabalho destacam-se:
• Identificar um padrão de currículo universitário que seja de fácil
elaboração e que exponha adequadamente os potenciais dos alunos;
• Definir padrão visual;
• Modelar e implementar o sistema;
• Descrever o processo da portabilidade de uma solução web
desenvolvidas em plataforma Microsoft para as suas próprias tecnologias
de computação em nuvem, utilizando-se a solução desenvolvida como
caso de uso.
Sendo assim, uma vez contemplados estes objetivos, o documento final poderá
se tornar uma fonte de referência, com informações sobre computação em nuvem com
foco nas tecnologias da Microsoft, bem como fonte de exploração e análise por
profissionais da área que necessitam publicar suas soluções web na nuvem.
2.4 CAMPO EMPÍRICO
O Centro Universitário de João Pessoa, antes denominado Instituto Paraibano de
Educação (IPÊ), desde sua fundação, já ofereceu vários cursos de graduação nas mais
variadas áreas de conhecimento.
Atualmente, a instituição mantém cursos nas áreas de ciências humanas, exatas e
saúde. Dentre os cursos mantidos pela instituição, há, na área de ciências exatas, os
cursos de graduação em Ciências da Computação (Bacharelado) e os, recém-criados,
Tecnologia em Sistemas para Internet e Gestão de Tecnologia da Informação
(Tecnólogos).
20
3 FUNDAMENTAÇÃO TEÓRICA
3.1 COMPUTAÇÃO EM NUVEM
A computação em nuvem, no inglês também conhecida como cloud computing,
é uma das maiores tendências do mercado atual. Grandes empresas já têm suas
tecnologias de desenvolvimento, como também já utilizam os mesmos provendo
serviços.
Diversas aplicabilidades são possíveis nas nuvens, resultando também em
diversos fins, como por exemplo:
� Software as a Service (SaaS) – Aplicações expostas pela internet;
� Platform as a Service (PaaS) – Plataforma para ser utilizada pelos
desenvolvedores que provê algumas Applications Programming
Interfaces (API), que é um conjunto de rotinas e padrões estabelecidos
por um software para utilização das suas funcionalidades, e ambiente em
tempo de execução;
� Infrastructure as a Service (IaaS) – Infra-estrutura de recursos
virtualizados pela nuvem;
� Data as a Service (DaaS) – Dados oferecidos como serviços;
� Communication as a Service (CaaS) – Comunicação oferecida
como serviço.
Com diferentes possibilidades e tecnologias é evidente que aparecerão opiniões
divergentes, o que deixa o conceito ainda muito confuso. Um breve conceito,
compreendendo algumas visões, pode-se citar que a computação em nuvem é um
ambiente de processamento e armazenamento de dados massivo, de alta escalabilidade e
alta disponibilidade, acessível via web, como HTTP, REST e SOAP, instalado em
datacenters de ultima geração espalhados pelo mundo (Mundo .NET, 2009).
Visando o grande poder de processamento, escalabilidade, disponibilidade e
arquitetura, que são fornecidos por estes datacenters, é previsível que grandes empresas
como Amazon, Google, IBM, Microsoft, Rackspace, Zoho, Salesforce, entre outras,
estão trabalhando e procurando o seu lugar na nuvem.
21
3.2 PIONEIRISMO
Para que a computação em nuvem chegasse a se tornar realidade como ela é
hoje, foi necessária a atitude de algumas grandes empresas como Amazon, Google e
Microsoft, que viram uma oportunidade na nuvem.
A Amazon foi uma das precursoras da computação em nuvem, ela teve um papel
fundamental no desenvolvimento da mesma, pois investiu bastante na migração de seus
aplicativos e serviços, verificando assim que os seus serviços começavam a ter uma
arquitetura mais flexível.
A empresa Google teve bastante sucesso na utilização de computação em nuvem
nos seus próprios serviços. Com a utilização dos seus próprios data centers e a
disponibilização pela web, foi possível criar serviços que hoje são bastante utilizados,
como o Google Mail (GMail), Docs e Calendar. Em 2008 o Google lança a sua
plataforma para a nuvem chamada Google Apps Engine, que “oferece um conjunto
completo de desenvolvimento que utiliza tecnologias familiares para criar e hospedar
aplicativos da web” (GOOGLE APP ENGINE, 2010).
A Microsoft, em outubro de 2008, lança suas tecnologias de computação em
nuvem conhecida como Azure Services Platform, durante um dos maiores evento da
empresa chamado Professional Developer Conference realizado em Los Angeles que
também foi publicada a versão 1.0 do Software Development Kit (SDK) e ferramentas
de desenvolvimento para o Windows Azure.
A plataforma de serviço Azure não é um espaço vazio para upload de arquivos, é
um grande hosting de aplicações com diferentes metodologias de trabalho conforme o
serviço de aplicação que se deseja utilizar. Assim é possível ter um serviço com alta
escalabilidade (capacidade de um sistema de suportar o crescimento em seu uso),
disponibilidade (a Microsoft hoje tem vários data centers, onde as informações são
replicadas), segurança (as equipes da Microsoft que trabalham para promover a
segurança dos seus data centers), sem a necessidade de haver um conhecimento técnico
do hardware (que para isto esta tecnologia conta com o apoio dos padrões das indústrias
e protocolos web), como também interoperável entre sistemas e hardwares (por ser
provido na web e algumas aplicações serem possíveis até mesmo a sincronização com
outros hardwares).
22
3.3 ESTRATÉGIA
Muitas empresas, de diferentes ramos de negócio, de pequeno e médio porte,
precisam prover serviços na web com suas próprias regras de negócios, banco de dados
e com todos os serviços integrados. Este é um cenário muito comum nas empresas
atualmente, que para prover esta estrutura, necessitam de toda uma infra-estrutura de
hardware, que é de custo muito elevado e sempre crescente, de acordo com o
crescimento da empresa.
Ter um serviço na “nuvem” além de garantir uma grande escalabilidade, também
oferece um custo muito baixo, baseado em todo o cenário que pequenas e médias
empresas têm que manter o que só será vantagem para o desenvolvedor individual se o
serviço tiver previsão de grande crescimento e se o gasto final no cenário que é
necessário for menor na nuvem. Esses custos englobam três pontos:
• Infraestrutura de rede (com segurança, firewall, isolamento,
máquinas virtuais, instâncias de processamento, entre outras coisas);
• infraestrutura de armazenamento (com hardware específico,
planejamento de capacidade, crescimento estimado, replicação, backup,
entre outras coisas);
• Administração/operação (com monitoração, logging, segurança,
estatísticas de operação, entre outras coisas).
Os gastos com os data centers são enormes, um só complexo da Microsoft
em San Antonio, no Texas, mede por volta de 55.000 m², o equivalente a dez
campos de futebol americano. Tem 602.000 galões de água reciclada para
refrigeração. São 7 salas com geradores de energia (backup) com aproximadamente
1000 baterias cada uma. Tem na verdade dois data centers gigantes, lado a lado,
sendo um backup do outro.
Nestas usinas de nuvem, grandes são os cuidados que devem ser tomados
com os data centers, além dos cuidados já citados anteriormente, alguns outros
pontos também tem que ter alguns cuidados, como por exemplo:
23
• Incêndio;
• Segurança dos equipamentos;
• Acúmulo de pó;
• Resfriamento dos equipamentos. Variação de apenas 2 graus, se
não os computadores superaquecem e podem até queimar, para isso os
data centers produzem água gelada em profusão, distribuída por
pequenos canos pelo ambiente;
Na nuvem além destas vantagens também pode ser visto uma nova realidade de
negócio, que é a possibilidade de elasticidade da empresa, pois na nuvem facilmente é
possível alocar e desalocar recursos de toda parte de tecnologia da informação da
empresa, isto de acordo com a necessidade dos serviços da mesma.
O objetivo de o sistema ser publicado na nuvem é visando o crescimento, com a
implementação de outros requisitos que poderão ser levantados posteriormente, e a
quantidade de acesso ao mesmo. Tendo como resultado um sistema elástico, provido na
web, sem nenhuma necessidade de prover e sustentar parte física e a possibilidade de
pagar só o que realmente estiver sendo utilizado.
3.4 PROCESSO DE DESENVOLVIMENTO DE SOFTWARE
Para evoluir com qualidade, um software depende da adoção de um bom
processo de desenvolvimento de software. Este descreve um conjunto de passos para
que o objetivo do software seja atingido e é representado por um modelo de processo de
software (SOMMERVILLE, 2004).
Os modelos de processo de software adotados para o projeto são Feature Driven
Development (FDD) (PALMER e FELSING, 2002), desenvolvimento guiado por
funcionalidades, sendo este desenvolvimento uma metodologia ágil para gerenciamento
e desenvolvimento de software. Rational Unified Process (RUP) (SHUJA e KREBS,
2008), processo de engenharia de software que oferece uma abordagem baseada em
disciplinas para atribuir tarefas e responsabilidades dentro de uma organização de
desenvolvimento. Rapid Application Development (RAD) (MARTIN, 1991), modelo de
processo de desenvolvimento incremental. É uma adaptação “de alta velocidade” do
modelo em cascata, pois enfatiza um ciclo de desenvolvimento muito curto como, por
24
exemplo, um ciclo de 60 a 90 dias (PRESSMAN, 2004). O processo de software para o
desenvolvimento do projeto segue o modelo RAD.
O modelo RAD baseia-se nas seguintes atividades: comunicação, planejamento,
modelagem, construção e implantação.
Na comunicação há uma grande interação com o cliente, é essencial que o
mesmo seja visto como parte equipe, ditando as prioridades e a forma em que o sistema
funcionará. Com este feedback ágil, o cliente pode acompanhar o que está sendo feito
com reuniões semanais, ou se possível, diárias. É nessa atividade onde ocorre o
levantamento dos requisitos. Dessa forma, é possível entender melhor os problemas do
negócio, e as principais características do sistema e das informações que serão
armazenadas.
No planejamento, é levantado um roteiro do que será desenvolvido e o prazo
final de entrega do sistema, novamente a ajuda do cliente é essencial, para que tudo seja
convertido rapidamente a código.
A modelagem é formada por três fases: modelagem de negócio, de dados e de
processos. Neste período são estabelecidas representações do projeto que serve como
base para a construção do mesmo.
E então por fim, a atividade de implantação consiste na integração das partes,
entrega e feedback do cliente. Essa atividade estabelece uma relação, em que haja uma
possível interação subseqüente, caso seja necessário.
Nem sempre o modelo RAD é adequado a determinados projetos, pois pode
trazer desvantagem no processo de desenvolvimento. Isto é facilmente visível quando o
tamanho do projeto e da escalabilidade é muito grande, pois requerem maiores recursos
humanos, um forte processo de desenvolvimento e de documentação, o que não é viável
para projetos menores. Além disso, RAD provavelmente não será apropriado quando há
altos riscos técnicos, por exemplo, o uso de uma nova tecnologia em larga escala.
Nesse contexto, o modelo RAD é adequado ao projeto banco de talentos, visto o
tempo solicitado para a realização do mesmo (4 meses), o tamanho do projeto e a
natureza do problema, permitindo a divisão por módulos e reuso de componentes, além
de utilizar ferramentas de geração automática de código.
25
4 O BANCO DE TALENTOS
4.1 IDENTIFICAÇÃO DE UM PADRÃO DE CURRÍCULOS
Um currículo é uma apresentação resumida de informações relativas à vida
estudantil e/ou profissional. (Mini Aurélio, 2001).
De um modo geral o curriculum vitae tem como objetivo fornecer o perfil da
pessoa para um empregador, podendo também ser usado como instrumento de apoio em
situações acadêmicas. É uma síntese de qualificações e aptidões, na qual o candidato a
alguma vaga de emprego descreve as experiências profissionais, formação acadêmica, e
dados pessoais para contato. Ainda é a forma que muitas empresas usam para preencher
vagas de emprego.
4.1.1 Como deve ser um bom currículo
Para que fosse possível obter um padrão de currículo que melhor exiba o
potencial dos alunos, foi necessário o contato com alguns diretores e profissionais da
área de recursos humanos.
Um bom currículo deve ter informações claras para que o contratante possa
identificar com facilidades os conhecimentos e experiências do candidato. Por isso,
deve-se tomar muito cuidado para que informações irrelevantes sejam destacadas em
detrimento de dados importantes.
O modelo do currículo teve como base alguns cuidados que devem ser seguidos,
como os listados abaixo:
• Manter-se simples;
• Honestidade nas informações fornecidas;
• Cuidados com erros ortográficos e gramaticais.
26
4.1.2 Modelo do currículo
Seguindo as orientações citas anteriormente, o currículo se apresenta bastante
simples, seguindo os seguintes tópicos:
• Dados pessoais: são fornecidas algumas informações do aluno, a
limitação de fornecer informação é para que as empresas tenham a
necessidade de pedir indicação como também o contato do aluno através
do sistema, assim associando a empresa à coordenação;
• Formação acadêmica: menciona as formações acadêmicas do
aluno, caso tenha mais de uma;
• Perfil profissional: este item menciona um resumo da experiência
profissional, como também indicar os pontos fortes do conhecimento
tecnológico, experiência gerencial e trabalhos na área de qualidade e
metodologia;
• Certificações: as certificações que os alunos já tenham;
• Experiência profissional: as experiências caso o aluno já tenha
alguma;
• Língua estrangeira: um dos pontos importantes abordados pelas
empresas e visto como nível de leitura, escrita e conversação;
Cursos e Seminários: estas informações não são tão importantes, mas podem ser destacadas participações em eventos importantes ou de tecnologia avançada ou inovadora.
4.2 PLANO VISUAL
4.2.1 Logotipo
Tendo em vista que o nome “Banco de Talentos” é bastante simples e facilmente
encontrada na web e algo um pouco difícil de ser representado, foi então vista a
necessidade da criação de um logotipo, que pudesse assim agregar valor e uma visão
própria, e então foi criada a marca “Student Link”, podendo ser visto na Figura 1.
Figura 1: Marca do projeto Fonte: Próprio Autor / 2010.
A marca é tratada de maneira
agradável. O nome “Student
leitura e que ganhe um destaque maior em relação ao segundo nome, que por sua vez,
tem a suavidade de curvas, dando destaque maior a letra “L” para simbolizar e lembrar a
figura do “infinito”, com uma a
idéia de ligação. Fazendo alusão à essência do projeto, como uma base de dados dos
potências dos alunos da instituição, tendo os quadrados representando os estudantes e a
simetria do mesmo na repres
para as empresas, em busca de novos profissionais capacitados, comprometidos e
atualizados.
A frase representa a união que haverá no sistema, entre empresas, universidade e
os alunos.
No esquema de cores são utilizados três tons de azul e o cinza escuro, remetendo
assim a seriedade do projeto e agregar a idéia de agradável e de tranqüilidade.
4.2.2 Visual do Site
O esquema de cores
maneira suave e simples que é tratada na logomarca, podendo ser visto nas figuras a
seguir.
A marca é tratada de maneira clean e objetiva para que seja visualmente
Student” traz uma fonte arredondada e espessa, para uma fácil
leitura e que ganhe um destaque maior em relação ao segundo nome, que por sua vez,
tem a suavidade de curvas, dando destaque maior a letra “L” para simbolizar e lembrar a
figura do “infinito”, com uma abertura na parte superior, para trazer junto à forma, uma
idéia de ligação. Fazendo alusão à essência do projeto, como uma base de dados dos
potências dos alunos da instituição, tendo os quadrados representando os estudantes e a
simetria do mesmo na representação da organização, com infinidades de possibilidades
para as empresas, em busca de novos profissionais capacitados, comprometidos e
A frase representa a união que haverá no sistema, entre empresas, universidade e
cores são utilizados três tons de azul e o cinza escuro, remetendo
assim a seriedade do projeto e agregar a idéia de agradável e de tranqüilidade.
O esquema de cores e a organização das informações tendem as cores e a
que é tratada na logomarca, podendo ser visto nas figuras a
27
e objetiva para que seja visualmente
traz uma fonte arredondada e espessa, para uma fácil
leitura e que ganhe um destaque maior em relação ao segundo nome, que por sua vez,
tem a suavidade de curvas, dando destaque maior a letra “L” para simbolizar e lembrar a
bertura na parte superior, para trazer junto à forma, uma
idéia de ligação. Fazendo alusão à essência do projeto, como uma base de dados dos
potências dos alunos da instituição, tendo os quadrados representando os estudantes e a
entação da organização, com infinidades de possibilidades
para as empresas, em busca de novos profissionais capacitados, comprometidos e
A frase representa a união que haverá no sistema, entre empresas, universidade e
cores são utilizados três tons de azul e o cinza escuro, remetendo
assim a seriedade do projeto e agregar a idéia de agradável e de tranqüilidade.
a organização das informações tendem as cores e a
que é tratada na logomarca, podendo ser visto nas figuras a
28
Figura 2: Print Screen do sistema Student Link. Fonte: Próprio Autor / 2010.
Figura 3: Print Screen do sistema Student Link. Fonte: Próprio Autor / 2010.
29
4.3 ANÁLISE DE REQUISITOS
O Banco de Talentos, denominado Student Link, é um projeto que visa à
construção e a disponibilidade de um sistema web, onde os estudantes do curso de
ciências da computação estejam facilmente visíveis para o mercado de trabalho. Tendo
como intuito acompanhar o andamento e injetar cada vez mais alunos do curso que já
estão capacitados a entrarem no mercado de trabalho. Com base nisso, os seguintes
requisitos funcionais foram definidas para o sistema:
• Cadastro, edição e remoção por parte dos alunos;
• Cadastro, edição e remoção por parte dos coordenadores;
• Cadastro, edição e remoção por parte das empresas;
• Coordenador e empresas se comunicam;
• Geração de currículo em PDF.
Além dos requisitos funcionais, foram definidos também os não-funcionais, que
são os seguintes:
• sistema on-line;
• banco de dados SQL Server;
• replicação de banco de dados;
• Interface gráfica intuitiva e de fácil acesso.
4.4 CASO DE USO
Os atores apresentados na Figura 4 são os usuários identificados no
levantamento de requisitos. Os atores são os alunos, o coordenador e as empresas. O
coordenador se comunica com as empresas e os alunos, as empresas só se comunicam
com o coordenador e os alunos se comunicam com o coordenador e mantém suas
informações atualizadas. O próprio sistema mantém os atores, as empresas e o
coordenador fixos, mas os alunos tornam disponível o acesso de acordo com a situação
de matriculado ou de ter concluído o curso na universidade.
O verbo “Manter” no Caso de Uso refere-se às operações de cadastro, edição e
remoção.
30
Figura 4: Diagrama UML de Casos de Uso geral do Student Link. Fonte: Próprio Autor / 2010.
4.5 IMPLEMENTAÇÃO
4.5.1 Tecnologias, ferramentas e componentes utilizados
Tendo em vista o processo de software adotado visto no tópico 3.2, umas das
questões importantes a serem abordadas são os meios utilizados para se desenvolver o
sistema com a agilidade necessária. Esses meios compreendem tecnologias, ferramentas
e componentes que auxiliem na fase de construção como, por exemplo, Integrated
Development Environment (IDE), ferramentas de auxílio à modelagem, geradores
automáticos de código e componentes de software pré-existentes.
31
4.5.2 Ferramenta para Modelagem
Como o desenvolvimento é focado nas tecnologias da Microsoft, foi então
adotado para a modelagem do projeto o Microsoft Visio 2007, que é uma ferramenta de
criação de diagramas para o ambiente Windows. O ponto forte do Visio são os
diagramas técnicos e profissionais, com imagens vetoriais, que podem ser ampliados e
manipulados facilmente.
O produto foi desenvolvido pela Visio Corporation, uma empresa independente
que foi adquirida em 2000 pela Microsoft. Desde então, o Visio foi incorporado ao
pacote de ferramentas de produtividade.
Dentre vários tipos de diagramas aos quais o Microsoft Visio dá suporte, estão
os diagramas Unified Modeling Language (UML) 2.0 (GUEDES, 2006) e o Database
Model Diagram (DMD), tipos de diagramas usados no banco de talentos. Ele foi usado
na modelagem do banco de dados porque o Microsoft Visio é capaz de gerar scripts
Structure Query Language (SQL) a partir de um diagrama desse tipo.
Figura 5: Representa o DMD para Universidade, Cursos e Faculdade. Fonte: Próprio Autor / 2010.
4.5.3 Ferramenta de Geração de Código
A ferramenta utilizada para geração automática de código é o nDeveloper
Studio, uma ferramenta Computer-Aided Software Engineering (CASE) que pode ser
consideradas como ferramentas automatizadas que tem como objetivo auxiliar o
desenvolvedor de sistemas em uma ou várias etapas do ciclo de desenvolvimento de
software, e utiliza o nDeveloper Framework em sua base.
32
O nDeveloper Framework é um projeto iniciado pela Vsoft Tecnologia em 2006,
com o intuito de reunir características que eram encontradas apenas separadamente nas
ferramentas já existentes no mercado. O objetivo principal do projeto para a empresa era
entregar mais aplicações em menos tempo e com qualidade. Em 2007, a Vsoft
Tecnologia decidiu tornar o nDeveloper Framework um projeto de código aberto
através da licença Apache 2.0 e, hoje, a ferramenta é definida como um “framework de
mapeamento objeto/relacional, acesso a multi-banco de dados, geração de código e
produtividade” (NDEVELOPER, 2009). O nDeveloper Studio permite a manipulação
do dicionário de dados, geração de código através de templates, geração de scripts SQL
e funcionalidade de engenharia reversa, onde dicionários de dados são gerados a
partir de scripts SQL. Dessa forma, a funcionalidade de engenharia reversa do
nDeveloper Studio foi usada para gerar o dicionário de dados a partir do script SQL
proveniente do DMD criado no Microsoft Visio. Os templates padrão do nDeveloper
Studio geram uma aplicação organizada em três divisões: Info (definição de
dados), Business Logic (regras de negócio) e Data Access (acesso a dados).
Figura 6: Tela principal do nDeveloper Studio com o template padrão para geração de classes de acesso a dados. Fonte: Próprio Autor / 2010.
Figura 7: Parte do código gerado para acesso aos dados da universidade pelo NDeveloper.Fonte: Próprio Autor / 2010.
4.5.4 Tecnologias e componentes
Para a codificação foram
sobre a plataforma Microsoft
gráfica, foram utilizados os componentes Web Forms do próprio dotNET. O banco de
dados escolhido para a aplicação foi o SQL Server 2008 e a ferramenta utilizada para
gerenciamento do mesmo foi o SQL Server Management Studio. O conjunto de
bibliotecas ADO.NET 2.0 (PROSISE, 2002) foi adotado para acesso e manipulação dos
dados.
4.6 ARQUITETURA
A arquitetura inicial do
proveniente do modelo (
nDeveloper Studio, dando origem a três camadas:
Dessa forma, a arquitetura dividida em quatro camadas:
apresentação), Business Logic
(camada de persistência de dados)
: Parte do código gerado para acesso aos dados da universidade pelo NDeveloper.
Tecnologias e componentes
codificação foram utilizados, a IDE Visual Studio 2010 e a
a plataforma Microsoft dotNET Framework. Para a construção da interface
gráfica, foram utilizados os componentes Web Forms do próprio dotNET. O banco de
dados escolhido para a aplicação foi o SQL Server 2008 e a ferramenta utilizada para
gerenciamento do mesmo foi o SQL Server Management Studio. O conjunto de
bibliotecas ADO.NET 2.0 (PROSISE, 2002) foi adotado para acesso e manipulação dos
A arquitetura inicial do Student Link baseou-se na estrutura do código
proveniente do modelo (template) padrão de geração de código da ferramenta
nDeveloper Studio, dando origem a três camadas: Business Logic, Persistence
Dessa forma, a arquitetura dividida em quatro camadas: UI.Web
Logic (camada que contém as regras de negócio),
(camada de persistência de dados) e Info (camada de definição de dados).
33
: Parte do código gerado para acesso aos dados da universidade pelo NDeveloper.
e a linguagem C#
Framework. Para a construção da interface
gráfica, foram utilizados os componentes Web Forms do próprio dotNET. O banco de
dados escolhido para a aplicação foi o SQL Server 2008 e a ferramenta utilizada para
gerenciamento do mesmo foi o SQL Server Management Studio. O conjunto de
bibliotecas ADO.NET 2.0 (PROSISE, 2002) foi adotado para acesso e manipulação dos
se na estrutura do código
) padrão de geração de código da ferramenta
Persistence e Info.
UI.Web (camada de
(camada que contém as regras de negócio), Persistence
(camada de definição de dados).
34
Figura 8: Arquitetura lógica do Student Link. Fonte: Próprio Autor / 2010
4.6.1 Camada UI.Web
Qualquer camada pode ser facilmente separada, trocando a maneira de acesso ao
banco, ou de apresentação, mesmo sendo um projeto diferente (exemplo: aplicação para
computadores), pois o esquema de arquitetura utilizada é baseada neste intuito de
separação em camadas, conseguindo assim a fácil re-utilização de códigos.
Figura 9: Imagem do Projeto UI.Web no Visual Studio. Fonte: Próprio Autor / 2010.
35
A arquitetura desta camada tem pacotes que estão representadas na Figura 9,
estes pacotes são:
• _Img: contém as imagens que são utilizadas no projeto;
• MasterPage: contém as master pages, que são recursos de herança visual,
que são utilizados nas páginas;
• Pages: contém as paginas web;
• Start: é só um padrão, nela contém apenas a página inicial, a primeira
página “Default.aspx” direciona para a única página que está neste
pacote;
• Styles: contém esquemas das páginas, no caso as cascading Style Sheets,
também conhecidas como css.
4.6.2 Camada Business Logic
É a camada que fica entre a persistence e a Info. É por ela que passa as
requisições ao banco e o modelo dos objetos que está na camada Info. Na Figura 10
mostra o código gerado, onde se faz uso da camada de persistence pela classe
UniversidadesDA e da camada Info com a classe tblUniversidades.
Figura 10: Código gerado para camada de Business Logic. Fonte: Próprio Autor / 2010.
4.6.3 Camada de Persistência
A camada de persistência, possui o pacote Data Access, que contém os códigos
de acesso a dados gerado pelo nDeveloper Studio que no caso estão no pacote base,
como também deixa um modelo explicito para os desenvolvedores seguirem, deixando
36
o código de acesso mais organizado e dividido em módulos. Esta camada também faz
uso de um pacote de arquivos XML chamado Domain Data, que possui as
configurações do banco, o dicionário de dados, entre outros.
Figura 11: Imagem do Projeto DataAcess no Visual Studio. Fonte: Próprio Autor / 2010.
Os pacotes desta camada definem:
• Base: contém as classes que são geradas pelo framework NDeveloper e
contém os acessos padrões;
• Sistema: contém apenas a classe “BaseDb”, que define a conection string
de acordo com o banco que está sendo utilizado;
• Os restos das classes que se encontram nessa camada chamam como
método os acessos que estão no pacote “Base” e onde estão os acessos
feitos pelo desenvolvedor, para que não se altere o que é gerado pela
framework NDeveloper.
4.6.4 Camada Info
É a camada onde estão as classes que representam o banco de dados como
objeto, ou seja, cada tabela representa um objeto, seus campos são representados como
propriedades e podem ser utilizados no projeto.
37
Com esta camada é possível converter pesquisas de um banco relacional em
objeto, sendo possível o código do sistema tratar a informação como objeto e o banco
de dados como modelo relacional.
Figura 12: Código gerado para camada Info. Fonte: Próprio Autor / 2010.
A Figura 12 mostra o código gerado para esta camada, com esta arquitetura é
possível na camada de exibição (UI.Web) fazer uso destes códigos gerados, como é
mostrado na Figura 13.
Figura 13: Código sendo utilizado na camada UI.Web. Fonte: Próprio Autor / 2010.
38
5 PLATAFORMA DE SERVIÇO AZURE
A plataforma de serviços Azure é um grupo de tecnologias da nuvem que
fornece um conjunto específico de serviços hosteados nos data centers da Microsoft
(AZURE, 2010). Como a Figura 11 mostra, a Plataforma de Serviço Azure pode ser
usada tanto por aplicativos em execução na nuvem quanto por aqueles executados em
sistemas locais.
Figura 14: A Plataforma de Serviço Azure suporta aplicativos executados na nuvem e em sistemas locais. Fonte: Azure / 2010.
Os componentes da Plataforma de Serviços Azure podem ser usados por
aplicativos locais executados em uma variedade de sistemas, inclusive vários tipos de
sistemas operacionais Windows, dispositivos móveis ou outros. Esses componentes
incluem:
• Windows Azure: Fornece um ambiente baseado no Windows para
executar aplicativos e armazenar dados nos servidores dos centros de
dados da Microsoft;
• Microsoft .NET Services: Oferece serviços de infra-estrutura
distribuídos para aplicativos baseados em nuvem e locais;
• Microsoft SQL Services: Fornece serviços de dados na nuvem
baseados no SQL Server;
39
• Live Services: Através do Live Framework, fornece acesso aos
dados a partir de aplicativos Live da Microsoft e outros. O Live
Framework também permite sincronizar esses dados em estações de
trabalho e dispositivos, encontrando e fazendo o download de
aplicativos.
Como explanado anteriormente, cada empresa visualiza a nuvem da sua
maneira, a plataforma de serviço Azure tem como pilares os serviços SaaS, PaaS e IaaS,
visto no capítulo de computação em nuvem.
5.1 WINDOWS AZURE
O Windows Azure é o sistema operacional para serviços na nuvem que é
utilizado para o desenvolvimento, hosting e gerenciamento dos serviços dentro do
ambiente da plataforma Azure, provendo computação e armazenamento por demanda,
com a finalidade de hostear, escalar, gerenciar aplicações Web e serviços através da
Internet dentro dos data centers da Microsoft (Azure, 2010).
Como mostra a figura 12, o Windows Azure é executado em máquinas presentes
nos data centers da Microsoft.
40
Figura 15: Funcionamento das aplicações no Windows Azure. Fonte: Azure / 2010.
Em vez de fornecer o software para que os clientes instalem e executem em seus
próprios computadores, o Windows Azure é fornecido como serviço onde os clientes
podem executar aplicações e armazenar dados em máquinas com acesso à Internet que
pertencem à Microsoft, como pode ser visto na Figura 13.
Figura 16: Partes principais do Windos Azure. Fonte: Azure / 2010.
41
Como os próprios nomes sugerem, o serviço de Computação executa aplicações
e o serviço de Armazenamento armazena os dados. O terceiro componente, a Malha do
Windows Azure, oferece uma maneira de gerenciar e monitorar as aplicações que usam
essa plataforma na nuvem.
5.2 SQL AZURE
O SQL Azure é um banco de dados relacional baseado em banco de dados de
serviços da nuvem construído em tecnologias SQL Server. É altamente disponível,
escalável e também um serviço de banco de dados multi-tenant hospedado pela
Microsoft na nuvem. O banco de dados SQL Azure ajuda a aliviar provisionamento e
implantação de múltiplos bancos de dados. Os desenvolvedores não precisam instalar,
patch de instalação, ou gerenciar qualquer software. Alta disponibilidade e tolerância a
falhas é built-in e não é necessária administração física. (SQL Azure, 2010)
Dentro da plataforma Azure, o SQL Azure é um conjunto de serviços que
implementa as capacidades de processamento e armazenamento de dados na nuvem.
Através das capacidades do SQL Azure, as aplicações podem aproveitar recursos como
persistência de dados, sincronização, replicação de dados, relatórios, a partir de uma
infra-estrutura de alta escalabilidade e provisionamento dinâmico, características nativas
de um ambiente em nuvem.
Algumas características do SQL Azure que pode-se destacar é seu modelo de
programação simétrico, que permite ao desenvolvedor trabalhar com o ambiente SQL
Server 2008 local (on-premise) e o ambiente de dados na nuvem da mesma forma,
aproveitando os mesmo recursos do .NET Framework. Outra característica do SQL
Azure é permitir o foco na aplicação, uma vez que o administrador de dados ou
Database Administrator (DBA) não precisará se preocupar com atividades relacionadas
diretamente à infra-estrutura do ambiente, como:
• Compra de repositório e espaço de armazenamento de dados para
o datacenter;
• Dimensionamento de servidores;
• Configuração física e lógica de repositórios;
• Instalação e atualização de software de bancos de dados;
• Diagnóstico e resolução de falhas de hardware.
42
5.3 PRIMEIROS PASSOS DA PUBLICAÇÃO
Como foi explanado no tópico anterior sobre a plataforma de serviço Azure,
neste tópico será descrito como é feito para publicar o sistema web na nuvem, ou seja,
como serviço no Windows Azure.
5.3.1 Gerando os arquivos de publicação
Após o desenvolvimento do sistema, é necessário instalar o Software
Development Kit (SDK) e as ferramentas para a utilização do Azure dentro da IDE, no
caso o Visual Studio.
Com o ambiente preparado, na solução é inserido um novo projeto que irá gerar
os arquivos que serão publicados na nuvem, como pode ser observado na Figura 14.
Figura 17: Inserção de novo projeto. Fonte: Próprio autor / 2010.
O projeto do Windows Azure trabalha com funções, do inglês role, que
representa um componente único construído com código gerenciado e executado no
ambiente Azure. No projeto é utilizada a web role que basicamente é uma aplicação web
ASP.NET. Na criação do projeto não é incluída nenhuma nova role, só após a criação é
atribuído como função o projeto “UI.Web” que é a aplicação ASP.NET do sistema,
visto na Figura 15.
43
Figura 18: Novo projeto criado na solução. Fonte: Próprio autor / 2010.
Terminado a inclusão é necessário apenas publicar o novo projeto, sendo
gerados dois arquivos que serão publicados na nuvem. Um arquivo que é um pacote
com definições do serviço e o outro são as configurações do serviço, como pode ser
visto na Figura 16.
Figura 19: Novos arquivos gerados. Fonte: Próprio autor / 2010.
44
5.4 PUBLICAÇÃO NA NUVEM
A aplicação não foi totalmente testada na nuvem, mas algumas alterações teriam
que ser feitas no projeto para que o mesmo funcione em sua totalidade na mesma. Neste
sistema é necessária a utilização do Windows Azure e do SQL Azure. Para utilizar o
Windows Azure ou o SQL Azure é necessário assinar algum plano, eles não são
serviços gratuitos.
5.4.1 Windows Azure
A publicação na nuvem, mais especificamente no Windows Azure, se resume a
publicar os dois arquivos mencionados anteriormente. Inicialmente é necessário criar
um serviço, podendo ser uma conta de serviço de armazenamento ou um serviço
hospedado como na Figua 17.
Figura 20: Opções do Windows Azure. Fonte: Próprio autor / 2010.
Após escolher em qual região onde será armazenado e assim criar o serviço, é
necessário fazer o deploy da aplicação, como pode ser visto na Figura 18.
45
Figura 21: Deploy da aplicação. Fonte: Próprio autor / 2010.
Com os dois arquivos submetidos à nuvem, o Windows Azure desempacota o
arquivo e utiliza as configurações, que logo após é necessário dar um start na aplicação
e esperar que o Windows Azure inicialize e deixe pronta a aplicação, mostrado na
Figura 19.
Figura 22: Start da aplicação. Fonte: Próprio autor / 2010.
5.4.2 SQL Azure
A utilização do SQL Azure é bem intuitiva, visualmente no portal do Azure é
possível criar e apagar o banco de dados, testar a conectividade, ver a string de conexão
e atribuir alguma regra de firewall com algum nome e IP, visto na Figura 20.
46
Figura 23: Página de administração do SQL Azure. Fonte: Próprio autor / 2010.
A regra de firewall serve para ter acesso ao banco pelo programa SQL Server
Management Studio da Microsoft, não é possível ter acesso e modelar o banco pelo
Management sem atribuir essa regra, no caso o IP da máquina que o acessará. O acesso
é feito com o nome do servidor, usuário administrador e senha que é disponibilizado no
portal, também é necessário escolher o banco que terá acesso na propriedade avançada
de conexão do programa, como é mostrado na Figura 21.
Figura 24: Acesso ao SQL Azure pelo SQL Server Management Studio. Fonte: Próprio autor / 2010.
47
6 CONSIDERAÇÕES FINAIS
Durante o processo de desenvolvimento do sistema web foi possível verificar
juntamente à coordenação do curso as necessidades que deveriam ser supridas na
proposta do sistema a ser desenvolvido. A parte visual foi definida de acordo com os
padrões de alguns sites web, como também com os esquemas de cores e estilo que foi
atribuído à marca desenvolvida para o sistema.
Para concluir esse objetivo, se fez necessário um levantamento de dados sobre
currículos e uma pesquisa paralela sobre as tecnologias de computação em nuvem da
Microsoft, tornando mais visível de como é a nuvem para a empresa e como é possível
desenvolver serviços e publicar em algum de seus datacentesr distribuído em alguma
região do mundo.
As limitações encontradas em relação a esta monografia estão relacionadas ao
material disponível tanto em livros, em revistas, como também na Internet e pelos
serviços da Microsoft, na nuvem, serem pagos, o que para o sistema proposto ficaria
viável apenas se ele for continuado e tornasse um grande ambiente todo centralizado,
diminuindo assim os custos de todo o cenário que o mesmo necessitaria e não apenas de
uma aplicação que ela é hoje.
Um dos trabalhos futuros que podem ser implementados é deixar este sistema
com maior interação entre alunos e professores. Tornando o mesmo um ambiente, que
seja possível a comunicação e a disponibilização facilitada de material provido pelos
professores que possam servir de estudo ao alunado. Com a quantidade massiva de
alunos de toda instituição, não visando apenas o curso de computação, como também
dos professores, tornaria a nuvem o local mais adequado, pois utilizaria a elasticidade
da mesma, não tendo gasto com compra e manutenção do cenário, que em muitos casos
é necessário à compra de hardware para suportar alguma demanda e depois de passado
este tempo o mesmo fica ocioso, o que não aconteceria na nuvem.
Este trabalho traz como contribuição uma forma simples de tornar os potencias
dos alunos mais visíveis ao mercado de trabalho, o relato de uma experiência de
publicação para a nuvem de um serviço inicialmente desenhado para web, como
também visa expor ao leitor que a computação em nuvem hoje já é uma realidade.
48
REFERÊNCIAS
AZURE, Disponível em: http://msdn.microsoft.com/pt-br/windowsazure/default.aspx, Acesso em 09/11/2010.
FERREIRA, Aurélio Buarque de Holanda. Miniaurélio Século XXI: O minidicionário da língua portuguesa. 5ª edição. Nova Fronteira, 2001.
FLÁVIO DE CARVALHO SERPA E LEO BRANCO. Computação sem fronteiras. Revista Veja, 62-72, agosto de 2009.
GIL, Antonio Carlos. Como elaborar projetos de pesquisa. São Paulo: Atlas, 1991.
GOOGLE APP ENGINE, Disponível em: http://code.google.com/intl/pt-BR/appengine/, Acesso em 26/10/2010.
GUEDES, G.T.A. UML – Uma abordagem prática. Editora Novatec, 2ª Edição, 2006.
MARTIN, J. Rapid Application Development. Macmillan Coll Div, 1991.
NDEVELOPER, Disponível em: http://www.codeplex.com/ndeveloper, Acesso em 20/08/2010.
PALMER, S. R. and FELSING, J.M. A Practical Guide to Feature-Driven Development. Prentice Hall PTR, 2002.
PRESSMAN, R. S. Software Engineering: A Practitioner's Approach,6th edition. McGraw-Hill, 2004.
49
PROSISE, J. Programming Microsoft .NET. Microsoft Press, 2002.
SHUJA, A. K. and KREBS, J. IBM Rational Unified Process Reference and Certification Guide: Solution Designer (RUP). IBM Press, 2008.
SOMMERVILLE, I. Software Engineering. 7ª Edição. Addison Wesley, 2004.
SQL AZURE, Disponível em: http://www.microsoft.com/en-us/SQLAzure/database.aspx, Acesso em 09/11/2010.
WALDEMIR CAMBIUCCI. Computação na Nuvem com Windwoz Azure. Mundo .NET, 3, 14, 16-21, abril/maio de 2009.
YIN, Robert K. Case study research: design and methods. Estados Unidos: Sage
Publications, 1990.