monografia - titao yamamoto

49
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

Upload: titao-yamamoto

Post on 09-Jul-2015

484 views

Category:

Technology


0 download

DESCRIPTION

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.

TRANSCRIPT

Page 1: Monografia - Titao Yamamoto

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

Page 2: Monografia - Titao Yamamoto

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

Page 3: Monografia - Titao Yamamoto

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

Page 4: Monografia - Titao Yamamoto

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Ê

Page 5: Monografia - Titao Yamamoto

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.

Page 6: Monografia - Titao Yamamoto

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.

Page 7: Monografia - Titao Yamamoto

“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

Page 8: Monografia - Titao Yamamoto

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.

Page 9: Monografia - Titao Yamamoto

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.

Page 10: Monografia - Titao Yamamoto

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

Page 11: Monografia - Titao Yamamoto

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

Page 12: Monografia - Titao Yamamoto

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

Page 13: Monografia - Titao Yamamoto

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

Page 14: Monografia - Titao Yamamoto

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

Page 15: Monografia - Titao Yamamoto

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.

Page 16: Monografia - Titao Yamamoto

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.

Page 17: Monografia - Titao Yamamoto

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.

Page 18: Monografia - Titao Yamamoto

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.

Page 19: Monografia - Titao Yamamoto

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).

Page 20: Monografia - Titao Yamamoto

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.

Page 21: Monografia - Titao Yamamoto

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).

Page 22: Monografia - Titao Yamamoto

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:

Page 23: Monografia - Titao Yamamoto

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

Page 24: Monografia - Titao Yamamoto

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.

Page 25: Monografia - Titao Yamamoto

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.

Page 26: Monografia - Titao Yamamoto

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.

Page 27: Monografia - Titao Yamamoto

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

A marca é tratada de maneira

agradável. O nome “Student

leitura e que ganhe um destaque maior em relação ao segundo nome, que por sua vez,

tem a suavidade de curvas, dando destaque maior a letra “L” para simbolizar e lembrar a

figura do “infinito”, com uma a

idéia de ligação. Fazendo alusão à essência do projeto, como uma base de dados dos

potências dos alunos da instituição, tendo os quadrados representando os estudantes e a

simetria do mesmo na repres

para as empresas, em busca de novos profissionais capacitados, comprometidos e

atualizados.

A frase representa a união que haverá no sistema, entre empresas, universidade e

os alunos.

No esquema de cores são utilizados três tons de azul e o cinza escuro, remetendo

assim a seriedade do projeto e agregar a idéia de agradável e de tranqüilidade.

4.2.2 Visual do Site

O esquema de cores

maneira suave e simples que é tratada na logomarca, podendo ser visto nas figuras a

seguir.

A marca é tratada de maneira clean e objetiva para que seja visualmente

Student” traz uma fonte arredondada e espessa, para uma fácil

leitura e que ganhe um destaque maior em relação ao segundo nome, que por sua vez,

tem a suavidade de curvas, dando destaque maior a letra “L” para simbolizar e lembrar a

figura do “infinito”, com uma abertura na parte superior, para trazer junto à forma, uma

idéia de ligação. Fazendo alusão à essência do projeto, como uma base de dados dos

potências dos alunos da instituição, tendo os quadrados representando os estudantes e a

simetria do mesmo na representação da organização, com infinidades de possibilidades

para as empresas, em busca de novos profissionais capacitados, comprometidos e

A frase representa a união que haverá no sistema, entre empresas, universidade e

cores são utilizados três tons de azul e o cinza escuro, remetendo

assim a seriedade do projeto e agregar a idéia de agradável e de tranqüilidade.

O esquema de cores e a organização das informações tendem as cores e a

que é tratada na logomarca, podendo ser visto nas figuras a

27

e objetiva para que seja visualmente

traz uma fonte arredondada e espessa, para uma fácil

leitura e que ganhe um destaque maior em relação ao segundo nome, que por sua vez,

tem a suavidade de curvas, dando destaque maior a letra “L” para simbolizar e lembrar a

bertura na parte superior, para trazer junto à forma, uma

idéia de ligação. Fazendo alusão à essência do projeto, como uma base de dados dos

potências dos alunos da instituição, tendo os quadrados representando os estudantes e a

entação da organização, com infinidades de possibilidades

