SlideShare una empresa de Scribd logo
1 de 49
Descargar para leer sin conexión
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.
27




Figura 1: Marca do projeto
Fonte: Próprio Autor / 2010.


          A marca é tratada de maneira clean e objetiva para que seja visualmente
agradável. O nome “Student traz uma fonte arredondada e espessa, para uma fácil
                   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 abertura na parte superior, para trazer junto à forma, uma
                              abertura
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
                     representação
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 e a organização das informações tendem as cores e a
maneira suave e simples que é tratada na logomarca, podendo ser visto nas figuras a
seguir.
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.
33




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 utilizados, a IDE Visual Studio 2010 e a linguagem C#
sobre 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
dados.


4.6     ARQUITETURA


         A arquitetura inicial do Student Link baseou-se na estrutura do código
                                                      se
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 e Info.
Dessa forma, a arquitetura dividida em quatro camadas: UI.Web (camada de
apresentação), Business Logic (camada que contém as regras de negócio), Persistence
(camada de persistência de dados) e Info (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.

Más contenido relacionado

La actualidad más candente

Projeto de pesquisa sobre web semântica - a web que aprende
Projeto de pesquisa sobre web semântica - a web que aprendeProjeto de pesquisa sobre web semântica - a web que aprende
Projeto de pesquisa sobre web semântica - a web que aprendeAlexandre Grolla
 
Introducao ambiente windows
Introducao ambiente windowsIntroducao ambiente windows
Introducao ambiente windowsMatheusRpz
 
Defesa Dissertação Mestrado em TIC na Educação sobre Second Life
Defesa Dissertação Mestrado em TIC na Educação sobre Second LifeDefesa Dissertação Mestrado em TIC na Educação sobre Second Life
Defesa Dissertação Mestrado em TIC na Educação sobre Second LifeFernando Cassola Marques
 
Monografia Completa - Graduação em Sistemas de Informação
Monografia Completa - Graduação em Sistemas de InformaçãoMonografia Completa - Graduação em Sistemas de Informação
Monografia Completa - Graduação em Sistemas de InformaçãoThiago Ghizzo de Campos
 
EAD Mitos e Práticas
EAD Mitos e PráticasEAD Mitos e Práticas
EAD Mitos e PráticasUFPE
 
Mediação Pedagógica em Ambientes Virtuais
Mediação Pedagógica em Ambientes VirtuaisMediação Pedagógica em Ambientes Virtuais
Mediação Pedagógica em Ambientes VirtuaisElena Maria Mallmann
 
OBA-MC: um modelo de objeto de aprendizagem centrado no processo de ensino-ap...
OBA-MC: um modelo de objeto de aprendizagem centrado no processo de ensino-ap...OBA-MC: um modelo de objeto de aprendizagem centrado no processo de ensino-ap...
OBA-MC: um modelo de objeto de aprendizagem centrado no processo de ensino-ap...Thiago Reis da Silva
 
Guia do tutor_cpg_lante_agosto_2010
Guia do tutor_cpg_lante_agosto_2010Guia do tutor_cpg_lante_agosto_2010
Guia do tutor_cpg_lante_agosto_2010Marcelo Gomes
 
Tutorial e Curso de Moodle: Parte 5 de 5
Tutorial e Curso de Moodle: Parte 5 de 5Tutorial e Curso de Moodle: Parte 5 de 5
Tutorial e Curso de Moodle: Parte 5 de 5EAD Amazon
 

La actualidad más candente (17)

Projeto de pesquisa sobre web semântica - a web que aprende
Projeto de pesquisa sobre web semântica - a web que aprendeProjeto de pesquisa sobre web semântica - a web que aprende
Projeto de pesquisa sobre web semântica - a web que aprende
 
Introducao ambiente windows
Introducao ambiente windowsIntroducao ambiente windows
Introducao ambiente windows
 
Defesa Dissertação Mestrado em TIC na Educação sobre Second Life
Defesa Dissertação Mestrado em TIC na Educação sobre Second LifeDefesa Dissertação Mestrado em TIC na Educação sobre Second Life
Defesa Dissertação Mestrado em TIC na Educação sobre Second Life
 
Monografia Completa - Graduação em Sistemas de Informação
Monografia Completa - Graduação em Sistemas de InformaçãoMonografia Completa - Graduação em Sistemas de Informação
Monografia Completa - Graduação em Sistemas de Informação
 
EAD Mitos e Práticas
EAD Mitos e PráticasEAD Mitos e Práticas
EAD Mitos e Práticas
 
TCC - Educação e Tecnologias
TCC - Educação e TecnologiasTCC - Educação e Tecnologias
TCC - Educação e Tecnologias
 
Mediação Pedagógica em Ambientes Virtuais
Mediação Pedagógica em Ambientes VirtuaisMediação Pedagógica em Ambientes Virtuais
Mediação Pedagógica em Ambientes Virtuais
 
Plano tic 2011 2012
Plano tic 2011 2012Plano tic 2011 2012
Plano tic 2011 2012
 
OBA-MC: um modelo de objeto de aprendizagem centrado no processo de ensino-ap...
OBA-MC: um modelo de objeto de aprendizagem centrado no processo de ensino-ap...OBA-MC: um modelo de objeto de aprendizagem centrado no processo de ensino-ap...
OBA-MC: um modelo de objeto de aprendizagem centrado no processo de ensino-ap...
 
Ai tp3-g3-a
Ai tp3-g3-aAi tp3-g3-a
Ai tp3-g3-a
 
081112 manut mont
081112 manut mont081112 manut mont
081112 manut mont
 
EaD_astro_inct
EaD_astro_inctEaD_astro_inct
EaD_astro_inct
 
Guia do tutor_cpg_lante_agosto_2010
Guia do tutor_cpg_lante_agosto_2010Guia do tutor_cpg_lante_agosto_2010
Guia do tutor_cpg_lante_agosto_2010
 
Manual moodle docente_iscap
Manual moodle docente_iscapManual moodle docente_iscap
Manual moodle docente_iscap
 
Tutorial e Curso de Moodle: Parte 5 de 5
Tutorial e Curso de Moodle: Parte 5 de 5Tutorial e Curso de Moodle: Parte 5 de 5
Tutorial e Curso de Moodle: Parte 5 de 5
 
Anais_2008
Anais_2008Anais_2008
Anais_2008
 
Introducao informatica
Introducao informaticaIntroducao informatica
Introducao informatica
 

Destacado

Auf der Suche nach der universellen Sprache - Utopie oder Irrsinn
Auf der Suche nach der universellen Sprache - Utopie oder IrrsinnAuf der Suche nach der universellen Sprache - Utopie oder Irrsinn
Auf der Suche nach der universellen Sprache - Utopie oder IrrsinnCarolin Hinz
 
2010-JOGL-01-Organisation
2010-JOGL-01-Organisation2010-JOGL-01-Organisation
2010-JOGL-01-OrganisationJohannes Diemke
 
Slides 2º ano - compostos de some,any e no
Slides   2º ano - compostos de some,any e noSlides   2º ano - compostos de some,any e no
Slides 2º ano - compostos de some,any e noISJ
 
Valores para a vida2
Valores para a vida2Valores para a vida2
Valores para a vida2julitafreire
 
El amor
El amorEl amor
El amornzenag
 

Destacado (7)

Auf der Suche nach der universellen Sprache - Utopie oder Irrsinn
Auf der Suche nach der universellen Sprache - Utopie oder IrrsinnAuf der Suche nach der universellen Sprache - Utopie oder Irrsinn
Auf der Suche nach der universellen Sprache - Utopie oder Irrsinn
 
2010-JOGL-01-Organisation
2010-JOGL-01-Organisation2010-JOGL-01-Organisation
2010-JOGL-01-Organisation
 
Mid call
Mid callMid call
Mid call
 
Slides 2º ano - compostos de some,any e no
Slides   2º ano - compostos de some,any e noSlides   2º ano - compostos de some,any e no
Slides 2º ano - compostos de some,any e no
 
Rcm cayston 07 2012
Rcm cayston 07 2012Rcm cayston 07 2012
Rcm cayston 07 2012
 
Valores para a vida2
Valores para a vida2Valores para a vida2
Valores para a vida2
 
El amor
El amorEl amor
El amor
 

Similar a Monografia - Titao Yamamoto

Manutenção e montagem de computadores
Manutenção e montagem de computadoresManutenção e montagem de computadores
Manutenção e montagem de computadoresJoka Luiz
 
Manutenção de computadores
Manutenção de computadoresManutenção de computadores
Manutenção de computadoresAmadeo Santos
 
Artefato PETIC dcomp v3
Artefato PETIC dcomp v3Artefato PETIC dcomp v3
Artefato PETIC dcomp v3Diego Maynard
 
J!CAMP: UMA ABORDAGEM CENTRALIZADA PARA O GERENCIAMENTO VIRTUAL DE MÚLTIPLOS...
J!CAMP: UMA ABORDAGEM CENTRALIZADA PARA O GERENCIAMENTO VIRTUAL DE MÚLTIPLOS...J!CAMP: UMA ABORDAGEM CENTRALIZADA PARA O GERENCIAMENTO VIRTUAL DE MÚLTIPLOS...
J!CAMP: UMA ABORDAGEM CENTRALIZADA PARA O GERENCIAMENTO VIRTUAL DE MÚLTIPLOS...Marcelo Eden
 
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...Paulo Steinhauser
 
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...Paulo Steinhauser
 
Perifericos suprimentos cor_capa_ficha_isbn_20110128
Perifericos suprimentos cor_capa_ficha_isbn_20110128Perifericos suprimentos cor_capa_ficha_isbn_20110128
Perifericos suprimentos cor_capa_ficha_isbn_20110128JoaquinhoJuda
 
Apresentação formação projeto uca
Apresentação formação projeto ucaApresentação formação projeto uca
Apresentação formação projeto ucaMoisés Rodrigues
 
VISUALIZAÇÃO DE MODELOS VTK UTILIZANDO WEBGL:UM ESTUDO EXPERIMENTAL
VISUALIZAÇÃO DE MODELOS VTK UTILIZANDO WEBGL:UM ESTUDO EXPERIMENTALVISUALIZAÇÃO DE MODELOS VTK UTILIZANDO WEBGL:UM ESTUDO EXPERIMENTAL
VISUALIZAÇÃO DE MODELOS VTK UTILIZANDO WEBGL:UM ESTUDO EXPERIMENTALJan Palach
 
Visualizaçãi de Modelos VTK Utilizando WebGL: Um estudo experimental.
Visualizaçãi de Modelos VTK Utilizando WebGL: Um estudo experimental.Visualizaçãi de Modelos VTK Utilizando WebGL: Um estudo experimental.
Visualizaçãi de Modelos VTK Utilizando WebGL: Um estudo experimental.Jan Palach
 
Plano De Marketing Para Empresa De Internet Tg Ii Luiz Alberto Piovesana ...
Plano De Marketing Para Empresa De Internet   Tg Ii   Luiz Alberto Piovesana ...Plano De Marketing Para Empresa De Internet   Tg Ii   Luiz Alberto Piovesana ...
Plano De Marketing Para Empresa De Internet Tg Ii Luiz Alberto Piovesana ...Luiz Piovesana
 
TCC Tecnologia em Sistemas para Internet
TCC Tecnologia em Sistemas para InternetTCC Tecnologia em Sistemas para Internet
TCC Tecnologia em Sistemas para InternetClaudeir Novais
 
SAPO Campus Escolas (keynote para a COIED)
SAPO Campus Escolas (keynote para a COIED)SAPO Campus Escolas (keynote para a COIED)
SAPO Campus Escolas (keynote para a COIED)Carlos Santos
 
A minha participação na conferência myMPeL’2013
A minha participação na conferência myMPeL’2013A minha participação na conferência myMPeL’2013
A minha participação na conferência myMPeL’2013João Pinto
 
Projeto introdução-à-educação-digital-proinfo-60h
Projeto introdução-à-educação-digital-proinfo-60hProjeto introdução-à-educação-digital-proinfo-60h
Projeto introdução-à-educação-digital-proinfo-60hCarminha
 

Similar a Monografia - Titao Yamamoto (20)

Manutenção e montagem de computadores
Manutenção e montagem de computadoresManutenção e montagem de computadores
Manutenção e montagem de computadores
 
Manutenção de computadores
Manutenção de computadoresManutenção de computadores
Manutenção de computadores
 
Montagem e Manutenção de Computadores
Montagem e Manutenção de ComputadoresMontagem e Manutenção de Computadores
Montagem e Manutenção de Computadores
 
Artefato PETIC dcomp v3
Artefato PETIC dcomp v3Artefato PETIC dcomp v3
Artefato PETIC dcomp v3
 
J!CAMP: UMA ABORDAGEM CENTRALIZADA PARA O GERENCIAMENTO VIRTUAL DE MÚLTIPLOS...
J!CAMP: UMA ABORDAGEM CENTRALIZADA PARA O GERENCIAMENTO VIRTUAL DE MÚLTIPLOS...J!CAMP: UMA ABORDAGEM CENTRALIZADA PARA O GERENCIAMENTO VIRTUAL DE MÚLTIPLOS...
J!CAMP: UMA ABORDAGEM CENTRALIZADA PARA O GERENCIAMENTO VIRTUAL DE MÚLTIPLOS...
 
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
 
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
 
Susana alentejano prova tac
Susana alentejano prova tacSusana alentejano prova tac
Susana alentejano prova tac
 
Perifericos suprimentos cor_capa_ficha_isbn_20110128
Perifericos suprimentos cor_capa_ficha_isbn_20110128Perifericos suprimentos cor_capa_ficha_isbn_20110128
Perifericos suprimentos cor_capa_ficha_isbn_20110128
 
Apresentação formação projeto uca
Apresentação formação projeto ucaApresentação formação projeto uca
Apresentação formação projeto uca
 
VISUALIZAÇÃO DE MODELOS VTK UTILIZANDO WEBGL:UM ESTUDO EXPERIMENTAL
VISUALIZAÇÃO DE MODELOS VTK UTILIZANDO WEBGL:UM ESTUDO EXPERIMENTALVISUALIZAÇÃO DE MODELOS VTK UTILIZANDO WEBGL:UM ESTUDO EXPERIMENTAL
VISUALIZAÇÃO DE MODELOS VTK UTILIZANDO WEBGL:UM ESTUDO EXPERIMENTAL
 
Visualizaçãi de Modelos VTK Utilizando WebGL: Um estudo experimental.
Visualizaçãi de Modelos VTK Utilizando WebGL: Um estudo experimental.Visualizaçãi de Modelos VTK Utilizando WebGL: Um estudo experimental.
Visualizaçãi de Modelos VTK Utilizando WebGL: Um estudo experimental.
 
Plano De Marketing Para Empresa De Internet Tg Ii Luiz Alberto Piovesana ...
Plano De Marketing Para Empresa De Internet   Tg Ii   Luiz Alberto Piovesana ...Plano De Marketing Para Empresa De Internet   Tg Ii   Luiz Alberto Piovesana ...
Plano De Marketing Para Empresa De Internet Tg Ii Luiz Alberto Piovesana ...
 
TCC Tecnologia em Sistemas para Internet
TCC Tecnologia em Sistemas para InternetTCC Tecnologia em Sistemas para Internet
TCC Tecnologia em Sistemas para Internet
 
SAPO Campus Escolas (keynote para a COIED)
SAPO Campus Escolas (keynote para a COIED)SAPO Campus Escolas (keynote para a COIED)
SAPO Campus Escolas (keynote para a COIED)
 
A minha participação na conferência myMPeL’2013
A minha participação na conferência myMPeL’2013A minha participação na conferência myMPeL’2013
A minha participação na conferência myMPeL’2013
 
Painel Ava Prof Osvaldo Novais Jr
Painel Ava  Prof Osvaldo Novais JrPainel Ava  Prof Osvaldo Novais Jr
Painel Ava Prof Osvaldo Novais Jr
 
Tecnologia Educacional
Tecnologia EducacionalTecnologia Educacional
Tecnologia Educacional
 
Monografia td (final)
Monografia td (final)Monografia td (final)
Monografia td (final)
 
Projeto introdução-à-educação-digital-proinfo-60h
Projeto introdução-à-educação-digital-proinfo-60hProjeto introdução-à-educação-digital-proinfo-60h
Projeto introdução-à-educação-digital-proinfo-60h
 

Más de Titao Yamamoto

Programas Acadêmicos Microsoft UFPB
Programas Acadêmicos Microsoft UFPBProgramas Acadêmicos Microsoft UFPB
Programas Acadêmicos Microsoft UFPBTitao Yamamoto
 
Como fazer Cabo Crossover e Direto
Como fazer Cabo Crossover e DiretoComo fazer Cabo Crossover e Direto
Como fazer Cabo Crossover e DiretoTitao Yamamoto
 
Programas Acadêmicos Microsoft
Programas Acadêmicos MicrosoftProgramas Acadêmicos Microsoft
Programas Acadêmicos MicrosoftTitao Yamamoto
 
Celula Academica KaizendotNet
Celula Academica KaizendotNetCelula Academica KaizendotNet
Celula Academica KaizendotNetTitao Yamamoto
 

Más de Titao Yamamoto (6)

Programas Acadêmicos Microsoft UFPB
Programas Acadêmicos Microsoft UFPBProgramas Acadêmicos Microsoft UFPB
Programas Acadêmicos Microsoft UFPB
 
Como fazer Cabo Crossover e Direto
Como fazer Cabo Crossover e DiretoComo fazer Cabo Crossover e Direto
Como fazer Cabo Crossover e Direto
 
JQuery
JQueryJQuery
JQuery
 
Programas Acadêmicos Microsoft
Programas Acadêmicos MicrosoftProgramas Acadêmicos Microsoft
Programas Acadêmicos Microsoft
 
Windows phone 7
Windows phone 7Windows phone 7
Windows phone 7
 
Celula Academica KaizendotNet
Celula Academica KaizendotNetCelula Academica KaizendotNet
Celula Academica KaizendotNet
 

Monografia - Titao Yamamoto

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. 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Ê
  • 5. 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.
  • 6. 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.
  • 7. “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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.
  • 27. 27 Figura 1: Marca do projeto Fonte: Próprio Autor / 2010. A marca é tratada de maneira clean e objetiva para que seja visualmente agradável. O nome “Student traz uma fonte arredondada e espessa, para uma fácil 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 abertura na parte superior, para trazer junto à forma, uma abertura 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 representação 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 e a organização das informações tendem as cores e a maneira suave e simples que é tratada na logomarca, podendo ser visto nas figuras a seguir.
  • 28. 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. 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. 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. 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. 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.
  • 33. 33 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 utilizados, a IDE Visual Studio 2010 e a linguagem C# sobre 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 dados. 4.6 ARQUITETURA A arquitetura inicial do Student Link baseou-se na estrutura do código se 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 e Info. Dessa forma, a arquitetura dividida em quatro camadas: UI.Web (camada de apresentação), Business Logic (camada que contém as regras de negócio), Persistence (camada de persistência de dados) e Info (camada de definição de dados).
  • 34. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.