para as empresas, em busca de novos profissionais capacitados, comprometidos e

A frase representa a união que haverá no sistema, entre empresas, universidade e

cores são utilizados três tons de azul e o cinza escuro, remetendo

assim a seriedade do projeto e agregar a idéia de agradável e de tranqüilidade.

a organização das informações tendem as cores e a

que é tratada na logomarca, podendo ser visto nas figuras a

Page 28: Monografia - Titao Yamamoto

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.

Page 29: Monografia - Titao Yamamoto

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.

Page 30: Monografia - Titao Yamamoto

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.

Page 31: Monografia - Titao Yamamoto

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.

Page 32: Monografia - Titao Yamamoto

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.

Page 33: Monografia - Titao Yamamoto

Figura 7: Parte do código gerado para acesso aos dados da universidade pelo NDeveloper.Fonte: Próprio Autor / 2010.

4.5.4 Tecnologias e componentes

Para a codificação foram

sobre a plataforma Microsoft

gráfica, foram utilizados os componentes Web Forms do próprio dotNET. O banco de

dados escolhido para a aplicação foi o SQL Server 2008 e a ferramenta utilizada para

gerenciamento do mesmo foi o SQL Server Management Studio. O conjunto de

bibliotecas ADO.NET 2.0 (PROSISE, 2002) foi adotado para acesso e manipulação dos

dados.

4.6 ARQUITETURA

A arquitetura inicial do

proveniente do modelo (

nDeveloper Studio, dando origem a três camadas:

Dessa forma, a arquitetura dividida em quatro camadas:

apresentação), Business Logic

(camada de persistência de dados)

: Parte do código gerado para acesso aos dados da universidade pelo NDeveloper.

Tecnologias e componentes

codificação foram utilizados, a IDE Visual Studio 2010 e a

a plataforma Microsoft dotNET Framework. Para a construção da interface

gráfica, foram utilizados os componentes Web Forms do próprio dotNET. O banco de

dados escolhido para a aplicação foi o SQL Server 2008 e a ferramenta utilizada para

gerenciamento do mesmo foi o SQL Server Management Studio. O conjunto de

bibliotecas ADO.NET 2.0 (PROSISE, 2002) foi adotado para acesso e manipulação dos

A arquitetura inicial do Student Link baseou-se na estrutura do código

proveniente do modelo (template) padrão de geração de código da ferramenta

nDeveloper Studio, dando origem a três camadas: Business Logic, Persistence

Dessa forma, a arquitetura dividida em quatro camadas: UI.Web

Logic (camada que contém as regras de negócio),

(camada de persistência de dados) e Info (camada de definição de dados).

33

: Parte do código gerado para acesso aos dados da universidade pelo NDeveloper.

e a linguagem C#

Framework. Para a construção da interface

gráfica, foram utilizados os componentes Web Forms do próprio dotNET. O banco de

dados escolhido para a aplicação foi o SQL Server 2008 e a ferramenta utilizada para

gerenciamento do mesmo foi o SQL Server Management Studio. O conjunto de

bibliotecas ADO.NET 2.0 (PROSISE, 2002) foi adotado para acesso e manipulação dos

se na estrutura do código

) padrão de geração de código da ferramenta

Persistence e Info.

UI.Web (camada de

(camada que contém as regras de negócio), Persistence

(camada de definição de dados).

Page 34: Monografia - Titao Yamamoto

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.

Page 35: Monografia - Titao Yamamoto

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

Page 36: Monografia - Titao Yamamoto

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.

Page 37: Monografia - Titao Yamamoto

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.

Page 38: Monografia - Titao Yamamoto

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;

Page 39: Monografia - Titao Yamamoto

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.

Page 40: Monografia - Titao Yamamoto

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.

Page 41: Monografia - Titao Yamamoto

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.

Page 42: Monografia - Titao Yamamoto

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.

Page 43: Monografia - Titao Yamamoto

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.

Page 44: Monografia - Titao Yamamoto

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.

Page 45: Monografia - Titao Yamamoto

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.

Page 46: Monografia - Titao Yamamoto

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.

Page 47: Monografia - Titao Yamamoto

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.

Page 48: Monografia - Titao Yamamoto

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.

Page 49: Monografia - Titao Yamamoto

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.