Sunteți pe pagina 1din 175

Ficha Catalogrfica elaborada pela Bibliotecria

Christiane Maria Montenegro S Lins CRB/3 - 952

E56a
ENCONTRO UNIFICADO DE COMPUTAO EM
PARNABA. (5: 2012: Parnaba, PI).
Anais do V ENUCOMP 2012, Parnaba, PI, 12 a 14 de
novembro de 2012: [recurso eletrnico]/ Organizao [de]
Thiago C. de Sousa e Rodrigo Augusto R. S. Baluz. Parnaba: FUESPI, 2012.
194 p.: Il.
ISBN: 978-85-61946-80-7
1. Cincia da Computao. 2. Congressos. I. Sousa,
Thiago C. de (org.) II. Baluz, Rodrigo Augusto R. S. (org.)
III. Ttulo.
CDD 001.642

ii

PREFCIO
Em 2008, as instituies parnaibanas que atuam no ensino superior, tcnico e profissional de
informtica sentiram a necessidade de criar um evento de computao maior e mais completo para a
cidade. Assim, surgiu o projeto ENUCOMP (Encontro Unificado de Computao em Parnaba),
criado numa parceria do CEEP, FAP, IFPI e UESPI, cujas propostas foram pautadas na contribuio
para a troca de experincias, buscando a unio dos acadmicos; no fortalecimento da parceria no
desenvolvimento da educao e da informtica; e no incentivo produo de trabalhos cientficos
ligados tecnologia. Mantendo estes mesmos ideais, o evento vem alcanando um crescimento
consistente ano aps ano e ganhando envergadura. Em sua quinta edio, com cerca de 300
participantes vindos de diversos Estados brasileiros, o ENUCOMP j uma referncia regional no
Norte-Nordeste do Brasil na rea de computao.
A edio deste ano, que ocorre nos dias 12, 13 e 14 de novembro, inclui cinco palestras, com
temas sobre inovao, acessibilidade, mtodos geis, computao ubqua e educao distncia,
bem como seis mini-cursos com assuntos relativos criao jogos 2D e para Facebook, simulao e
segurana de redes, desenvolvimento web e sistemas embarcados. Alm disso, a programao do
ENUCOMP 2012 tambm fortaleceu a sua vertente cientfica ao montar um excelente Comit de
Programa, composto por quase quarenta pesquisadores e professores de renomadas universidades e
empresas de todas as cinco regies brasileiras, para realizar a arbitragem de artigos por pares. Como
consequncia, foram recebidos trabalhos provenientes de 1/3 dos Estados da Federao, sendo
selecionados apenas nove para apresentao no evento, o que significou um taxa de aceitao de
26%, nvel dos melhores congressos nacionais da rea. Os artigos versam sobre trs grandes reas da
computao: Inteligncia Artificial, com trabalhos sobre agentes inteligentes, testes de agentes e
algoritmos genticos para estimao de sistemas de potncia; Sistemas Distribudos, com temas
relacionados transmisso de imagens em redes sem fio, sistemas colaborativos para gerenciamento
de download; e Viso Computacional, com assuntos referentes aplicao de realidade aumentada,
anlise de imagens via sries temporais e converso de dados em RDF. Assim, este volume dos
Anais Eletrnicos do ENUCOMP 2012 composto por 12 captulos: 6 relacionados aos mini-cursos
trabalhados durante o encontro, e outros 6 formados pelos artigos cientficos selecionados pelo
Comit de Programa para apresentao mas no premiados.
Por ltimo, gostaramos de agradecer enormemente aos palestrantes, aos ministrantes de minicursos e aos membros da equipe de apoio e do comit de programa, por acreditarem em nosso
evento. O trabalho voluntrio realizado por vocs de foi fundamental importncia para o sucesso do
ENUCOMP. Desejamos que o evento possa trazer frutos para o trabalho de todos.
At a prxima!

Thiago Carvalho de Sousa


Coordenao Geral
ENUCOMP 2012

iii

COMISSO ORGANIZADORA
Coordenao Geral:
Athnio de S. Silveira, Instituto Federal do Piau (IFPI)
Francisco das Chagas C. do Nascimento, Centro Estadual de Educao Profissional (CEEP)
Rodrigo Augusto R. S. Baluz, Faculdade Piauiense (FAP)
Thiago C. de Sousa, Universidade Estadual do Piau (UESPI)
Equipe de Apoio:
Antnio S. de Sousa, Instituto Federal do Piau (IFPI)
tila R. Lopes, Universidade Estadual do Piau (UESPI)
Francisco das Chagas Rocha, Universidade Estadual do Piau (UESPI)
Jos Flvio G. Barros, Faculdade Piauiense (FAP)
Mayllon V. da Silva, Faculdade Piauiense (FAP)
Ncio de L. Veras, Instituto Federal do Cear (IFCE)
Rgis P. Magalhes, Instituto Federal do Piau (IFPI)
Comit de Programa:
Andr Fujita, Universidade de So Paulo (USP)
Aryldo Russo Jnior, Grupo AeS
Atila Lopes, Universidade Estadual do Piau (UESPI)
Carlos Giovanni Nunes, Universidade Estadual do Piau (UESPI)
Celina Takemura, Embrapa
Christian Paz-Trillo, Centro Universitrio SENAC-SP
Claudia Melo, Thought Works
David Pereira, Banco Central do Brasil (BCB)
Eduardo Guerra, Universidade Federal do Par (UFPA)
Eduardo Ueda, Petrobras
Esdras Bispo Jnior, Universidade Federal de Gois (UFG)
Eyder Rios, Universidade Estadual do Piau (UESPI)
Fbio Kepler, Universidade Federal do Pampa (UNIPAMPA)
Fbio Siqueira, Programa de Educao Continuada da Escola Politcnica da USP (PECE)
Flvio Coutinho, Universidade de So Paulo (USP)
Harilton Arajo, Centro de Ensino Unificado de Teresina (CEUT)
Jos Flvio Barros, Faculdade Piauiense (FAP)
Francisco das Chagas Rocha, Universidade Estadual do Piau (UESPI)
Haniel Barbosa, Universidade Federal do Rio Grande do Norte (UFRN)
Jaclason Machado, Universidade Federal do Piau (UFPI)
Jesus Mena, Universidade Federal do ABC (UFABC)
Jos Bringel Filho, Universidade Estadual do Piau (UESPI)
Karina Valdivia, Universidade de So Paulo (USP)
Mrcio Monteiro, IBM do Brasil
Marcos Couto, Oracle do Brasil
Mayllon Silva, Faculdade Piauiense (FAP)
iv

Comit de Programa (cont.):


Mehran Misaghi, Sociedade Educacional de Santa Catarina (SOCIESC)
Ncio Lima, Instituto Federal do Cear (IFCE)
Pedro Alcntara Neto, Universidade Federal do Piau (UFPI)
Raphael Cob, Instituto Federal do Rio Grande do Norte (IFRN)
Rgis Magalhes, Instituto Federal do Piau (IFPI)
Raimundo Barreto, Universidade Federal do Amazonas (UFAM)
Ricardo Lira, Universidade Estadual do Piau (UESPI)
Ricardo Sekeff, Centro Internacional de Pesquisas A.C. Camargo
Rodrigo Baluz, Faculdade Piauiense (FAP)
Rodrigo Veras, Universidade Federal do Piau (UFPI)
Srgio Barros, Universidade Estadual do Piau (UESPI)
Thiago Carvalho, Universidade Estadual do Piau (UESPI)
Vladimir Rocha, Infomobile

SUMRIO

1. Introduo ao Desenvolvimento de Jogos para Facebook......................... 1


2. Criao de jogos 2D com tcnicas 3D utilizando Python/C...................... 13
3. Fundamentos em Segurana e Hardening em Servidores Linux
baseado na Norma ISO 27002..................................................................... 27
4. Desenvolvimento Web com Framework Primefaces................................. 67
5. Introduo simulao de redes de computadores com o NS-2
(Network Simulator) - Teoria e Prtica.......................................................... 78
6. Desenvolvimento de Aplicaes para Plataforma Google Android......... 103
7. Desenvolvimento de um Museu Virtual 3D Utilizando Agentes
Inteligentes.................................................................................................. 130
8. Transmission of Images Captured in Real Time through Wireless
Network using the Python Language: A possible way of Wireless
Transmission............................................................................................... 140
9. Project OurDown: Collaborative System for Download Management in
Overlay....................................................................................................... 144
10. SenseRDF: Uma Ferramenta para Converso de Dados em RDF
seguindo os Princpios Linked Data........................................................... 152
11. Utilizao de Realidade Aumentada e Dispositivos Mveis para
Auxiliar na Manuteno de Instrumentos de Medio de Barragens......... 159
12. QoSTVApp:Uma Aplicao Semntica para o SBTVD........................ 165

vi

ANAIS ELETRNICOS V ENUCOMP

Introduo ao Desenvolvimento de Jogos para


Facebook
Erick Baptista Passos
Resumo
Nesse captulo, mostramos um pouco da histria dos jogos eletrnicos, conceitos de game
design, e um tutorial inicial sobre a criao de jogos para Facebook usando ferramentas
simples, tais como HTML dinmico e Javascript.
1.1 - Introduo
Jogos eletrnicos so uma das reas de trabalho mais interessantes da atualidade. Os motivos so
diversos, desde a atrao que as pessoas tem pelo produto desse trabalho, at o fato de ser uma
produo com base em criatividade, competncia, sendo uma mistura de arte e cincia.
Nesse captulo, apresentaremos um breve histrico dos jogos eletrnicos, faremos uma
apresentao sobre game design, o principal conceito por trs de jogos, sejam eles eletrnicos ou
no, e discutiremos sobre algumas ferramentas para o desenvolvimento de jogos simples para a
rede social Facebook. Nas sees principais do texto, sero mostrados todos os passos para a
criao de um jogo web simples para Facebook.
1.2 - Histrico
Os primeiros jogos eletrnicos de que se tem notcia, Tennis for Two e Spacewar, foram
desenvolvidos como um experimento pessoal, e como uma demonstrao do poder grfico de um
novo modelo de computador do MIT, respectivamente. Na Figura 1.1 podemos ver o jogo Tennis
for Two, que consiste de um osciloscpio onde voc move a onda de um lado para o outro como
se fosse uma bola de tenis.

ANAIS ELETRNICOS V ENUCOMP

Figura 1.1 - O jogo Tennis for Two


Comercialmente, a histria dos jogos eletrnicos se inicia com o advento das mquinas arcades,
uma evoluo das mquinas mecnicas de pinball, adotando botes, circuitos eletrnicos e um
monitor de TV para exibir as imagens. Os arcades obtiveram muito sucesso, e vrias empresas
proeminentes surgiram nessa poca, entre elas a Atari. A Figura 1.2 mostra o jogo Atari Night
Driver.

Figura 1.2 - Atari Night Driver, um jogo arcade que tambm fez bastante sucesso nos consoles.
Os consoles surgiram aps o sucesso dos arcades, e visavam expandir o mercado para o ambiente
domstico, no que sucederam. Os principais exemplos dessa primeira gerao so o Odissey e o
2

ANAIS ELETRNICOS V ENUCOMP

Atari, mostrado na Figura 1.3, je um de seus maiores sucessos, o jogo Space Invaders, tambm
lanado originalmente como um arcade, mostrado na Figura 1.4.

Figura 1.3 - O Atari VGS 2600, de 1978, o primeiro console de grande sucesso.

Figura 1.4 - O jogo Space Invaders


O aquecimento do mercado de jogos levou a uma expanso muito rpida das empresas de
desenvolvimento, o que gerou uma grave crise de contedo entre 1983 e 1984, que culminou
com a falncia e dissolvio da Atari original. Muitos jogos de baixa qualidade, e cpias baratas
de produtos de sucesso foram a principal causa dessa crise. Muitos previram o fim dos jogos
eletrnicos, mas o advento dos consoles NES, da Nintendo (Figura 1.5), e Master System da
Sega, em 1985 e 1986 respectivamente, mostraram que o mercado estava apenas no seu incio.

ANAIS ELETRNICOS V ENUCOMP

Figura 1.5 - NES, Nintendo Entertainment System


O lanamento das sries Super Mario (Figura 1.6) e Zelda para NES, mostraram o quanto o uso
de personagens carismticos pode alavancar as vendas desse tipo de produto. Desde essa segunda
gerao, todos os consoles e produtoras buscam a criao de sries e personagens marcantes.

Figura 1.6 - O jogo Super Mario 1, para NES

ANAIS ELETRNICOS V ENUCOMP

No final dos anos 1980, o mercado de jogos eletrnicos para computador se iniciou atravs de
empresas de garagem, principalmente na Inglaterra. Em meados da dcada de 1990, comearam
a surgir jogos com o uso de ponto de vista de primeira pessoa, onde a imagem aparenta ser a
viso do personagem. Exemplos desses jogos so o Wolfenstein 3D, Doom e Duke Nukem.
Entretanto, o advento dos jogos em perspectiva 3D real (trs dimenses) s ocorreu realmente
com o lanamento do jogo Quake (Figura 1.7), de 1996. Desde ento, muitos jogos de sucesso
usam essa tcnica de visualizao.

Figura 1.7 - O jogo Quake, desenvolvido em 1996 pela ID Software


1.3 - Game Design
Antes de se comear a desenvolver um jogo, importante se trabalhar os conceitos que iro
compor essa experincia de entretenimento. Esse o assunto abordado numa rea do
conhecimento milenar chamada de game design, ou projeto de jogos. Game design trata de como
se projetam as mecnicas de jogos, ou seja, as regras que definem como o jogo funciona, seja
ele eletrnico, de tabuleiro, ou um esporte.
Todos ns jogamos, mesmo que no concientemente, j que jogos basicamente exploram
instintos que esto presentes nos nossos crebros. Um game designer precisa conhecer um pouco
desses instintos para poder criar experincias interessantes para o jogador.
Os principais instintos que so explorados em game design so os seguintes:
5

ANAIS ELETRNICOS V ENUCOMP

Explorao - o ser humano curioso por natureza, e em jogos isso pode ser explorado
atravs da criao de ambientes interessantes, o que faz o jogador ter vontade de
continuar jogando para descobrir as novas reas, paisagens e personagens. Essa
caracterstica mais marcante nas mulheres, mas muitos homens tambm gostam de
explorao;
Aprendizado - ns somos recompensados quimicamente quando aprendemos algo novo,
quando desenvolvemos uma nova habilidade que antes no tinhamos. Esse instinto
responsvel por grande parte do desenvolvimento tcnico da humanidade. Em jogos,
importante estimular o jogador a aprender novas aes que lhe permitam vencer os
desafios;
Desafios - vencer desafios em si tambm uma atividade recompensadora, especialmente
para os homens, que so normalmente mais competitivos.
Mecnicas de jogo
Mecnicas de jogo so os elementos mais bsicos que definem a atividade. Ao se projetar um
jogo, so as primeiras decises a serem tomadas. Para entender o que so as mecnicas, podemos
fazer um exerccio simples: remova tudo o que puder de um jogo que voc conhece, como
grficos, msica, estria, personagens. Substitua tudo por elementos visuais simples, como
crculos, caixas, etc. O que sobram so as mecnicas, ou seja, a coordenao entre os controles, o
visual e o tempo (para atingir alvos, pular em plataformas, evitar obstculos, tudo no momento
exato).
Em alguns jogos, as mecnicas podem envolver udio, como em jogos musicais de ritmo, mas
mesmo nesses casos, podemos substituir as msicas em questo por batidas ritmadas,
coordeanadas com o visual da tela, onde o jogador deve apertar a tecla de cor correspondente no
momento exato para ganhar os pontos.
Na Figura 1.8 temos uma viso simplificada do que poderia ser o prottipo de um jogo de
plataforma usando apenas elementos visuais simples. Um prottipo desses permite que se testem
as mecnicas rapidamente, antes de se comprometer com o design visual. Se o jogo for divertido
apenas com caixas simples, ser tambm divertido com visual apurado. Entretanto, se o jogo no
for divertido dessa forma, dificilmente ser aps a adio da arte.

ANAIS ELETRNICOS V ENUCOMP

Figura 1.8 - Um prottipo de jogo de plataforma usando apenas elementos visuais simples.
Um outro conceito importante de game design o loop de desafio, que ajuda a se projetar como
se apresentam as regras para o jogador. Todo jogo uma repetio da seguinte sequncia:
apresenta-se um desafio ao jogador; o jogador realiza uma ao; atravs das regras, se verifica se
o jogador venceu o desafio; caso afirmativo, o jogador recompensado (usando os instinto
citados anteriormente), caso negativo, o jogador punido; volta-se ao passo de apresentar um
desafio. A Figura 1.9 mostra um desenho esquemtico desse conceito.

Figura 1.8 - O loop de desafio, um conceito de game design.


1.4 - O Jogo Exemplo
7

ANAIS ELETRNICOS V ENUCOMP

Agora iremos apresentar o jogo que ser usado como exemplo. Ser um jogo simples, para um
nico jogador, onde o seu desafio atravessar uma sala at uma porta do lado oposto ao que ele
inicia. Como o jogo em turnos, a sala composta por um conjunto de casas (clulas quadradas)
em um tabuleiro, e o jogador deve usar o mnimo de movimentos possveis para chegar ao
destino final.
O problema que a sala est infestada de monstros que o jogador no pode ver. Se o jogador
parar numa casa que possui um monstro, ele perde a partida. Felizmente, ele pode perceber a
presena de um monstro em uma casa adjacente, quando isso ocorrer. A estratgia ento recuar
e buscar outro caminho, ou ento arriscar para tentar no perder movimentos. A Figura 1.9
mostra uma imagem do prottipo desenvolvido em HTML dinmico.

Figura 1.9 - Prottipo do jogo. A casa verde a sada, a casa amarela onde o jogador est, e as
casas pretas mostram onde ele j passou. Ao chegar numa casa prxima a um monstro, um aviso
emitido.

1.5 - Implementao de Mecnicas


8

ANAIS ELETRNICOS V ENUCOMP

O prottipo do jogo foi todo criado em HTML 4 dinmico, usando a linguagem Javascript, sem
necessidade de uso de tecnologias de servidor, como PhP, Ruby ou Java. Na Figura 1.10
podemos ver o cdigo base HTML que carrega a pgina do jogo. Observe que apenas fazemos
carga da biblioteca jQuery, para facilitar o trabalho em HTML dinmico, e dos arquivos
Javascript criados especialmente para o jogo.

Figura 1.10 - Arquivo HTML bsico do jogo. O elemento DIV chamado container servir
como tabuleiro, e seu contedo ser criado dinamicamente com Javascript.
A criao das casas do tabuleiro feita atravs da insero de elementos DIV diretamente no
HTML atravs de Javascript. Cada uma das 100 casas (tabuleiro 10x10) representada por uma
DIV de fundo cinza, a qual associada uma funo ligada ao evento clique. A Figura 1.11
mostra o trecho de cdigo Javascript que cria as DIVs para representar as casas do tabuleiro.

Figura 1.11 - Trecho de cdigo Javascript que cria as casas do tabuleiro. Cada casa uma DIV,
que posicionada proceduralmente, e tem uma funo associada ao evento clique.
A funo associada ao evento clique responsvel pela lgica do jogo. Os seguintes passos so
verificados sempre que o jogador clica em uma casa do tabuleiro:
9

ANAIS ELETRNICOS V ENUCOMP

O jogador pode se mover para essa casa? A funo s continua em caso afirmativo;
Move o jogador para a nova casa e conta o movimento;
A nova casa contm um monstro? Caso afirmativo, o jogador perde a partida;
A nova casa o destino final? Caso afirmativo, o jogador vence a partida;
Existe um monstro em casa adjacente? Caso afirmativo, emitir alerta.

Para implementar essa lgica, o tabuleiro representado por uma matriz 10x10 de nmeros
inteiros, onde o valor zero (0) representa uma casa livre, e o valor um (1) representa a presena
de um monstro. As funes de checagem de derrota e presena de monstro usam essa matriz,
enquanto a funo de checagem de movimentao possvel apenas verifica se a casa clicada
adjacente atual. Na Figura 1.12 podemos ver o cdigo da funo que checa a validade do
movimento.

Figura 1.12 - Funo que checa se a casa clicada adjacente quela ocupada pelo personagem, o
que indica um movimento vlido.
O restante do cdigo fonte para as mecnicas est includo no DVD de anais do evento, num
arquivo chamado jogo.js. O arquivo zipado includo no DVD contm esse e os demais
arquivos que fazem parte do jogo desenvolvido.
1.6 - Integrao com o Facebook
Ao se criar um jogo para Facebook, ao contrrio do que muitos imaginam, no se est criando
um aplicativo web que ir rodar nos servidores dessa rede social. O que o Facebook permite a
autenticao, e o acesso remoto (via servios web) a vrios dados do perfil dos jogadores, seu
grafo de amigos, entre outras informaes.
Esses servios remotos podem ser acessados diretamente atravs de requisies em protocolo
HTTP, mas mais produtivo se utilizar uma das SDKs disponibilizadas, seja ela oficial, ou
mantida por uma comunidade. Existem SDKs para as linguagens mais populares, tais como PhP,
Objective C (iOS), Android/Java e Javascript, entre outras. Para isso, basta que voc registre a
sua aplicao no endereo http://developers.facebook.com/ e baixe uma das SDKs oficiais para
10

ANAIS ELETRNICOS V ENUCOMP

iniciar

programao.

Para o nosso exemplo, usaremos a SDK oficial Javascript para fazer a integrao diretamente do
browser. Iremos apenas fazer a autenticao/autorizao do jogador via Facebook, para, em caso
de vitria numa partida do jogo, publicar uma mensagem no mural do jogador. O arquivo
facebook-utils.js inclui todo o cdigo de acesso rede social, e bastante simples, sendo
baseado no exemplo incial de autenticao da documentao oficial.
A funo de inicializao contida no arquivo verifica se o jogador est logado no Facebook, e se
j autorizou o uso do aplicativo. Caso contrrio, o cdigo abre uma pequena janela para que o
jogador possa fazer isso. A funo mais interessante, mostrada na Figura 1.13, usa a API de
grafos do Facebook para postar a mensagem de vitria no mural do jogador.

Figura 1.13 - Funo que publica uma mensagem no mural do usurio logado no Facebook.
1.7 - Concluso e Outras Idias
Nesse captulo, mostramos alguns conceitos bsicos sobre o projeto de jogos, e um exemplo
simples, feito como um prottipo em HTML4 dinmico, de um jogo com elementos de rede
social. A tendncia que tem-se observado o uso cada vez mais acentuado dessas tecnologias
abertas que permitem a criao de jogos para diversos dispositivos diferentes (PC, Android, iOS,
Mac, Linux), especialmente com o novo padro HTML5.
Nesse exemplo preferimos utilizar HTML4 por ser uma tecnologia que funciona em browsers
antigos, como o IE 8 e inferior. Uma atualizao interessante seria desenvolver os grficos do
jogo para uso da tag CANVAS de HTML5, permitindo um melhor uso de animaes e efeitos.
Para tanto, recomenda-se o uso de alguma biblioteca que facilite o trabalho, tal como a CreateJS.
Tambm possvel se utilizar animaes e efeitos interessantes com HTML4. No jogo Cangao,
da Serto Games, utilizamos apenas HTML4 com a biblioteca Spritely, com resultados bastante
interessantes.
11

ANAIS ELETRNICOS V ENUCOMP

Outro aspecto que recomendamos explorar uma maior imerso nas caractersticas sociais dos
jogos, tal como o uso de desafio multiplayer, ou pelo menos contra um nico amigo, como
explorado nos jogos Song Pop, e Cangao Wargame.
Referncias
Cook, Daniel (2012). What are game mechanics? http://www.lostgarden.com/2006/10/what-aregame-mechanics.html. Acessado em 09/11/2012.
CreateJS (2012). A suite of Javascript libraries and tools for building rich, interactive
experiences with HTML5. http://www.createjs.com/#!/CreateJS. Acessado em 09/11/2012.
Facebook Inc. (2012). Facebook Developers Portal. http://developers.facebook.com. Acessado
em 07/11/2012.
Serto Games (2012). Stio oficial do Cangao Wargame. http://cangaco.com. acessado em
09/11/2012.
W3Schools (2012). Introduo ao padro HTML5.
http://www.w3schools.com/html/html5_intro.asp. Acessado em 09/11/2012.

12

ANAIS ELETRNICOS V ENUCOMP

Criao de jogos 2D com tcnicas 3D utilizando


Python/C
Leinylson Fontinele Pereira

Abstract
The game in our context is the electronic game, a simulation and interactive visual displays on a
screen. The interaction is such that the player must have some specific goal or how to go out
somewhere, destroy something, solve a problem, etc. The game developer should be aware of all
possible situations that will be experienced by the player, the knowledge and application of
specific techniques to create an immersive environment and free of errors typical of computer
graphics, as well as all processes that involve the creation of a game / animation, for use by
companies in disseminating their products through the adoption of "gamification" or for
personal entertainment.
Resumo
O jogo no nosso contexto o jogo eletrnico, uma simulao visual e interativa exibida numa
tela. A interao tal que o jogador deve ter algum objetivo especfico como ir ou sair para
algum lugar, destruir algo, resolver um problema, etc. O desenvolvedor de jogos deve estar
ciente de todas as situaes possveis que sero sentidas pelo jogador, o conhecimento e
aplicao de tcnicas especficas para criar um ambiente imersivo e livre de erros tpicos da
computao grfica, bem como todos os processos que envolvem a criao de um
jogo/animao, seja para uso de empresas na difuso de seus produtos por meio da adoo de
gamificao ou ainda para entretenimento pessoal.

2.1. Do que feito um jogo?

Um jogo nos d um controle sobre um personagem ou um objeto virtual, de modo que possamos ter um
controle e uma imerso no ambiente virtual que se aproxime do nosso controle e imerso no ambiente
real s que com regras e motivaes diferentes.

13

ANAIS ELETRNICOS V ENUCOMP

Figura 2.1 Componentes da criao de um jogo

2.2. O Jogador
O Jogador um participante do jogo. Um jogador pode ser uma pessoa real ou um jogador controlado
pelo prprio jogo. Neste artigo, estamos nos referindo a um jogador real, onde a interao do jogo com
o jogador feito com dispositivos de entrada e sada do jogo, geralmente a tela e um controle em que
na maioria das vezes, o jogador controla o personagem central do jogo.

2.3. Personagem

O personagem de um jogo de videogame personagem fictcio para que o jogador controle. Nos
primeiros jogos o personagem era apenas uma figura sem expresso, dotada de alguma caracterstica
especial (andar, pular) e no possuam uma histria ou motivao. O primeiro personagem de
videogame foi o Mario (ver figura 2.2), criado por Shigeru Miyamoto para a Nintendo. Com o tempo, os
personagens de videogame foram incorporados cultura pop. Com Mrio surgiu o conceito de mascote
do jogo. Esse tipo de personagem carismtico agrega um grande valor por sua importncia publicitria
graas a sua identificao com o pblico. Muitas ideias vm dos sonhos, surgem de pequenos conceitos
expandidos em Brainstorm. Grandes ideias poder parecer ridculas no comeo.

Figura 2.2 A criao do Mrio

14

ANAIS ELETRNICOS V ENUCOMP

2.4. Menus

Os menus so interfaces de texto e/ou imagens onde o jogador deve fazer escolhas e ajustes. Antes de o
jogo comear, os menus servem para fazer ajuste de preferenciais do jogo, escolha do tipo de jogo,
desempenho do hardware, etc. Dentro do jogo eles servem para fazer escolhas e ajustes mais
complexos. Nem todo jogo precisa de menus dentro do jogo, mas certamente vai precisar de um menu
antes do jogo comear .

2.5. HUD
Sigla para Head Up Display. um mtodo de representao visual de informaes importantes para o
jogador. So como menus no interativos. Em geral eles exibem informaes como munio, life, arma
selecionada, pontuao, dinheiro ou itens. O HUD (ver figura 2.3) desenhado por ltimo na tela, de
modo que ele fique sempre visvel para o jogador. Ele no deve se mover muito ou conter palavras para
que no distraia o jogador e sempre que possvel ser iconogrfico, ou seja, usando imagens que
representem a informao (cones).

Figura 2.3 Exemplo de HUD

2.6. Som e Msica

Embora no sejam fundamentais no jogo, os sons existem nos jogos desde o primeiro jogo. Os sons
ajudam a caracterizar certas aes, aumentar o nvel de imerso do jogador e deixa-lo mais concentrado
no jogo. Os sons podem ser construdos por sonoplastia. Deve-se ter em mente que diferentes sons
provocam diferentes efeitos sobre o sistema sensorial do jogador. Os sons ligados a uma ao ou
personagem no precisam ser os mesmos sons ligados a estes no mundo real. Pose-se usar sons
diversos a fim de obter efeitos cmicos, criar tenses, fora ou simplesmente obter sensaes
agradveis.
A msica serve para se criar uma base para as imagens e os outros sons. Com a construo da
msica certa, pode-se criar ambientes agradveis, tensos, pode-se deixar o jogador mais nervoso com
uma msica mais rpida e pode-se at usar o recurso do silncio para criar um clima de suspense.
sempre bom ter algum repertrio de msicas no jogo, e ter msicas de durao razovel, caso contrrio,

15

ANAIS ELETRNICOS V ENUCOMP


as msicas podem ficar chatas e repetitivas. As msicas de jogos tambm criam uma lembrana especial
do jogo nos jogadores e cria um sensao agradvel ao se jogar.

2.6. Fsica

Um jogo uma simulao e na maioria das vezes, uma representao do mundo em que vivemos. Essa
representao, seja por limitaes de software e hardware ou por escolha esttica, no contm todos os
aspectos do mundo real. Porm, um aspecto que quase sempre est presente o fsico.
Esse aspecto se manifesta principalmente na deteco de coliso. Se o objeto A depois que ele
se mover colide em algo ento faz alguma coisa. Essa alguma coisa pode variar de jogo para jogo. Pode
ser que o objeto A seja um personagem e o algo seja uma parede. Ento o "faz alguma coisa pode ser
nada, ele bate na parede, portanto no anda, mas pode ser que o personagem tenho batido em algo
que o machuque como o fogo, ento o "faz alguma coisa" pode ser tirar vida do jogador. Uma tcnica de
coliso bem simples e que vamos usar aqui verificar se o retngulo que envolve o sprite toca o
retngulo que envolve o outro sprite (ver figura 2.4 e 2.5).

Figura 2.4 Coliso entre retngulos

Figura 2.5 Mquina de Estados Finitos

2.7. Quem participa da criao?


Voc que sempre gostou de jogar e decidiu cursar Cincia da Computao para aprender como
que aqueles games so feitos e logo se viu travando uma batalha para passar em Clculo,
lgebra Linear e Geometria Analtica. O desenvolvimento de um moderno e comercialmente
16

ANAIS ELETRNICOS V ENUCOMP

vivel game, envolve uma ampla variedade de habilidades e uma equipe especializada (ver figura
2.6).
2.7.1. Game Designer
Elabora os elementos do jogo bem como sua mecnica. Os elementos so os personagens e
o cenrio, a mecnica so as possibilidades que o jogador tem de interagir com o jogo.
Empresas que elaboram jogos de ponta modernos dividem as responsabilidades do game
designer com outros profissionais relacionados, sendo os principais, o combat designer e o
level designer.
2.7.2. Roteirista
Descreve como a trama do jogo, o perfil psicolgico dos personagens e a interao entre
eles (social e/ou psicolgica), a qual no necessariamente corresponde quela entre o
jogador e os personagens do jogo.
2.7.3. Tester
Trabalha na equipe de Q&A (Quality Assurance - Controle de qualidade). Testa diversos
aspectos do jogo e relata os pontos falhos ou a serem melhorados.
2.7.4. Programador
Elabora a programao do jogo, desenvolvendo cdigos para lidar com AI, msica,
interao, etc.
2.7.5. Engenheiro de software
Projeta os componentes de software do jogo envolvendo diversos aspectos como a
composio dos objetos, a interface deles, a interrelao existente entre eles, etc.
2.7.6. Programador Web e Programador de redes
Realiza toda a implementao e configurao necessria para a execuo do jogo em
navegadores e a disponibilizao de interatividade em rede nos jogos multiplayers on-line.
2.7.7. Programador de AI
Responsvel por programar os algoritmos de Inteligncia Artificial usados no jogo. Dentre
estes algoritmos esto o de planejamento estratgico de grupo num atirador de primeira
pessoa, a montagem da estratgia do time controlado pela CPU num jogo de esportes, o
planejamento de caminho para levar um personagem NPC (personagens no-jogveis) de
um local ao outro, etc.
2.7.8. Engenheiro de som
Produz os efeitos sonoros e a msica tema.

2.7.9. Level designer

17

ANAIS ELETRNICOS V ENUCOMP

Faz o projeto da fase em que o jogador se encontra. Determina quais elementos compem a
fase, verifica a presena de alguma caracterstica distintiva no terreno como aclives,
declives, montanhas, etc.
2.7.10. Combat Designer
Projeta como ser o combate entre o jogador e o computador. Quais so os elementos que
devem estar presentes no combate, qual o papel destes elementos (dano, cobertura, etc).

Figura 2.6. Equipe de desenvolvimento de jogos

2.8. Como feito um jogo de duas dimenses?


De maneira similar ao modo convencional, a criao de jogos de duas dimenses (2D),
utiliza-se da orientao do plano cartesiano (x,y) bastando observar algumas peculiaridades
quanto a orientao do eixo y (ver figura 2.7).

Figura 2.7. Sistema de coordenadas

2.9. O que so engines?

18

ANAIS ELETRNICOS V ENUCOMP

Definio: a ferramenta que se encarregar por entender como o hardware grfico, ir


controlar os modelos para serem renderizados, tratar das entradas de dados do jogador,
tratar de todo o processamento de baixo nvel e outras coisas que o desenvolvedor de jogos
normalmente no deseja fazer ou no tem tempo para se preocupar (ver figura 2.8).

Figura 2.8 Estrutura de um Motor de Game (Game Engine)

2.9.1. PyGame
O Pygame um conjunto de mdulos que voc importa num cdigo em Python, os quais lhe
disponibilizam uma srie de funcionalidades auxiliares para criao de aplicativos
multimdia e games.
Segue abaixo algumas caractersticas da engine para programadores da linguagem
python:
Vrios processadores podem ser usados facilmente:
O uso de vrios ncleos adiciona um desempenho muito maior ao seu jogo.
As funes internas so implementadas em C e Assembly:
Cdigo em C costuma ser de 10 a 20 vezes mais rpido que Python. J
Assembly tem uma performance de mais de 100 vezes maior que Python.
Porttil:
Aplicativos programados em Pygame podem rodar tanto em plataformas Windows
(ver figura 2.9) quanto em Linux, Solaris, FreeBSD, Mac OS, Android, entre outros. O
cdigo ainda d suporte a Dreamcast e tambm pode ser usado em dispositivos mveis.
Simples:
O Pygame usado no projeto OLPC (One Laptop Per Child) para ensinar
programao a crianas. Ao mesmo tempo, tambm a preferncia de programadores
experientes.

19

ANAIS ELETRNICOS V ENUCOMP

Figura 2.9 Janela grfica do PyGame

2.9.2. Allegro
Allegro uma biblioteca de funes para jogos 2D feita em C. Apesar de ter algumas
funes para jogos 3D ela no indicada para isso, sendo no lugar dela uma API3d como
OpenGL ou DirectX. De acordo com a Companhia Oxford de Msica, Allegro o italiano
para "rpido, vivo e brilhante". Ele tambm um acrnimo recursivo que representa
"Allegro Low Level Game Routines" (Rotinas de jogo de baixo nvel Allegro).
Segue abaixo algumas caractersticas da engine para programadores da linguagem C:

Biblioteca para construo de jogos e aplicaes multimdia em geral;


Free Source e multi-plataforma (DOS, Windows, Linux, Mac (OS X), BeOS e QNX);
Voltada mais especialmente para jogos 2D;
Conhecida pela facilidade de adicionar entrada de dados via teclado, mouse e
joystick;
Suporta arquivos de configurao e de dados comprimidos (.dat);
Temporizadores.

2.10. Inicializao das bibliotecas


Esta a principal funo, e deve obrigatoriamente ser chamada para uma aplicao
funcione, a chamada desta funo deve ser a primeira a ser feita, antes de qualquer outra
funo.
Allegro: #include <allegro.h>
int allegro_init();
PyGame: import sys, os, pygame
from pygame.locals import*

2.11. Paleta de cores


A especificao de uma paleta (ver figura 2.10) de cores, dar-se atravs dos parametros
R(Red), G(Green), B(Blue) nas seguintes funes:
Allegro: int makecol( int iRed, int iGreen, int iBlue );
20

ANAIS ELETRNICOS V ENUCOMP

Passando-se os valores dos tons (que variam de 0 a 255), de vermelho, verde e azul,
esta funo retorna o cdigo da cor. Exemplo de uso: makecol (255, 0, 0 );
PyGame: Realizada de forma similar

Figura 2.10 Paleta de cores

2.12. Temporizadores
Interrompe a execuo do programa durante um intervalo de tempo igual ao passado
como parmetro, em milisegundos:
Allegro: void rest(unsigned int uiTime);
PyGame: Clock = pygame.time.Clock()
Clock.tick(int Time)

2.13. Pixel a pixel


Colore um pixel do bitmap, nas coordenadas especificadas no segundo parmetro e terceiro
parmetro, na cor passada no quarto parmetro:
Allegro: void putpixel(BITMAP *bmp, int iX, int iY, int iColor);
Recupera o valor da cor de um pixel do bitmap, nas coordenadas especificadas no segundo
parmetro e terceiro parmetro, na cor passada no quarto parmetro:
Allegro: void getpixel(BITMAP *bmp, int iX, int iY, int iColor);
Preenche um bitmap com a cor especificada, em um espao fechado, a partir do ponto X e
Y:
Allegro: void floodfill(BITMAP *bmp, int iX, int iY, int iColor);

2.14. Formas primitivas


A primeira funo desenha uma linha vertical, a segunda funo desenha uma linha
horizontal e a ultima funo desenha uma linha entre 2 pontos quaisquer, respectivamente:
21

ANAIS ELETRNICOS V ENUCOMP

Allegro: void vline(BITMAP *bmp, int iX, int iY1, int iY2, int iColor);
void hline(BITMAP *bmp, int iX1, int iY, int iX2, int iColor);
void line(BITMAP *bmp, int iX1, int iY1, int iX2, int iY2, int iColor);
A primeira funo desenha um retngulo sem preenchimento, com o contorno colorido,
enquanto a segunda funo desenha um retngulo com preenchimento:
Allegro: void rect(BITMAP *bmp, int iX1, int iY1, int iX2, int iY2, int iColor);
void rectfill(BITMAP *bmp, int iX1, int iY1, int iX2, int iY2, int iColor);
A primeira funo desenha um crculo sem preenchimento, com o contorno colorido,
enquanto a segunda funo desenha um crculo com preenchimento:
Allegro: void circle(BITMAP *bmp, int iX, int iY, int iRaio, int iColor);
void circlefill(BITMAP *bmp, int iX, int iY, int iRaio, int iColor);
A primeira funo desenha uma elipse sem preenchimento, com o contorno colorido,
enquanto a segunda funo desenha uma elipse com preenchimento:
Allegro: void ellipse(BITMAP*bmp, int iX, int iY, int iXRaio, int iYRaio, int iColor);
void ellipsefill(BITMAP *bmp, int iX, int iY, int iXRaio, int iYRaio, int iColor);

2.15. Texto
Funo para exibir um texto na tela, o sexto parmetro deve ser -1 para um fundo
transparente:
Allegro: void textprintf_ex(BITMAP*bmp,FONT font,int X,int Y, int Color,int CorFundo,char Text);
PyGame: Font = pygame.font.Font("font.ttf",128)

2.16. Modo grfico


Especificado antes de comear a desenhar:
Allegro: int set_gfx_mode (int card, int w, int h, int v_w, int v_h);
Onde:

valor

de

card

usualmente
GFX_AUTODETECT,
ou GFX_AUTODETECT_WINDOWED;

GFX_AUTODETECT_FULLSCREEN

w, h largura e altura, respectivamente;


v_w, v_h largura e altura virtual (normalmente, 0), respectivamente.

2.17. Desenhando objetos - BITMAPs


Bitmaps so matrizes de pixels, em que cada valor indica uma cor. Tela um BITMAP
especial chamado screen, BITMAPs adicionais podem ser criados com:
Allegro: BITMAP *bmp = create_bitmap(int width, int height);

2.18. Perifricos de entrada


2.18.1 Teclado
22

ANAIS ELETRNICOS V ENUCOMP

Para inicializar as rotinas do teclado:


Allegro: install_keyboard();
Vrivel global int key[ ], permite ver quais teclas esto pressionadas, atravs de
constantes definidas para identificar cada tecla (ver tabela 2.1).
PyGame: Realizada de forma similar.
Tabela 2.1. Constantes representativas de cada tecla

2.18.2 Mouse
Para inicializar as rotinas do mouse:
Allegro: install_mouse();
PyGame: Realizada de forma similar

2.19. Som digital (WAV) e msica (MID)


Antes de se tocar um som digital ou msica deve-se carreg-los da seguinte forma:
Allegro: som1 = load_wav(arquivo.wav);
musica = load_midi(arquivo.mid);

2.20. Algumas tcnicas de programao de jogos


2.20.1. Animao
Dar a impresso de que coisas se movem, pode significar mover um pixel ao longo da tela
mas, geralmente, significa uma mudana repetitiva da apresentao de algo para que d a
ideia de que se move.
23

ANAIS ELETRNICOS V ENUCOMP

A tcnica mais simples de animao quando limpamos a tela, desenhamos os


objetos, limpamos a tela novamente, desenhamos os objetos nas novas posies. O Desafio
como causar a impresso de movimento dos personagens? A soluo utilizarmos sprites,
ou seja, um conjunto de dados que definem determinado objeto ou personagem num jogo
(ver figura 2.11). Para uma pessoa, por exemplo, podemos ter um sprite que contenha as
posies vertical e horizontal dela no mundo, a direo para onde ela est virada e os
bitmaps que podem represent-la durante o jogo.

Figura 2.11 Exemplo de sprite

2.20.2. Double Buffering


O Problema:
Quando vamos fazer animaes usando o Allegro, surgem alguns problemas relacionados
aos vrios mtodos que podem ser utilizados. O mtodo mais simples que podemos imaginar
aquele em que limpamos a tela, desenhamos os objetos, limpamos a tela novamente, desenhamos
os objetos nas novas posies, e assim por diante. Este mtodo, porm, tem um grave problema:
a tela pisca a cada limpeza.
A Soluo:
Dispomos de um bitmap auxiliar (chamado de buffer) que, normalmente, possui o
tamanho da tela (ou o tamanho da regio onde ocorre a animao). Desenhamos, neste buffer, os
objetos que devem ser apresentados na tela. Aps isso, desenhamos o contedo do buffer na tela,
fazendo com que os objetos apaream. Limpamos, ento, o buffer, desenhamos os objetos
novamente em suas novas posies, passamos o contedo do buffer para a tela, e assim por
diante.
2.20.3. Scrolling

24

ANAIS ELETRNICOS V ENUCOMP

O Problema:
Como dar movimento ao personagem e aos objetos envolvidos?
A Soluo:
Movimento de cenrio. O scrolling consiste em movimentar o fundo do cenrio e,
normalmente, deixar o personagem controlado parado, o que causa uma sensao de movimento.
O scrolling pode ser horizontal, vertical ou em ambas as direes.

2.20.4. Parallax Scrolling


O Problema:
Como causar a sensao de profundidade presente em jogos 3D?
A Soluo:
Utilizar vrios fundos que se movimentam em velocidades diferentes.

2.20.5. Deteco de Coliso


O Problema:
Como verificar se dois sprites esto sobrepostos, ou seja, se houve uma coliso?
A Soluo:
Existe o mtodo que chamamos de fora bruta (checar cada ponto de um sprite com cada
ponto de outro sprite) qu ineficiente, a maior parte dos outros mtodos so aproximativos.
Veremos o principal deles, que consiste em dividir os sprites em retngulos, de forma que
possamos verificar se cada retngulo est ou no sobreposto a outro. Fazer com que
o sprite tenha sua movimentao limitada s bordas do nosso jogo no deixa de ser uma forma
de deteco de coliso, bem simples, verdade. Porm, em jogos 2D, geralmente se deseja
realizar deteco de coliso entre dois ou mais sprites no jogo.
2.20.5.1 Coliso entre Esferas
O Problema:
Contudo, apesar do sistema de deteco de colises estar utilizando o algoritmo
do bouncing box, depois de alguns testes voc perceber um problema. Se os sprites colidirem
25

ANAIS ELETRNICOS V ENUCOMP

diagonalmente, eles iro colidir antes de atingirem um ao outro de verdade. Isso est ocorrendo
justamente por utilizarmos caixas para representar a forma geomtrica das esferas, e agora?
A Soluo:
Quando queremos testar colises entre esferas, teremos que verificar se a distncia entre
os centros delas so menores que a soma dos seus raios. Em caso positivo, ento uma coliso
ocorreu. Essa a forma mais eficiente de detectar colises entre duas esferas. Para detectar a
coliso entre duas formas circulares, usamos o teorema de Pitgoras: (r2 = x2 + y2) (ver figura
2.12).

Figura 2.12. Teorema de Pitgoras

Referncias
Andrade, Kleber de Oliveira, Introduo ao Desenvolvimento de Jogos,
http://pt.scribd.com/doc/79874524/desenvolvimento-de-jogos, Outubro.
McGugan, Will, Beginning Game Development with Python and Pygame, 2007.
Game Level Design,
http://www.gamasutra.com/view/feature/175950/the_fundamental_pillars_of_a_.php
, Outubro.
PyGameLib, http://www.pygame.org/, Outubro.

26

ANAIS ELETRNICOS V ENUCOMP

Fundamentos em Segurana e Hardening em


Servidores Linux baseado na Norma ISO 27002
Felipe Santos Barbosa

Abstract
Lack of maturity concept of information security, both as managers from the IT technical staff
about potential problems that may occur due to the lack of correct management of sensitive
information of the company and the impacts that may cause the image of the corporation. Many
administrators with little security experience preparing their servers with a basic installation
and after their applications are already in operation they leave the way it is, the adoption of
hardening techniques in the UNIX solutions come with standard ISO27002 controls. Having as
its main objective to show how to seek compliance of best practices suggested in the standard.
Resumo
Falta amadurecimento do conceito segurana da informao, tanto de gestores como por parte da
equipe tcnica de TI sobre possveis problemas que podem ocorrer pela falta do gerenciamento
correto das informaes sigilosas da empresa e os impactos que possam causar a imagem da
corporao. Muitos Administradores sem muita experincia em segurana preparam seus
servidores com uma instalao bsica e, depois que suas aplicaes j esto em funcionamento
eles deixam da maneira que est, a adoo de tcnicas de Hardening em ambientes UNIX
provem solues de controles com a norma ISO27002. Tendo como seu principal objetivo
mostrar como buscar a conformidade das boas prticas sugeridas na norma.

3.1.Introduo
A segurana da informao possibilita que o negcio da empresa seja realizado e sua
misso alcanada, fazendo com que a informao seja um ativo de grande importncia que
necessita ser protegida, independente do formato em que ela se encontra como, por exemplo:
impressa ou escrita em papel, armazenada eletronicamente, apresentada em filmes ou atravs de
conversas.
Investir em segurana da informao no apenas uma questo de investimento
tecnolgico, mas tambm de gesto de pessoas, o que faz com que esse aspecto seja um dos mais
difceis de ser abordado e que merece bastante ateno dos especialistas na tentativa de mitigar
os riscos sofridos pelas empresas, pois so as pessoas que executam e suportam os processos de
uma organizao.
A necessidade do uso das informaes e os riscos esto presentes em todos os negcios
sendo preciso saber conviver com eles e administr-los com competncia, pois uma
indisponibilidade pode causar danos irreparveis e as pessoas ainda no possuem conscincia ou
27

ANAIS ELETRNICOS V ENUCOMP

no disponibilizada a elas a importncia de terem responsabilidade de ajudar a manter a


confidencialidade e a integridade dessa informao.
Uma das estratgias utilizada pela equipe de segurana da informao para ajudar a
atingir os seus objetivos desenvolver um programa de conscientizao com a finalidade de
fazer com que todas as pessoas da organizao entendam a necessidade de segurana e passe a se
preocupar com esses aspectos em todas as situaes do cotidiano, alm de transformar o elo mais
fraco da cadeia em um grande aliado na estratgia da segurana corporativa.

3.2.Ambiente Organizacional
O aumento da competitividade fez com que as empresas buscassem novos modelos de
negcio, com maior rapidez, eficincia e qualidade nos servios prestados e nos produtos. A
informao passou a ser o ativo mais valioso da organizao, exigindo um controle mais rgido e
complexo.
Diante desse novo cenrio, a segurana da informao, que antes era de conhecimento
apenas de grandes empresas e profissionais especializados, passou a ser conhecida por um
nmero maior de pessoas, porm a maioria das organizaes toma uma postura reativa em
relao segurana, tomando decises aps a ocorrncia de um incidente ou at mesmo
chegando a ignor-lo dependendo do seu impacto nos negcios.
Devido s constantes mudanas nas organizaes e ambientes de TI comum o
surgimento de diferentes formas de ameaas e vulnerabilidades, tornando a sua gesto uma tarefa
complexa e bastante abrangente.
Para auxiliar no processo de implementao e manuteno do sistema de gesto de
segurana da informao as empresas utilizam as principais normas srie 27000 que so a NBR
ISO/IEC 27001:2006 - Tecnologia da Informao - Tcnicas de Segurana - Sistema de Gesto
de Segurana da Informao (SGSI) - requisitos, norma que trata da definio de requisitos para
SGSI, e a NBR ISO/IEC 27002:2005 - Tecnologia da Informao - Tcnicas de Segurana Cdigo de Prtica para Gesto de Segurana da Informao, que o cdigo de melhores prticas
para gerncia da segurana da informao.
De acordo com Fontes (2000, p.53), h oito dimenses da segurana da informao (SI)
que podem auxiliar em todos os aspectos e facilitar esse processo. So elas:
a) Organizacional: deve abranger as polticas, os termos de compromisso e as auditorias de
acordo com a filosofia e a cultura da empresa;
b) Controle de acesso a informao: envolve a identificao e autenticidade dos usurios nos
sistemas computacionais e como ele dever ser feito. Tambm identifica o gestor e o responsvel
pelo controle de acesso informao;
c) Desenvolvimento e a manuteno de sistemas: define os procedimentos, padres,
metodologias e regras de desenvolvimento, aquisio e manuteno de sistemas;
d) Ambiente fsico: envolve o controle de acesso e monitoramento do ambiente, alm das
condies tcnico/ambientais para os equipamentos de informtica funcionem corretamente;
e) Ambiente descentralizado: deve levar em considerao a importncia que os micros e redes
locais esto ganhando nas empresas;
28

ANAIS ELETRNICOS V ENUCOMP

f) Continuidade do negcio: planejamento de aes que permitem a continuidade do negcio,


recuperao ou contingncia caso algum desastre ocorra. Deve levar em considerao todos os
riscos e ameaas que envolvem o negcio da empresa;
g) Telemtica: garante a comunicao da empresa com o mundo exterior. Deve ser monitorada e
garantir a proteo das informaes internas, assim como a confidencialidade nas comunicaes
entre cliente/empresa;
h) Recursos Humanos: Fator de grande importncia na implementao da SI. Abrange a
campanha de conscientizao dos usurios e as medidas que devero ser tomadas para que isso
ocorra.
A NBR ISO/IEC 27002-2005 cita a conscientizao dos usurios como um processo,
porm no h um detalhamento ou procedimento de como isso deve ocorrer, permitindo que os
gestores desenvolvam planos estratgicos de como isso deve ser feito, levando-se em
considerao a realidade e a cultura da organizao e lembrando que uma estratgia ser
realizada de maneira abrangente, contnua e testada.
Na descrio de acordo com a ABNT NBR ISO/IEC 27001-2006: A organizao deve
assegurar que todo pessoal que tem responsabilidades atribudas definidas no SGSI seja
competente para desempenhar as tarefas requeridas:
a) determinando as competncias necessrias para o pessoal que executa trabalhos que afetam o
SGSI;
b) fornecendo treinamento ou executando outras aes (por exemplo, contratar pessoal
competente) para satisfazer essas necessidades;
c) avaliando a eficcia das aes executadas; e mantendo registros de educao, treinamento,
habilidades, experincias e qualificaes.
A organizao deve tambm assegurar que todo o pessoal pertinente esteja consciente da
relevncia e importncia das suas atividades da informao e como eles contribuem para o
alcance dos objetivos do SGSI (FONTES, 2006).
Diante dos dados de pesquisa da Mdulo Security na sua 10 Pesquisa Nacional de
Segurana da Informao (2010), a estrutura da rea de segurana da informao na maioria das
empresas envolve profissionais que desempenham outras funes na rea de TI, como Gerentes
de TI/Redes. Somente em um pequeno nmero de empresas (13%) existe um cargo de
CSO/Diretor de segurana (Figura 3.1).

29

ANAIS ELETRNICOS V ENUCOMP

Figura 3.1 Percentuais de Profissionais que desempenham funes na rea de TI nas


empresas
Fonte: Mdulo Security Solutions 10 Pesquisa Nacional de Segurana da Informao (2006,
p.8)

Segundo a Mdulo Security (2006), apenas 25% das empresas preferem no terceirizar a
rea de Segurana da Informao, enquanto que aquelas que terceirizam do a preferncia aos
servios de administrao e suporte a firewall e IDS (16%), help desks (13%) e anlise de riscos
(9%).

3.3.Segurana da Informao
3.3.1. Uma Viso Geral
O contedo publicado nas redes sociais nem sempre so relevantes aos negcios da
organizao e muitas vezes podem reduzir a produtividade dos profissionais. A disponibilizao
de informaes e a sensao de conforto, gerados pela liberao da utilizao dessas ferramentas,
pode favorecer o trabalho de pessoas maliciosas que utilizam de estratgias como a de
Engenharia Social para obter informaes sigilosas.
De acordo com Frank Wazmer, ChiefInformation Officer (CIO) da rede hospitalar norteamericana Health First, explica que a ameaa imagem das companhias latente quando seus
funcionrios fazem parte de redes sociais. Esses sites tornam-se plataforma para que eles
possam fazer reclamaes, comentrios impertinentes ou at divulgar dados confidencias de
forma macia, Tendo como nica soluo a conscientizao dos usurios e a definio das
regras que devem ser aceitas por todos que fazem parte da empresa. o nico caminho
eficiente que conheo, j que nenhuma ferramenta at agora consegue deter os criminosos
virtuais, conclui (COMPUTERWORLD, 2010, p.55).
Dawel (2005, p.26) acredita que h no mnimo trs explicaes para que isso ocorra:
desconhecimento do perigo que pode estar dentro da empresa, negligncia em tratar as ameaas
30

ANAIS ELETRNICOS V ENUCOMP

internas e a impercia em lidar com assuntos relativos segurana e trat-las de forma amadora,
achando que est sendo profissional.
Em uma pesquisa realizada pela empresa Mdulo Security com Guelman (2006) foi
publicado que uma das principais constataes de um estudo realizado pelo "CSI/FBI Computer
Crime and Security Survey" que a segurana da informao muito mais uma questo gerencial
do que tecnolgica, pois de nada adianta investir em tecnologia e proteo fsica se no temos a
colaborao e o comprometimento das pessoas.
A 10 Pesquisa Nacional de Segurana da Informao, realizada em 2006, pelo Mdulo
Security Solutions, empresa especializada em segurana da informao, com cerca de 600
profissionais ligados a rea de tecnologia e segurana da informao de diversos segmentos de
negcio, revelou que apesar de haver uma maior preocupao com investimentos em SI para
ajudarem as empresas a estarem mais bem preparadas pra enfrentar algumas falhas de segurana,
ainda grande o nmero de empresas (33%) que no sabem quantificar as perdas ou sequer
identificar os responsveis pelo problema (21%). Porm a maioria das corporaes (55%)
considera como principal obstculo para a implementao da segurana da informao a falta de
conscientizao dos executivos e usurios (Figura 3.2).

Figura 3.2 Principais obstculos para a implementao da Segurana da Informao


Fonte: Mdulo Security Solutions 10 Pesquisa Nacional de Segurana da Informao
(2006, p.7)

Para ajudar a melhorar esse cenrio fundamental que a alta gerncia tenha claro que a
conscientizao de seus funcionrios um fator crtico de sucesso no plano de segurana da
informao. Para isso necessrio que seja realizada uma avaliao do nvel de conhecimento
que a direo da empresa possui sobre o assunto e que seja feito um nivelamento de informaes
utilizando as recomendaes das normas, as melhores prticas e cases de sucesso, tendo como
apoio, caso se faa necessrio, uma consultoria especializada no assunto.
31

ANAIS ELETRNICOS V ENUCOMP

O aumento do nvel de conscientizao dos altos executivos e o crescente nmero de


ataques, invases e vazamento de informaes enfrentadas pela empresa, tm incentivado a
capacidade dos funcionrios que trabalham na rea de Segurana da Informao, conforme
demonstrado na (Figura 3.3).

Figura 3.3. Nvel de capacitao dos profissionais que lidam com a Segurana da Informao na
corporao
Fonte: Mdulo Security Solutions 10 Pesquisa Nacional de Segurana da Informao
(2006, p.14)

3.3.2. Generalidades e Conceitos


A preocupao com a segurana da informao e com os conhecimentos que ela
proporciona vem desde o inicio da existncia do ser humano, antes mesmo da inveno e uso dos
computadores. As civilizaes antigas desenvolveram mtodos de segurana da informao,
como a cifra, onde cada letra do alfabeto era modificada e somente a pessoa que possua a chave
para decifrar o manuscrito conseguia ler a informao corrente. Esse mtodo de cifra foi
utilizado por muito tempo, inclusive na Segunda Guerra mundial para proteger informaes
estratgicas de guerra dos exrcitos.
Com o avano tecnolgico, o aumento do uso e das facilidades que o computador
proporciona, fez-se necessrio o surgimento da segurana da informao e, ao longo do tempo, o
desenvolvimento de normas e padres que servem como guias de melhores prticas e auxiliam
na sua estruturao.
Para que a segurana da informao tenha sucesso na sua implementao necessrio
que ela envolva todas as reas da empresa, ativos e pessoas e a atividade de conscientizao do
uso das polticas de segurana da informao e seja uma cultura da organizao (FONTES,
2000).

3.3.3. Objetivos
A segurana da informao tem como objetivo a proteo das informaes atravs de um
conjunto de orientaes, normas, procedimentos, polticas e demais aes para garantir a sua

32

ANAIS ELETRNICOS V ENUCOMP

preservao contra possveis danos, perdas, furtos e mau uso, afetando a continuidade do negcio
e alcance de seus objetivos.
De acordo com a norma ABNT NBR ISO/IEC 27002:2005 a informao um ativo e
como outro qualquer ativo importante, essencial para os negcios de uma organizao e,
consequentemente, necessita ser adequadamente protegida. Isto especialmente importante no
ambiente dos negcios, cada vez mais interconectado. Como um resultado desde o incrvel
aumento da interconectividade, a informao est agora exposta a um crescente nmero e a uma
grande variedade de ameaas e vulnerabilidades (ABNT, 2005).
Um ativo qualquer coisa que tenha valor para empresa, como servios, equipamentos,
pessoas, conhecimentos, sua imagem e reputao.
Segundo a NBR ISO/IEC 27002-2005 (ABNT, 2005) para que a informao possa estar
protegida necessrio que ela possua os trs princpios bsicos da segurana, que so:
Confidencialidade, Integridade e Disponibilidade.
Confidencialidade: somente indivduos autorizados possuem acesso a esse ativo,
impedindo que a informao acabe sendo acessada por pessoas erradas ou divulgada sem
autorizao prvia. Exemplo: Acesso folha de pagamento do RH por um funcionrio no
autorizado.
Integridade: o ativo ou a informao devem estar em seu formato original preservando a
sua exatido e completeza, ou seja, a informao no pode ter sofrido alterao.
Disponibilidade: o ativo deve estar disponvel e acessvel para o individuo autorizado
sempre que necessrio.
Alm desses princpios bsicos, a proteo tambm pode ser obtida atravs da
auditabilidade (registro do acesso e uso da informao para posteriores consultas e
averiguaes), da legibilidade (de acordo com as leis aplicveis, regulamentos, licenas e
contratos para o negcio), do no repdio (garantia de que o usurio da informao no possa
negar as suas responsabilidades pelo seu uso) (TI EXAMES ISO/27002 FOUNDATION, 2011).
Para que sejam elaboradas as normas e diretrizes, como polticas de segurana da
informao, de acordo com o tipo de negcio da empresa e o seu porte, tendo que haver um total
comprometimento de toda a organizao com nesse processo, desde a alta direo at os
estagirios, prestadores de servio e/ou partes envolvidas.

3.3.4. Polticas de Segurana da Informao


A poltica de segurana da informao (PSI), de acordo com Fontes um documento que
deve ser elaborado pela equipe tcnica, geralmente a equipe de segurana da informao,
juntamente com a alta direo visando estabelecer regras, normas e diretrizes de acordo com
cada empresa. Ela deve garantir que todas as reas e recursos da empresa sejam abrangidos e ser
coerente com a sua viso, misso e objetivos, alm de ser elaborado em uma linguagem de fcil
entendimento por todos, evitando utilizao de termos tcnicos e aspectos de implementao
(FONTES, 2000).
Todas as pessoas que fazem parte da empresa devem conhecer e seguir as polticas de
segurana, independentemente do seu nvel hierrquico ou do seu grau de participao, inclusive
33

ANAIS ELETRNICOS V ENUCOMP

os prestadores de servio e stakeholders (FONTES, 2000).Segundo Fontes (2000, p.38) a PSI


deve conter os seguintes tpicos:
a) a informao como um bem da empresa;
b) controle do acesso a informao;
c) definio do gestor da informao;
d) responsabilidades do usurio, da gerncia e do gestor da informao;
e) preparao para situaes de contingncia, garantindo a continuidade da execuo do negcio;
f) definio do uso profissional da informao da empresa;
g) definio da possibilidade, ou no, da empresa acessar arquivos pessoais do usurio, quando
de investigaes criminais;
h) definio da identificao do usurio como pessoal e nica, bem como a responsabilidade do
sigilo da senha;
i) conscientizao dos usurios;
j) medidas disciplinares que sero utilizadas caso a poltica no seja cumprida.
A implantao da PSI tende a ser longa e deve ser realizada de maneira formal e
adaptvel para que possa se adequar realidade da empresa. Sua manuteno deve ser constante
e seus tpicos revisados e atualizados de acordo com as suas necessidades e importncia
(FONTES, 2000).

3.3.5. Vulnerabilidades
A vulnerabilidade pode ser considerada uma falha no sistema computacional que cria
deficincias na segurana e que pode ser ocasionadas por configuraes incorretas do
computador ou de segurana (FONTES, 2000).
Segundo Smola (2002) e Moreira (2001) respectivamente, a fragilidade presente ou associada a
ativos que manipulam e/ou processam informaes que, ao ser explorada por ameaas, permitem
a ocorrncia de um incidente de segurana, afetando negativamente um ou mais princpios da
segurana da informao: Confidencialidade, Integridade e Disponibilidade.
A vulnerabilidade o ponto onde qualquer sistema suscetvel a um ataque, ou seja,
uma condio encontrada em determinados recursos, processos, configuraes, etc. Condio
causada muitas vezes pela ausncia ou ineficincia das medidas de proteo utilizadas com o
intuito de salvaguardar os bens da empresa (SMOLA, 2002).
As vulnerabilidades podem ser encontradas em praticamente todos os ambientes,
podendo ser de vrios tipos, como: fsicas, naturais, hardware, software, mdias, comunicao e
humana. A identificao dessas vulnerabilidades e a implantao de medidas de segurana
diminuem o grau de ameaa e aumenta a possibilidade da continuidade do negcio (MOREIRA,
2001).
Em relao a segurana da informao, a vulnerabilidade humana um dos pontos mais
frgeis e ela pode ser causada devido a negligncia ou no conhecimento das polticas de
segurana, falta de treinamento, sabotagens, compartilhamento de informaes confidenciais
34

ANAIS ELETRNICOS V ENUCOMP

como senhas e envio de e-mails a pessoa no autorizada, destruio ou roubo de propriedade ou


dados, entre outros. (SMOLA, 2002).

3.6. Ameaas
Para Arajo (2005), as ameaas so muitas das vezes consequncias das vulnerabilidades
existentes, provocando assim perdas de confidencialidade, integridade e disponibilidade.
A perda da confidencialidade ocorre quando h a quebra do sigilo de alguma forma,
como o vazamento de informaes e a descoberta da senha de um usurio. Quando a informao
acessada por pessoas no autorizadas e h alteraes dessas informaes ocorre a perda da
integridade. J a perda de disponibilidade quando, por exemplo, a informao no est
acessvel a quem precisa dela, ou por motivos acidentais, fatores internos ou externos, m
inteno ou ainda falha nos equipamentos (ARAUJO, 2005).As ameaas podem ser naturais,
quando so causadas devido a fenmenos da natureza e no naturais quando so causadas pelo
ser humano.
O erro humano a causa mais comum para a perda de dados, que pode ocorrer de forma
acidentalmente por apagar ou sobrescrever um arquivo existente na rede. Usurios
frequentemente utilizam seus computadores com configuraes pr-configuradas sem entender o
que elas significam o que pode causar srios danos. Muitos problemas originados nos
computadores das empresas so causados por atividades executadas por seus prprios
funcionrios.
Kevin Mitnick, um dos maiores cyber criminosos dos EUA, que atualmente trabalha em
prol da segurana da informao considera as pessoas como o elo mais fraco da segurana,
devido falsa sensao de segurana ocasionada pelo desenvolvimento e utilizao de melhores
tecnologias de segurana, tornando mais difcil a explorao de vulnerabilidades tcnicas. Para
Mitnick (2006), a quebra do "firewall humano" quase sempre fcil, no exige nenhum
investimento alm do custo de uma ligao telefnica e envolve um risco mnimo.
As empresas esto se preocupando cada vez mais com a proteo da informao, pois
esto convencidas de que ela um ativo de grande importncia e valor. Um dos pontos
relevantes para que a proteo dessa informao ocorra a conscientizao dos seus funcionrios
quanto utilizao desse ativo.
De acordo com Fontes (2006) conscientizao mais do que um simples conhecimento:
estar conscientizado em proteo da informao internalizar os conceitos e agir com
naturalidade no cumprimento dos regulamentos. Significa que a segurana da informao deve
fazer parte do dia-a-dia e no ser considerada um peso em nossas responsabilidades profissionais
para a organizao. Significa tambm que os executivos da organizao devem avaliar e testar
comprometidos com o nvel estabelecido para a proteo.
Fontes (2006, p.32) destaca que vulnerabilidade humana pode ocorrer por diversos tipos
de problemas, como descritos a seguir.
Pouco ou nenhum entendimento sobre segurana: segurana no um instinto e deve ser
ensinada s pessoas.

35

ANAIS ELETRNICOS V ENUCOMP

As ameaas devem ser claramente explicadas: muitas pessoas no acreditam que um problema
realmente exista por nunca terem sofrido ou conhecerem algum que j tenha sido de algum tipo
de fraude eletrnica.
Questes culturais: o comportamento das pessoas no muda facilmente. O hbito de usar regras
de segurana no deve ser utilizado apenas dentro da organizao. As pessoas tambm devem ter
hbitos fora do ambiente empresarial, fazendo com que a segurana seja uma rotina em seu diaa-dia.
Resistncia s medidas de segurana: as pessoas costumam ter a falsa sensao de perda de
liberdade ao se submeterem s polticas de segurana, ou ainda, que so pessoas no confiveis
perante a organizao.
Necessidades: geradas principalmente pela necessidade financeira.
Oportunidades: os funcionrios tm o conhecimento de como a organizao funciona
diariamente, consequentemente possuem o conhecimento das fragilidades dos controles internos.
Racionalizao: a conduta da pessoa a faz acreditar e a tornar a fraude como algo justo.
O fator humano no desenvolvimento e implantao das polticas de segurana da
informao o ponto mais problemtico para a organizao, pois o nico aspecto que no pode
ser diretamente controlado, como ocorre com os diversos tipos de sistemas e computadores que
so programados a executar com fortes polticas de segurana.
A organizao deve desenvolver um plano de conscientizao dos usurios, como o objetivo de
introduzir a preocupao com a SI na cultura organizacional. Deve envolver todos os
funcionrios da organizao e, caso se faa necessrio, fornecedores e terceiros.
O processo de seleo dos profissionais tambm deve ser realizado de maneira criteriosa,
levando-se em considerao a importncia do ativo pelo qual o colaborador ser responsvel,
alm dos seus conhecimentos e da titularidade exigida pela funo.
Os riscos considerados ativos podem ser mais bem gerenciados de acordo com as
vulnerabilidades humanas se todas as pessoas reconhecerem o seu papel, suas responsabilidades
e habilidades, fazendo a diferena na prtica e contribuindo para a SI.
A empresa deve estabelecer regras que sejam claras e objetivas, medir a adeso s
polticas de segurana da informao periodicamente, ter um criterioso processo de seleo,
prover treinamento, atualizaes e reciclagens, fornecer informaes de como se defender de
ataques tecnolgicos e engenharia social alm de possuir um conjunto de tecnologias aplicadas a
SI.

3.4. Motivos de Ameaa Segurana


No comeo dos anos 70 poucos eram as ameaas e danos que poderiam ser causados a
informao pela utilizao dos computadores, onde a maioria dos perigos era causada pela
utilizao de disquetes contaminados e, posteriormente, de CDs e jogos que carregavam vrus e
cavalos de Tria.
O aumento do uso de computadores pelas organizaes para processar e armazenar informaes
importantes e confidenciais sobre o seu negcio, o compartilhamento das informaes atravs da
rede, o desenvolvimento de novos negcios na internet, a sua facilidade de uso, baixo custo,
36

ANAIS ELETRNICOS V ENUCOMP

anonimato e, consequentemente, impunidade contriburam exponencialmente para o crescimento


dos ataques s informaes pessoais e, principalmente empresrias.
Conforme publicado na 10 Pesquisa Nacional de Segurana da informao h uma grande
dificuldade das organizaes em conseguir identificar os responsveis pelas ameaas, fazendo
com que elas se dediquem apenas a corrigir as falhas (48%), quando descoberta, ou tomar
providncias internas (25%), acionando por conta prpria o causador do problema (MDULO
SECURITY SOLUTIONS, 2006).
Os danos causados por vrios tipos de ameaa podem gerar perdas significantes para as
organizaes. O conhecimento das vulnerabilidades dos sistemas e suas ameaas ajudam a
mitigar os riscos com a implementao de medidas corretivas e custos aceitveis para a
organizao.
Ainda de acordo com a mesma pesquisa, quando as organizaes conseguem identificar
os responsveis verificado que a maioria das falhas de segurana causado por funcionrios
(24%) e hackers (20%). As ameaas que mais causam danos financeiros so os vrus (15%),
spam (10%) e as fraudes (8%) (Figura 3.4).

Figura 3. 4 Problemas que geraram perdas financeiras


Fonte: Mdulo Security Solutions 10 Pesquisa Nacional de Segurana da Informao
(2006, p.6).

Para Mitnick (2003) no existe um computador 100% seguro, pois um criminoso far de
tudo para conseguir a informao desejada.H um ditado popular que diz que um computador
seguro aquele que est desligado. Isso inteligente, mas falso: o criminoso convence algum
37

ANAIS ELETRNICOS V ENUCOMP

a entrar no escritrio e ligar aquele computador. Tudo uma questo de tempo, pacincia,
personalidade e persistncia. nesse ponto que entra a arte da fraude (MITNICK, 2003).
O conhecimento das causas e riscos que as ameaas trazem se faz necessrio, pois os
usurios repetem seus comportamentos domsticos dirios nos ambientes corporativos,
comprometendo igualmente a segurana dos computadores utilizados.

3.4.1. Erros e Omisses


Tambm chamados de bug's do sistema, os erros e as omisses podem causar ameaas
integridade dos sistemas devido a problemas que podem ser gerados pela edio das informaes
diria, por diversos funcionrios e/ou automaticamente pelo prprio sistema, como atravs de
atualizaes ou erros de programao, podendo contribuir direta ou indiretamente com as
brechas de segurana. Alguns desses tipos de erros podem causar perdas irreparveis ou criar
vulnerabilidades e podem ocorrer durante todo o ciclo de vida do sistema. Uma pesquisa
publicada pelo portal terra em julho de 2007 mostra que uma falha de segurana foi descoberta
em um erro de programao bastante comum. O erro era considerado apenas preguia de
programador", no entanto agora ele considerado um defeito gravssimo em segurana e est
presente em milhares de programas e sistemas em todo o mundo.
Atualizaes de segurana tambm so frequentemente liberados com frequncia por
diversos desenvolvedores de sistemas para correo de vulnerabilidades, descobertas em seus
diversos sistemas para evitar que erros e/ou falhas de programao sejam explorados por pessoas
mal intencionadas.

3.4.2. Fraude e Roubo


Podem ser aes causadas tanto por pessoas externas (conhecidas ou no) como, na
grande maioria das vezes pelos prprios funcionrios, utilizando-se de mtodos tradicionais,
como desvio de dinheiro e falsificao de documentos, ou atravs de novas formas. Os softwares
e hardwares em geral tambm so alvos vulnerveis de roubo.
De acordo com uma recente comparao feita pelo Centro de Estudos, Respostas e
Tratamento de Incidentes de Segurana - CERT.br (2011) notificaes relacionadas a tentativa
de fraude apresentam crescimento de 45,8%, em relao ao trimestre anterior e de 23,6% sobre o
mesmo perodo de 2010. Houve aumento de 73,4% no nmero de notificaes de pginas falsas
de bancos e de sites de comrcio eletrnico (Phishing), em relao ao quarto trimestre de 2010 e
de 134,4% em relao ao mesmo perodo de 2010 (Tabela 3.1).
Tabela 3.1 Notificaes de ataques classificados por tipo de ataque

Fonte: http://www.cert.br/stats/incidentes/2011-jan-mar/total.html

38

ANAIS ELETRNICOS V ENUCOMP

Os itens apresentados na Tabela 3.1 tm os significados a seguir descritos.

Worm: notificao de atividades maliciosas relacionadas com o processo


automatizado de propagao de cdigos maliciosos na rede.

DoS(DoS Denialof Service): notificao de ataques de negao de servio, onde


o atacante utiliza um computador ou um conjunto de computadores para tirar de operao
um servio, computador ou rede.

Invaso: um ataque bem sucedido que resulte no acesso no autorizado a um


computador ou rede.

Web: um caso particular de ataques visando especificamente o comprometimento


de servidores Web ou desfigurao de pginas na internet.

Scan: notificaes de varreduras em redes de computadores, com o intuito de


identificar quais computadores esto ativos e quais servios esto sendo disponibilizados
por eles. amplamente utilizado por atacantes para identificar potenciais alvos, pois
permite associar possveis vulnerabilidades aos servios habilitados em um computador.

Fraude: segundo Houaiss, "qualquer ato ardiloso, enganoso, de m-f, com


intuito de lesar ou ludibriar outrem, ou de no cumprir determinado dever, logro. Esta
categoria engloba as notificaes de tentativa de fraudes, ou seja, de incidentes em que
ocorre uma tentativa de obter vantagens.

Outros: notificaes de incidentes que no se enquadram nas categorias


anteriores.

3.4.3. Sabotagem dos Funcionrios


Os funcionrios tm um amplo conhecimento de como a estrutura organizacional da
empresa, o funcionamento dirio de sistemas e possveis brechas facilitando a sabotagem. O
nmero de incidentes gerados por esse tipo de ameaa no chega a ser maior do que o nmero de
roubos, porm o custo desses incidentes pode ser significativamente maior. A insatisfao do
funcionrio, como a no aprovao constante de seu chefe, a falta de reconhecimento ou
promoo de cargo ou salarial, pode lev-lo a esse tipo de ao, ajudando-o a atingir um nvel
maior de insatisfao no seu trabalho.
O site BR-Linux.org publicou em 2008, em uma de suas reportagens, que um problema
na rede da telefnica que deixou boa parte de So Paulo off-line pode ter sido causado por
sabotagem interna. Segundo os prprios funcionrios da companhia, uma semana antes do
incidente, foram demitidos cerca de 700 funcionrios da Telefnica, por conta de fechamento de
contrato de terceirizao com fornecedores. Um dos funcionrios ainda citou que esse mesmo
problema j havia ocorrido h um ano, porm o incidente no havia sido to grave.

3.4.4. Hackers Maliciosos


Tambm chamados de crackers, referem-se a pessoas que se aproveitam de brechas e
vulnerabilidades do sistema para invadi-lo. Podem ser tanto pessoas internas quando externas da
empresa. Atualmente os danos causados pelos crackers so menores do que os causados pelos
roubos e sabotagem de funcionrios, porm recebem mais ateno do que as demais ameaas por
39

ANAIS ELETRNICOS V ENUCOMP

no haver o conhecimento do seu objeto e por tomar as pessoas vulnerveis por no conhecer a
identidade dos hackers.
Em dezembro de 2009 um e-mail circulava pela internet oferecendo vacina para antigripe
H1N1. Atravs desse e-mail os hackers maliciosos redirecionavam o usurio para um site falso
que baixava automaticamente programas maliciosos para o computador da vtima. O computador
contaminado era utilizado para furtar dados cadastrais, atacar outros computadores e transformar
a mquina em um servidor de "spam" (REUTERS, 2009).

3.4.5. Espionagem Industrial


a ao em que se obtm informaes confidenciais de empresas particulares ou
privadas com o propsito de vend-las para outras empresas. A espionagem industrial pode ser
encomendada por empresas para obter informaes precisas de empresas concorrentes ou pelo
prprio governo para buscar vantagens econmicas ou nos seus negcios industriais. Os trs
maiores tipos de danos causados pelo roubo de informao so: o custo dessa informao, a
informao do processo de manufatura e a especificao da informao no processo de
desenvolvimento de novos produtos e servios.
A ABIN (Agncia Brasileira de Inteligncia) publicou em 2008 no seu site uma
reportagem realizada por Xavier (2008) sobre espionagem industrial relacionado ao furto
ocorrido na Petrobrs de informaes sigilosas sobre pesquisas ssmicas que estavam
armazenadas em dois laptops que estavam sendo transportados em um container pela empresa
norte-americana Halliburton. Para Advir, diretor e dono da Ormax, uma empresa especializada
em contra-espionagem localizada em So Paulo, A espionagem industrial praticada h muitos
anos, mas tem crescido a passos largos graas tecnologia mais barata e ao nmero da
competio entre as empresas" (XAVIER, 2008, p.88).

3.4.6. Cdigo Malicioso


Refere-se a vrus, worms, trojans, malwares em geral. Atacam tanto computadores
pessoais quanto outros tipos de plataforma, como celulares. Atuais custos atribudos presena
de cdigos maliciosos podem resultar primeiramente pela parada do servio para remoo do
malware ou o tempo do funcionrio envolvido no reparo do sistema, entretanto esses custos
podem ser significantes.

Virus: pequeno programa de computador que se replica propositalmente, algumas


vezes em forma alterada. As verses replicadas do vrus original tambm so vrus.

Worm: programa de computador que se replica propositalmente. O resultado da


replicao so cpias do original que se espalham por outros sistemas fazendo uso dos recursos
da rede.

Trojans: programa que propositalmente conduz atividades secundrias, no observadas


pelo usurio do computador e que podem causar dano integridade do sistema infectado. (TI
EXAMES ISO/27002 FOUNDATION, 2011).
Em uma entrevista realizada pela Mdulo Security com Rob Slade (2006), especialista
em vrus de computador, foi publicado que os vrus de macros surgiram em 1995 e acreditava-se
que somente programas eram perigosos. J em 1998 os criadores de vrus comeam a dissemin40

ANAIS ELETRNICOS V ENUCOMP

los pela internet infectando um nmero maior de pessoas e se espalhando pela rede mundial
quase que instantaneamente, porm o maior problema surgiu em 2003 quando esses
desenvolvedores perceberam as possibilidades de fazer dinheiro com o uso desses malwares. O
risco passou a aumentar de forma gradativa e a conscientizao dos usurios no acompanhou
esse processo.
Dessa forma, a conscientizao passa novamente a ser um fator importantssimo para as
empresas na mitigao de riscos e vulnerabilidades em seus ativos, conforme Slade (2006)
recomenda em um trecho de sua entrevista citando sobre as tendncias para o futuro e o que as
empresas poderiam fazer para melhor se protegerem.
Ns no podemos saber como as tecnologias perigosas podem ser, mas sabemos que
sero como aplicaes que colaboram para a "convenincia do usurio". Muito provavelmente,
se relacionaro com ferramentas que existam. Em termos de proteo a conscientizao
continuar sendo a melhor defesa. Organize palestras para seus funcionrios, ensine o que
perigoso e que todos os atalhos geralmente resultam em infeces. apontado tambm que
seminrios para os usurios em geral so uma das mais efetivas protees, em termos de custobenefcio: ensinando usurios que no trabalham para voc, voc ajuda na proteo. Os vrus que
atingem usurios infectados enviam cpias e uma destas pode atingir voc. (SLADE, 2006, p.2).

3.4.7. Spam
um nome coletivo para mensagens indesejadas. O termo normalmente usado para email, mas mensagens de publicidade e em web sites tambm so consideradas como spam.O
nmero de spams reportados para o CERT.br, rgo responsvel por receber, analisar e
responder a incidentes de segurana envolvendo redes conectadas internet, chegou a um total
de 31.367,42 somente entre janeiro e junho de 2011 e esse nmero vem crescendo
exponencialmente a cada ano (Figura 3.5).

Figure 3.5 Spams reportados ao CERT.br por ano


Fonte: http://www.cert.br/stats/spam/

41

ANAIS ELETRNICOS V ENUCOMP

3.4.8. Explorao de Vulnerabilidades


Vulnerabilidades ocorrem, principalmente, em softwares comerciais ou, at mesmo, nas
ferramentas de segurana como antivrus e firewalls. A Figura 3.6 exibe os incidentes reportados
em 2011 referentes aos tipos de ataque pelos sistemas e usurios de computadores.

Figura 3.6 Tipos de ataques reportados ao CERT.br no ano de 2011


Fonte: http://www.cert.br/stats/incidentes/2011-jan-mar/tipos-ataque.html

De acordo com resultados da 16 edio do internet Security ThereatReport, divulgado


pela Symatec s em 2010 foram descobertos mais de 286 milhes de novas ameaas com ataques
direcionados s organizaes. No universo da mobilidade, as incidncias de ameaas subiram
para 42%. Com isso, as empresas norte-americanas gastam em mdia, $7,2 milhes para sanar
um vazamento de dados.
Em matria divulgada pela DecisionReport (2011) Vendramini diretor Comercial da
Symantec Brasil cita como tendncia de ameaa para os prximos anos ataques direcionados
como o Hydraq e o Stuxnet, esse ltimo tem se mostrado uma ameaa crescente em todo o
mundo pelo fato de ser considerado o maior ataque ciberntico da histria. O Stuxnet abriu uma
porta para os malwares que alteraram a frequncia de energia do motor, que ocasionou tambm a
capacidade de produo de uma empresa.

3.4.9. Ameaa Privacidade


Podem ter vrias origens, uma delas a venda de informaes pessoais dos cadastros de
moradores de uma determinada regio ou pas por funcionrios pblicos para empresas privadas
para que elas possam disseminar sua marca e promover propagandas de seus produtos e servios.
A divulgao de informao tambm pode favorecer a engenharia social facilitando o ataque.
As informaes tambm devem ser descartadas de forma adequada, evitando que pessoas
mal intencionadas possam conseguir informaes valiosas, como contas e senhas de usurios,
configuraes de computadores, nmero de contas bancrias, vasculhando o lixo de uma
empresa.

3.4.10. A Fragilidade das Senhas Fracas


Na tentativa de se obter sucesso em um acesso no autorizado o primeiro alvo a ser
atacado so as senhas de usurios, que geralmente no possuem uma complexidade na sua
42

ANAIS ELETRNICOS V ENUCOMP

elaborao, so anotadas e armazenadas em locais com pouca ou sem nenhuma segurana ou


compartilhada com demais usurios. Ao obter sucesso na invaso o hacker pode acessar
informaes particulares ou confidenciais, instalar ou executar programas, tornar a mquina
vulnervel e trazer srios riscos organizao.
De acordo com a redao do site Correio 24 Horas (2011), o apresentador Luciano Huck
teve a sua senha do Twitter roubada e divulgada aos seus seguidores. O hacker dizia que tinha
trocado a sua senha e mandado de forma privada para a mulher do apresentador, Anglica.
Poucos minutos depois, Huck brincou escrevendo para os seguidores. "Depois da indelicadeza de
ser hackeado no twitter... estou de volta! Ah... minha nova senha : Anglica!", brincou.

3.5. Engenharia Social


Um engenheiro social recebeu a atribuio de obter os planos do seu novo produto que
deve ser lanado em dois meses. O que vai impedi-lo? O seu Firewall? No. Dispositivos
avanados de autenticao? No. Sistemas detectores de invaso? No. Criptografia? No.
Acesso limitado aos nmeros de telefone de discagem por modems? No. Nomes de cdigos nos
servidores para dificultar que um estranho determine qual servidor podem conter os planos do
produto? No.
A verdade que no existe uma tecnologia no mundo que evite o ataque de um
engenheiro social (MITNICK, 2003).A ausncia das medidas de segurana e a fragilidade
humana podem facilitar o uso da engenharia social, que uma tcnica para obteno de
informaes de uma organizao ou pessoal atravs de mtodos para engan-las ou explor-las.
Geralmente o infrator se passa por outra pessoa, fingindo ser um profissional ou outra
personalidade, no utilizando de fora bruta ou falhas de equipamentos para explor-los.Segundo
Mitnick (2003) a engenharia social usa a influncia e a persuaso para enganar as pessoas e
convenc-las de que o engenheiro social algum que na verdade ele no , ou pela
manipulao. Como resultado, o engenheiro social pode aproveitar-se das pessoas para obter as
informaes com ou sem o uso da tecnologia.
Em uma reportagem exibida pelo programa Fantstico - Globo (2011) nos deparamos
com a notcia de que "No Rio falso tenente-coronel do Exrcito atuava nas barbas da cpula da
Segurana Pblica..." Esta noticia, que muitos devem ter visto ou ouvido, causou um verdadeiro
alvoroo tanto na mdia como na alta cpula de Segurana Pblica no Estado do Rio de Janeiro,
que foi colocada em uma situao um tanto constrangedora.
Em um dos seus trechos o falso coronel cita "Eu consegui porque entrei e ningum me
perguntou nada e nem pediu nenhuma identificao. E se j no bastasse ainda apresentava
documentos falsos criados por ele prprio e por ltimo em mais uma de suas colocaes cita
"...que a parte que mais engana as pessoas to somente a convico com que o engenheiro
social se porta, a forma como coloca os assuntos e os resultados apresentados...". Enfim, ele
utilizou-se de suas habilidades em convencer as pessoas, para se tornar parte de um projeto
maior, que neste caso especfico, era estar/atuar na cpula da Secretria de Segurana Pblica do
Rio de Janeiro.
Algumas das caractersticas humanas utilizadas para a aplicao da engenharia social so
(MITNICK, 2003, p.8):
43

ANAIS ELETRNICOS V ENUCOMP

a) vaidade pessoal e/ou profissional;


b) autoconfiana;
c) formao profissional;
d) vontade de ser til;
e) busca por novas amizades;
f) propagao de responsabilidades;
g) persuaso.
Inmeras ferramentas podem ser utilizadas pelos engenheiros sociais para alcanar os
seus objetivos, entre eles podem-se destacadas a utilizao do telefone, internet, e-mail, e/ou
correspondncias, chats, malwares em geral, espionagem, roubo de informaes atravs de
documentos descartados incorretamente (MITNICK, 2003).
Geralmente os engenheiros sociais bem-sucedidos tm a habilidade de lidar com as
pessoas, so educados e agradam facilmente, o que ajuda no estabelecimento de afinidade e
confiana. Utilizam-se de documentos aparentemente sem grande importncia, o qual as pessoas
da organizao no veem nenhum motivo pelo qual ela deva ser protegida e restrita, e
desenvolvem um ambiente de credibilidade, alm de explorar a confiana da vtima sem levantar
qualquer suspeita utilizando-se da crena de que a probabilidade de ser enganado muito baixa
(MITNICK, 2003).
Para que uma empresa ou pessoa evite a trapaa Mitnick (2003, p.32) diz que:
A sua empresa tem a responsabilidade de informar os empregados sobre
como pode ocorrer um erro srio quando informaes no pblicas so
tratadas da forma errada. Uma poltica de segurana bem desenvolvida,
combinada a educao e treinamento adequados, aumenta bastante a
conscincia do empregado sobre o tratamento correto das informaes
comerciais corporativas. Uma poltica de classificao de dados ajuda
voc a implementar os controles adequados para divulgao das
informaes. Sem uma poltica de classificao de dados, todas as
informaes internas devem ser consideradas confidenciais, a menos que
seja especificado o contrrio.
De acordo com Mitnick (2003, p.33) as empresas devem seguir alguns passos que ajudam
a proteg-la contra a divulgao de informaes aparentemente inofensivas:
a) realizao de treinamentos e conscientizao fornecidos pela equipe de Segurana da
informao sobre os mtodos utilizados pelos engenheiros sociais;
b) determinar o mtodo apropriado de autenticao a ser usado quando os empregados interagem
com as pessoas que eles no conhecem pessoalmente ou por telefone.
c) classificao das informaes que aparentam ser inofensivas verificando se o acesso a elas no
poder levar o engenheiro social a acessar informaes sigilosas da empresa;
d) o uso da terminologia interna pode fazer com o que o engenheiro social parea assumir
autoridades e conhecimento;
44

ANAIS ELETRNICOS V ENUCOMP

e)evitar a divulgao dos telefones diretos dos CEOs ou diretos para pessoas desconhecidas.
Elaborar uma poltica de identificao positiva pode auxiliar no fornecimento dessas
informaes somente aos colaboradores da empresa;
f) ter uma poltica escrita e bem divulgada sobre a divulgao de informaes de cdigo
contbeis dos grupos de trabalho e departamentos;
g)verificar sempre a identidade do solicitante juntamente com a necessidade que o requisitante
tem que saber;
h) os funcionrios devero ser treinados a negar educadamente alguma informao at que a
solicitao possa ser verificada. As polticas e procedimentos da empresa com relao
divulgao de informao no pblica devem ser sempre seguidos.
Portanto, trazendo isso realidade corporativa, fica evidente que combater um
engenheiro social um dos mais difceis papis, at mesmo para os mais experientes CSO, pois
depende da colaborao de todos da empresa. Essa colaborao s possvel de acontecer com
um mnimo nvel de maturidade em segurana da informao, e para alcanar isso, uma das
aes que mais apresenta resultado so as polticas de conscientizao de usurios (CORREIA,
2011).

3.6. Conscientizao e Treinamento em Segurana


Um programa de conscientizao e treinamento deve ser desenvolvido de acordo com os
motivos pelo qual as pessoas so vulnerveis aos ataques. Um estudo realizado por Robert B.
Cialdini durante 50 anos resumiu seis tendncias bsicas da natureza humanautilizadas pelos
engenheiros sociais (MITNICK, 2003, p.12).
Autoridades: as pessoas tm a tendncia de atender solicitaes que so feitas por pessoas com
autoridades ou que esto autorizados a fazer tal solicitao.
Afabilidade: as pessoas tm a tendncia de atender solicitaes quando o solicitante se faz
passar por algum agradvel ou com interesses, crenas e atitudes semelhantes aos da vtima.
Reciprocidade: costumamos a atender a solicitaes quando acreditamos que recebemos algo de
valor como retribuio.
Consistncia: aps fazer um comprometimento pblico ou adotar uma causa as pessoas tm a
tendncia de atender as solicitaes para no parecem pouco confiveis ou indesejveis.
Validao Social: o cooperativismo quando a ao parece estar de acordo com aquilo que as
pessoas esto fazendo aparentando estar de forma correta e apropriada.
Escassez: as pessoas costumam cooperar quando o objeto que est sendo procurado est em falta
ou disponvel por um curtoperodo de tempo e que outras pessoas esto competindo por ele.
O programa de conscientizao e treinamento deve visar mudana de comportamento
dos funcionrios motivando-os a querer fazer parte do programa protegendo os ativos da
empresa e tambm as suas prprias informaes. Ele deve atingir cada pessoa que tem acesso as
informaes confidenciais ou aos sistemas corporativos de computadores. Deve ser realizado de
forma contnua e atualizado sobre as novas ameaas e vulnerabilidades e divulgado a todos os
funcionrios da corporao fazendo com que eles aprendam que cada colaborador tem um papel
importante na defesa contra tentativa de invaso aos dados confidenciais.
45

ANAIS ELETRNICOS V ENUCOMP

Por definio, a engenharia social envolve algum tipo de interao humana.Com


frequncia, um atacante usa vrios mtodos de comunicao e tecnologias para tentar atingir o
seu objetivo. Por esse motivo, um programa de conscientizao bem feita tenta abortar alguns ou
todos estes itens:
a) as polticas de segurana relacionadas com senhas de computador;
b) o procedimento de divulgao de informaes ou material confidencial;
c) a poltica de uso do correio eletrnico, incluindo as medidas para evitar ataques maliciosos de
cdigo;
d) a responsabilidade de questionar as pessoas que esto nas instalaes sem o crach;
e) como determinar a classificao das informaes e as medidas adequadas para proteger as
informaes confidenciais;
f) a eliminao adequada de documentos confidenciais e mdia de computador que contenham,
ou que j tenham contido material confidencial.
O programa de conscientizao deve ser realizado de forma constante, alm de ser criativo e
utilizar todos os canais disponveis de comunicao para que todos os colaboradores tenham
acesso s mensagens e possam ter em mente os bons hbitos de segurana. Outra ttica que pode
ser utilizada a linguagem no qual as mensagens so redigidas evitando que elas tornem
familiares demais para serem ignoradas (MITNICK; SIMON, 2006).

3.7. O que Hardening ?


Segundo o WikipediaHardening um processo de mapeamento das ameaas, mitigao
dos riscos e execuao das atividades corretivas com foco na infraestrutura e objetivo principal
de torn-la preparada para enfrentar tentativas de ataques.
Muitos administradores sem muita experiencia em segurana preparam seus servidores
com uma instalao bsica e, depois que suas aplicaes j esto funcionando eles a deixam da
maneira que est. Eis que muitas vezes surge a seguinte frase Ah, j esta funcionando, ento
est bom!, e ai que est o maior problema: achar que est bom.
O Sistema Linux torna-se bastante seguro uma vez devidamente trabalhado. E por isso
que deve ser aperfeioado suas configuraes padres. Apesar de ser seguro quando
devidamente configurado possvel torn-lo ainda mais seguro. Adotar tcnicas de hardening
ter que pensar em trs fatores: Segurana, risco e flexibilidade. necessrio saber dosar muito
bem esses trs fatores para levar o sistema a uma tima produtividade e segurana.
Sabe-se que no possvel ter 100% de segurana, mas, quanto mais segurana menos
risco mas tambm pouca flexibilidade, ou seja uma razo inversa proporcional. Por outro lado,
se h grande flexibilidade no servidor, que permita qualquer tipo de programa nele, a segurana
ficar baixa e os riscos vo aumentar (MELO, 2006).
Tabela 5.2 para visualizar uma representao grfica desses cenrios.

Segurana

Risco

46

Flexibilidade

ANAIS ELETRNICOS V ENUCOMP

No h uma regra direta para esses trs fatores representados na Tabela 5.2, isso vai
depender de cada situao, de acordo com o tipo de necessidade. Por isso toda implentao de
um servidor deve ser bem definida antes de ser feita, nem que ela tenha que ser desenhada no
papel e analisada por vrias vezes.
Embora as tcnicas de hardening sejam de extrema importncia, elas no se aplicam em
todas as situaes. Cada caso um caso. preciso analisar e descobrir o procedimento que ser
mais adequado para a necessidade em questo. Outro ponto importante que ela focada na
camada de userland. Hardening composto por 4 etapas bem definidas so elas:
1 Mapeamento das ameaas
Ameaas qualquer evento que possa gerar impacto negativo em nossos ativos. Ex:
usario insatisfeito, incndio, falata de recurso. Pra uma ameaa poder se concretizar ela
necessita de uma vulnerabilidade. Mesmo porque vulnerabilidade sozinha no faz nada. Quando
se tem diversas vulnerabilidades e ameaas que possam comprometer nosso ambiente
explrorando essa vulnerabilidade, temos um risco.
Dessa forma, entto ameaas so circunstncia e incidentes que podem gerar impactos
negativo explorando uma vulnerabilidade tornando um potencial risco.
2 Mitigao do Risco
Visa reduzir/eliminar os riscos ao nvel aceitvel, mas qual o nivelaceitavel ?aquele que
meu ambiente pode trabalhar adequadamente de forma segura a zelar pelos 3 pilares da
segurana da informao e que esteja proteigo contra ataques.
H 3 formas de lidar com os riscos:

Evitar o risco: Medidas so tomadas para eliminar a ameaa de tal forma que a ameaa
no leve a um incidente.

Suportar / Aceitar o risco: Considera que certos riscos so aceitos. Isto pode acontecer
quando o custo da medida de segurana execede o dano. Nesta estratgia a organizao vai optar
por medidas de segurana repressivas. Ex: se houver um incndio na sala deve-se apagar o fogo
com o extintor de incndio.

Neutralizar o risco Tomar o risco neutro: Medidas so tomadas mesmo que as


ameaas j no se manifestam mais, mas se por ventura venham a se concretizar, o resultado do
dano minimizado. Nesta estratgia a organizao pode optar pela combinaao de medidas
preventivas, detectivas e repressivas.
3 Aes corretivas e preventivas
Aes Corretivas e preventivas para os Riscos de TlAs aes corretivas e preventivas
fazem parte do dia-a-dia dos tcnicos e gerentes operacionais de TI. So inerentes s suas
funes e atreladas aos riscos do negcio sob sua responsabilidade. recomendvel que as aes
preventivas
sejam
mais
utilizadas
queascorretivas.
As aes preventivas devem estar previamente oradas, contratadas, acompanhadas e
atuantes. Podem se restringir a uma ao puramente tcnica controlada internamente ou pode
requerer uma ao externa (fornecedores, terceiros etc). As aes Preventivas esto atuantes pr47

ANAIS ELETRNICOS V ENUCOMP

ocorrncia do Risco. Por outro lado as aes corretivas so ativadas ps-ocorrncia do Risco.
Podem ser o ltimo estgio antes do acionamento de um Plano de Contingncia.
Aes corretivas em demasia podem ser o resultado de um planejamento ou operaes
inadequadas ou mesmo a falta deles. Aes corretivas, na maioria das vezes ocorrem de forma
emergencial, sem planejamento e dependendo do procedimento e das ferramentas adotados
podem ser mais nocivas para o ambiente de Tl do que benficas.
Podem ser evitadas caso haja aes Preventivas.Um exemplo clssico a gesto de
servidores: requerido que este passe por manutenes preventivas de hardware peridicas
(disco, memria, capacidade, performanceetc), assim como requerido tambm que seu
ambiente operacional (sistema operacional, software gerenciador de banco de dados etc) seja
atualizado permanentemente de acordo com as orientaes do fornecedor. No havendo
manutenes e atualizaes preventivas Hardware e Software, riscos de indisponibilidade do
ambiente
so
potencializados.
As aes preventivas possibilitam uma gesto de menos risco. No caso citado, contratos
de manuteno e suporte tcnico junto a fornecedores e terceiros; treinamento tcnico ao pessoal
interno e outras aes impedem que haja exposio e perdas financeiras da empresa em funo
de indisponibilidade dos sistemas/servios (IETEC-Instituto de Educao Tecnolgica).
4 Estratgia de Segurana
Antes de decidir implementar um sistema de segurana um firewall por exemplo
importante ter o conhecimento de algumas estratgias bsicas empregadas na construo destes,
visando uma maior segurana e confiabilidade no firewall so mtodos que podem e devem ser
analisados.
Privilgio Mnimo: Garantir que o usurio s tenha acessoaos recursos que ele necessita ter
acesso. Tomando o cuidado de no atribuir privilgios menores que o necessrio, pois desta
forma, tal objeto no conseguir realizar suas tarefas. Este mtodo largamente utilizado,
sendo importante para eliminar ou amenizar os danos causados por pessoas mal
intencionadas.
No contexto de Internet, existem vrios exemplos:

Todo usurio no precisa acessar todos os servios de Internet existentes;

Todo usurio no precisa modificar todos os arquivos em seu sistema;

Todo usurio no precisa saber a senha de root (administrador) da mquina;

Todo administrador de sistema no precisa conhecer as senhas de root de todos os


sistemas;

Todo sistema no precisa acessar todos os arquivos de todo outro sistema.

Muitos dos problemas se segurana comuns na internet podem ser evitados com a
utilizao deste princpio. Por exemplo, o Sendmail um alvo muito visado pelos atacantes,
devido sua complexidade e o fato de que ele funciona acoplado ao root. O nvel de complexidade
deste daemon aumenta a ocorrncia de bugs, isto implica que, programas privilegiados devem
ser to simples quanto possveis. Caso um programa complexo exija privilgios acentuados,
48

ANAIS ELETRNICOS V ENUCOMP

devemos procurar meios de separar e isolar as partes que necessitam destes privilgios das que
no precisam (MELO, 2006).

Segregao de funo: Consiste na separao entre as funes de autorizao, aprovao


de operaes, execuo, controle e contabilizao, de tal maneira que nenhum funcionrio
detenha poderes e atribuies em desacordo com este princpio de controle interno.
A segregao de funes probe o usurio de, exercendo certa atividade, executar outra
atividade ao mesmo tempo que implique em risco operacional para o negcio. A hierarquia
organizacional reflete a estrutura dos papis desempenhados pelos colaboradores dentro da
organizao.
Vrias normas e regulamentos governamentais, como Sarbanes-Oxley (SOX), COBIT,
ISO/IEC 27002, recomendam a implementao de controles, como o Perfil por Funo, como
forma de seguir as polticas de acesso. Mas para que os controles funcionem de maneira
adequada, extremamente importante que as pessoas tenham treinamentos corretos nos sistemas
de informao e conscientizao nos temas de segurana da informao.

Segurana por Obscuridade: um princpio nada confivel, pois consiste unicamente


em ocultar informaes.
Exemplos prticos deste mtodo so:

colocar uma mquina na Internet e achar que ningum tentar invadi-la, simplesmente
porque voc no contou a ningum sobre ela;

abrir um servidor Apache em uma porta diferente para que ningum o utilize, a no ser as
pessoas que voc informou sobre sua existncia;

configurar sua rede de forma que usurios internos vejam as informaes de uma maneira
e usurios externos (Internet) no consigam ver tais informaes, como portas e servios
prestados em seus servidores.

Observe alguns pontos

sempre utilize esta tcnica em conjunto de outras, pois manter a segurana apenas atravs
da obscuridade muito ruim;

no anunciar algo no o mesmo que ocult-lo;

utilizar um sistema de criptografia desconhecido, no garante segurana nenhuma


(MELO, 2006);

Segurana em Profundidadeou em camada: implementar o mximo de controles


possveis no ambiente pra proteger o ativo. Este princpio de segurana destinado preveno
dos acidentes, e a minimizao das respectivasconsequncias, evitando que um problema isolado
se alastre pelo sistema; instituindo mltiplos, redundantes e independentes nveis de proteo. A
idia aqui no depender de um nicomtodo de defesa, instalando vrios nveis de proteo.
Tornando a tentativa de invaso arriscada demais ou cansativa demais para os atacantes. Isto
porque as chances de violar um nvel de proteo do sistema so muito maiores do que as
chances de violar um sistema com vrios nveis de segurana(MELO, 2006).

49

ANAIS ELETRNICOS V ENUCOMP

3.8. Segurana no Sistemas de Arquivos


Sempre que o sistema Linux instalado, as boas prticas de instalao aconselha
particionar o disco e a colocar os principais diretrios em partio separadas, isso proporciona
uma maior segurana, pois cada partio tem sua tabela separada.
Caso o diretrio /est em uma partio e o /home em outra, no caso de algum problema
no sistema ou at uma reinstalao, no perderia as informaes no diretrio
/home.Entretanto,segurana de um particionamento no apenas isso. Todas essas parties so
montadas no diretrio, e um erro que muitos administradores de sistema Linux cometem no
ler a documentao para conhecer melhor os recursos e descobrir que o
camandomountpossibilita a utilizao de algumas opes muito interessante, que permitem
melhorar muito a segurana nas parties.
Caso todos os diretrios estivessem na mesma partio, no /, no seria possvel ter essas
opes e usufruir desses recursos. possvel retirar a permisso de Suid bit dos binrios, mas s
isso tambem no resolveria. Vamos cortar o mal pela raiz, com essas opes do mount, dizendo
que na partio em questo os binrios com permisso de Suid bit no tero efeito, entre outras
configuraes.
Conformidade com as recomendaes
A segurana em sistemas de arquivos, a norma ABNT NBR ISO/IEC 27002:2005,
recomenda, no item 10.4, que devemos proteger a integridade do software eda informao.
Execuo do procedimento
A primeira opo do mount o nosuid,que faz com que binrios com permisso de Suid
bit no surtam efeito na partio na qual est definido.
Ex: prtico, adicionar um usurio.
# adduser teste
Faa uma cpia das shells do seu sistema para o diretrio home desses usurio e atribua as shells
a permisso de Suid bit.
# cp /bin/*sh /home/teste
# chmod 4755 /home/teste/*sh*
Logar em outro terminal com o usurio que foi criado e teste executar uma dessas shells.
$ cd /home/teste
$ ./sh
$ id
Na saida do comando id, podemos ver que esse usurio conseguiu permisso de root.

50

ANAIS ELETRNICOS V ENUCOMP

OBS.: Recomenda-se, para fins de melhor conhecimento do sistema, que esse teste seja feito
em todas as shells disponveis.
Para resolvermos isso, vamos remontar a partio onde est montada o /home, mas agora
com a opo de nosuid.
# mount -o remount,rw,nosuid /home
# mount
O camandomountsem parmentros nos mostra quais as parties esto montadas e suas
respectivas opes.
Com a partio remontada com nosuid, faa o teste novamente e veja que as asshells
continuam com o suid bit ativado. Entretanto, quando forem executadas, no vo mais
possibilitar o acesso no nvel de root.
Outra opo que pode ser utilizado o noexec, que impossibilita a execuo de qualquer
binrio ou arquivo executvel dentro da partio na qual essa opo est ativa.
Essa opo pode ser aplicada a todos os diretrios, mas um clssico exemplo aplic-la
aos diretrios /home e /tmp. Crackerspodem ser aproveitar do diretrio /tmp, onde por padro
qualquer usurio pode introduzir backdoors ou qualquer outro programa malicioso para ter um
acesso completo ao seu sistema.
O mesmo exemplo realizado com o nosuid.Agora ser remontar a partio com a opo
noexece tentar executar umas shells que copiamos para o /home.
# mount -o remount, rw,noexec /home
# mount
# ./sh
Observe que no foi possvel executar a shell. Na tentativa de execut-las, retornou a
mensagem permisso negada; nessa partiao, nada de execuo.
Uma ltima opo que podemos utilizar o noatime. Ele no especificamente uma
opo para a questo de segurana, mas sim para a questo de performace, pois faz com que o
kernel do linux execute uma rotina a menos quando o noatime esta definido e destinado
atuaizao do tempo de acesso de arquivo.
Primeiro conhecer o comando stat, utilizado para verificar o status de um arquivo ou de
um sistema de arquivos.
# stat /etc/passwd
A saida desse comando nos retorna informaes importantes, mas vamos nos focar nas
informaes do Access(atime), do Modify (mtime)e do Change (ctime).Veremos suas
diferenas.
Ser criado dois arquivos, um no diretrio /root e outro no /tmp, assumindo que o /root e
o /tmp esto em partioes diferentes.
# touch /root/teste1
51

ANAIS ELETRNICOS V ENUCOMP

# touch /tmp/teste2
Verificar o seu status, mas focando nas informaes do Access,do Modifye do Change.
# stat /root/teste1
# stat /tmp/teste2
Diante das primeiras informaes, vamos fazer os testes e ver o que ser mudado. Vamos
visualizar o contedo dos arquivos, supondo que eles tenham algum contedo, e logo em seguida
ser verificado o status dos arquivos.
# cat /root/teste1
# cat /tmp/teste2
# stat /root/teste1
# stat /tmp/teste2
Veja que os Accessdos arquivos esto diferentes. Quando ns visualizamos o contedo
dos arquivos, fizemos um acesso a ele, logo o seu tempo de acesso (Access) foi modificado.
Agora mais um teste nesses arquivos. Ser modificado sua permisso e logo em seguida
visualizar o seu status.
# chmod 777 /root/teste1
# chmod 777 /tmp/teste2
# stat /root/teste1
# stat /tmp/teste2
Com ateno observer que o Access dos arquivos esto diferentes. Quando
visualizado o contedo dos arquivos, feito um acesso a ele, logo o seu tempo de acesso
(Access) foi modificado.
Ser feito um teste nesses arquivos. Modificar sua permisso e logo em seguida visualizar
o seu status.
# chmod 777 /root/teste1
# chmod 777 /tmp/teste2
# stat /root/teste1
# stat /tmp/teste2

Percebe-se que agora o Access no foi modificado, mas o Changefoi. Sempre que
mudarmos a permisso de um arquivo, o Change ser mudado, registrando a ltima data e hora
da mudana.
Agora ser inserido um contedo nesses arquivos e logo em seguida verificar o que foi
modificado.
# echo abc> /root/teste1
52

ANAIS ELETRNICOS V ENUCOMP

# echo abc> /tmp/teste2


# stat /root/teste1
# stat /tmp/teste2
Percebe-se que o Change foi alterado novamente, mas ele no foi alterado sozinho: o
Modify tambm foi, pois agora no ocorreu s uma mudana de permisses, mas uma alterao
no contedo do arquivo.
Veremos a diferena entre o Access,o Modify e o Change,podemos fazer a alterao na
partio e ver o que ser melhorado.
Agora remontar a partio onde foi montado o diretrio /tmp com a opo noatime.
# mount o remount,rw,noatime /tmp
# mount
Com a partio remontada com a opo noatime, vamos fazer o primeiro teste que foi
realizado, o de listar o contedo do arquivo, e logo em seguida verificado seu status dos
arquivos.
# cat /root/teste1
# cat /tmp/teste2
# stat /root/teste1
# stat /tmp/teste2
Observe que o Access(atime) do arquivo teste2 dentro do /tmp no foi modificado,
justamente por causa da opo noatime que colocamos na remontagem da partio.
Isso pode ser muito til para os diretrios de logs, onde o acesso feito constantemente
pelo sistema, pois faz com que ookernel deixe de executar uma rotina, o que ajuda sua
performance.
DICA:Essas no so as nicas opes que o comando mount pode nos oferecer.
Para ver todas as opes possveis, consulte o man do comando mount.

53

ANAIS ELETRNICOS V ENUCOMP

Tabela 5.3 : bom exemplo da maneira pela qual podemos aplicar essas opes aos nossos
diretrios que esto montados em parties diferentes.

3.9. Programas Desnecessrios


Aps a instalao de um sistema Linux, devemos nos preocupar se todos os programas
que foram instalados nele so realmente necessrios. Mesmo que tenha sido instalao mas
bsica possvel a verificao de programas sempre uma boa escolha. Lembre-se de que o
servidor no deve conter programas Clientes.
Conformidade com as recomendaes
No que diz respeito a programas instalados, a norma ABNT NBR ISO/IEC 27002:2005
recomenda no Item 11.5.4 que devemos remover todo utilitrio ou software desnecessrio do
sistema aps uma checagem.
Execuo de procedimento
Primeiramente possvel fazer uma pesquisa por todos os pacotes instalados no sistema,
justamente com suas verses. Em seguida, enviamos a uma lista para ser mais bem analisada.
Debian:
#dpkg
/root/pacotes

awk

{print

$2,$3}

sed

1,7d

>

Com esse commando, estaremos pesquisando todos os pacotes instalados. Com o dpkg
feito um filtro somente na segunda e na terceira coluna, que so os nomes dos programas e as
verses. O sed remover as sete primeiras linhas que so importantes para a nossa pesquisa e a
direcionar isso para o arquivo de pacotes dentro do /root.
A retirada dos programas desnecessrios ser de acordo com a situao com que se est
trabalhando. Pode ser que, para um caso especfico, seja necessrio algum programa que, em
outros casos, no seja obrigatrio. importante que isso seja minunciosamente analisado.
Um exemplo o programa wget, que utilizado para fazer download sem a interao do
usurio. Isso pode ser um grande risco para um servidor, j que um cracker pode aproveitar-se de
problemas conhecidos do seu sistema e utilizar o wgetpara baixar programas maliciosos para seu
54

ANAIS ELETRNICOS V ENUCOMP

servidor, tais como exploits, backdoors, entre outros. Isso impossibilitar que ele tenha um fcil
acesso ao servidor ou que mesmo o danifique.
Concluindo o exemplo, se o seu Linux tem o wget, podemos ento remov-lo,
# apt-getremove purgewget
Faa uma anlise completa dos programas que esto instalados por padro no seu Linux e
verifique o que realmente necessrio. Lembre-se de cada caso um caso.
DICA: O sistema Operacional Windows tambm vem com um programa semelhante
ao wget, o tftp. Caso esteja utilizando o Windows, tambm tome cuidado com esse
programa, pois muitos Spywares se aproveitam dele.
Podemos ver que, mesmo o sistema seja instalado no seu modo bsico, ainda existe
programas que podemos ser retirados, pois talvez sejam at brechas de segurana em seu sistema
se forem bem explorados.

3.10.Arquivos com permisso Suid bit


A permisso de Suid bit possibilita que um determinado binrio que s pode ser
executado, por exemplo, pelo usurio root seja executado por outro usurio comum do sistema.
Muitos binrios no sistemaj vm com a permisso de Suid bit, pois alguns binrios que somente
o root pode executar precisam ser utilizados por um usurio. Exemplos clssicos desses
comandos o su, o ping, o passwde muitos outros. Mas em uma coisa devemos pensar: ser que
todas esses binrios que j esto com a permisso de suid bit vo ser utilizados por seus
usurios? Ser que eles precisam de todas esses comandos a disposio?
Mas qual o problema de se ter um Suid bit ativado. O problema pode ser muito grande se
um cracker souber aproveit-lo, explorando vulnerabilidades conhecidos para conseguir uma
shell do root. Podemos pensar no exemplo clssico das shells com permisso de suid bit que
quando executada por um usurio, pode liberar uma shell de root. O administrador tem que
atenta-se para essas coisas. Como o sistema possui muitos binrios com suid bit, problemas
como esses das shells podem passar despercebidos.
Ento o que podemos fazer?
Retirar todas as permisses de Suid bit do sistema de depois vamos setar essas
permisses somente para os binrios que julgamos fundamentais para um usurio. Devemos
pensar sempre que vo existir casos diferentes, ento os binrios que julgamos importantes para
um servidor firewall por exemplo, podem no ser os mesmos para um servidor de e-mail.
Conformidade com as recomendaes
Por recomendao da norma ABNT NBR ISO/IEC 27002:2005, no item 11.6.1, o acesso
informaoe as funes dos sistemas e de aplicaes por usurio e pessoal de suporte deve ser
restrito de acordo com o definido na poltica de controle de acesso.
Execuo do procedimento

55

ANAIS ELETRNICOS V ENUCOMP

Para remover todas as permisses de suid bit dos binrios, temos que fazer uma pesquisa
no sistema e gerar uma lista com todos eles para uma melhor anlise.
Ser criado um diretrio chamado teste dentro do /root para fazermos os nossos testes e em
seguidautilizaremos o comando findpara localizar com Suid bit.
# cd /root
# mkdirteste
# find / -perm -4000 > /root/teste/lista.suid
OBS.: O nmero 4000 representa a permisso de Suid bit, sendo que os trs zeros
so as permisses padres do sistema ( 0 para usurio, 0 para grupo e 0 para outros),
e o 4 representa a permisso a permisso Suid bit. Podemos ter tambm, no lugar do
4, o 2, que Sgid bit, e o 1, que Sticky bit, mas no vamos falar sobre eles aqui.
Faa uma listagem detalhada em um desses binrios para ver como a permisso de suid bit
aparece.
# ls - l /bin/su
Vemos que nas permisses do usurio aparece um s no lugar do x. Isso representa que a
permisso de Suid bit est ativada, mas a permisso de execuo (x) continua-l.
Com a lista gerada, podemos ver qual desses binrios precisa continuar com a permisso
de suid bit. Vamos pegar um exemplo de um Bastion Host, que o Firewall da sua rede.
Podemos deixar dois binrios com o Suid bit setado, que so o passwde o su. Podemos deixar o
passwd para que o usurio possa mudar a sua senha de acesso caso ele seja um administrador e
acesse essa mquina remotamente. Se estamos pensando em um firewall, mas no h motivos
para um usurio comum acessa-lo. J o suvai ser de vital importncia, pois podemos fazer que
tanto local ou remotamente o usurio root no tenha acesso direto. Assim, o administrador vai
logar com seu usurio comum, que pode ter alguns privilgios a mais, e depois utilizar o supara
se tornar o usurio root.
Vamos retirar todas as permisses de Suid bit dos binrios.
# chmod -s -Rv /
Onde:
s - retira a permisso de Suid bit
R - recursivo, do /para baixo
v - o modo verbose (mostra o que est sendo feito pelo comando)
# ls l /bin/su
Logo vamos setar a permisso de Suid bit somente para os dois binrios que desejamos.
56

ANAIS ELETRNICOS V ENUCOMP

# chmod +s /usr/bin/passwd
# chmod +s /bin/su
# ls l /usr/bin/passwd
# ls l /bin/passwd
Com esses comandos, as permisses de Suid bit foram setadas novamente para esses dois
binrios.
Pode ser que, para o servidor que voc esteja configurando s o passawd e o suno seja
suficiente, talvez outros binrios precisem estar com o Suid bit ativado. Cabe analisar o que ser
necessrio para cada tipo de servio.
Uma soluo alternativa que podemos adotar o comando sudo. Como ele podemos definir
somente os comandos queremos para o usurio comum executar como se fosse root.
Instalando o sudo.
#apt-getinstallsudo
Depois que o sudo estiver instalado, editaremos o arquivo /etc/sudores, que onde
definimos quais usurios podem ter acesso aos comandos a serem definidos.
Alguns exemplos:
# vi /etc/sudores
Exemplo 1: teste ALL= /sbin/ifconfig, /sbin/iptables
Neste primeiro exemplo, vamos permitir que o usurio teste, possa executar os comandos
ifconfig e iptablescomo se fosseroot. Dessa maneira, entretanto, ele vai pedir a senha do usurio
na primeira vez que fomos executar esses comandos.
Podemos execut-los da seguinte maneira.
# sudoifconfig
# sudoiptables
Exemplo 2:teste ALL=NOPASSWD: /bin/reboot , /bin/halt
Estamos permitindo que o usurio teste, possa executar os comandos reboot e halt, mas
dessa vez sem que seja necessrio que ele digite a senha (NOPASSWD).
Exemplo 3:teste ALL= /usr/bin/passwd [A-z]*, !/usr/bin/passwd root
Este commando permite que o usurio teste mude a senha de qualquer usurio cujo login
esteja no interlavo de A a Z, exceto o root.
No sistema Linux j vem com a permisso de suid bit ativado em muitos binrios para
facilitar a utilizao deles para outros usurios, mas vimos tambm que nem sempre essa
facilidade uma boa, pois pode gerar brechas de segurana. Fiquemos atentos para esses tipos de
permisses.

57

ANAIS ELETRNICOS V ENUCOMP

3.11. Segurana no Terminal


Quando falamos em segurana, a primeira coisa que vem mente um possvel ataque
remoto. Ento, os nossos servidores que no esto conectados internet no esto correndo
nenhum perigo, certo? Errado, alias, dois fatos errados. No estar conectado diretamente
internet no quer dizer que se est totalmente seguro, pois se um cracker conseguir passar pelo
nosso firewall, ele vai conseguir chegar at os outros servidores que no tem acesso direto
internet, j que entrou em nossa rede interna. O outro fato que um funcionrio mal
intencionado pode ter um acesso local (fsico) ao nosso servidor, diretamente no teclado do
prprio servidor.
Se somos administradores desprevenidos, vamos resolver um problema fora da sala e sem
perceber deixamos o terminal do servidor logado, com usurio de root. Ento, esse funcionrio
mal intencionado poder fazer o que quiser, j que ele finge ser um cara que no entende nada de
informtica, mas na verdade tem um conhecimento maior do que o nosso.
Para esse tipo de situao, podemos aplicar alguns procedimentos.
Conformidade com as recomendaes
No que diz repeito ao software instalado, a norma diz, nos itens 11.5.5 e 11.5.6, que
devemos ter controle sobre os acessos no sistema a fim de evitar acessos no-autorizados e de
no fornecer informaes desnecessrias.
Execuo do procedimento
1.

Desabilitar o uso de CTRL+ALT+DEL

Desabilitar o Ctrl+Alt+Del no sistema Linux pode ser uma boa idia, pois no permitir
que algum pressione uma sequencia de teclas e faa com que o servidor reinicie. Isso bom
principalmente quando seu servidor Linux est no mesmo armrio que um servidor com o
sistema Windows, assim se evita que em algum momento voc pressione Ctrl+Alt+Del no
teclado do Linux pensando que o do Windows.
Edite o arquivo /etc/inittab e comente a linha a seguir:
#ca:12345:ctrlaltdel:/sbin/shutdown t1 a r now
Voc pode tambm mapear as teclas para executar um outro comando qualquer, por
exemplo.
#ca:12345:ctrlaltdel:/bin/echo
desabilitado por segurana

Esse

recurso

foi

Depois das alteraes, precisamos atualizar o arquivo /etc/inittab. Isso feito com o comando
seguinte:
# init q
2.

Limitar o uso dos terminais texto

Dependendo da situao em um servidor, por questes de segurana no muito


interessante deixarmos o login habilitado em todos os terminais texto. Por exemplo, para impedir
o login nos terminais 4,5 e 6 devemos editar o arquivo /etc/inittab e comentar as seguintes linhas:
58

ANAIS ELETRNICOS V ENUCOMP

# vi /etc/inittab
# 4:23:respawn:/sbin/getty 38400 tty4
# 5:23:respawn:/sbin/getty 38400 tty5
# 6:23:respawn:/sbin/getty 38400 tty6
Depois das alteraes, precisamos realizar novamente o arquivo /etc/inittab
# init q
3.

Bloquear o terminal com a varivel TMOUT

No sistema Linux, temos uma varivel que no vem setada por padro. Essa varivel a
TMOUTque controla em quando tempo o terminal ser deslogado.
Primeiro, podemos set-la manualmente com um tempo pequeno para testarmos.
# TMOUT=15
Estamos setando o valor da varivel para 15 segundos. Logo, se o terminal no for
utilizado durante os 15 segundos, ele ser deslogado e o usurio ser obrigado a logar-se
novamente.
Para melhorar, podemos colocar essa varivel dentro do arquivo global da varivel, para
que ela fixe toda vez que o sistema for iniciado.
# vi /etc/profile
If [ id u

-eq 0 ]; then

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/b
in:/usr/bin/X11
else
PATH=/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
fi
if [ $PS1 ]; then
if [ $BASH ]; then
PS1= \u@ \h: \w \$
else
if [ id u eq 0 ]; then
PS1=#
else
PS1=$
fi
fi
fi
59

ANAIS ELETRNICOS V ENUCOMP

TMOUT=180
Export PATH
TMOUTumask 022
Dessa maneira, o sistema voltar para a tela de login se nenhum commando for executado
num intervala de 180 segundo (3 minutos).
4.

Bloquear o terminal com o programa Vlock

Com a varivel TMOUT, fizemos com que o terminal seja deslogado automaticamente
depois de um determinado tempo. Podemos fazer isso tambm manualmente com um programa
chamado Vlock, que pode travar todos os terminais no momento em que quisermos.Instalao do
programa:
# apt-getinstallvlock
Para travar todos os terminais, digite:
# vlock a
O Vlockexecutado com o parmetro a bloqueia o uso de todos os terminais. Os
terminais s sero liberados mediante autenticao com senha do usurio que os travou.
Pequenos detalhes em configuraes, uma varivel e um simples programa podem nos
ajudar a manter nosso servidor seguro, com todos os nossos terminais protegidos.

3.12. Gerenciamento de Privilgios


O usurio root o usurio mais conhecido em sistemas *nix (o termo *nix aborda os
sistemas baseados em Unix). Quando algum cracker ou funcionrio mal intencionado tentar um
acesso ao nosso sistema, seu foco vai ser conseguir senha do usurio root. Se ele tiver sorte e
consegui-la, ter acesso ao nosso sistema. Como evitar isso?
Vamos adotar alguns procedimentos para evitar que o usurio root tenha acesso direto ao
sistema. Ns seremos obrigados a utilizar nossos usurios comuns para logar e depois
utilizaremos o sudo ou su para virarmos root.
Conformidade com as recomendaes
A norma ABNT NBR ISO/IEC 27002:2005, no item11.2.2, estabelece que concesso e
o uso de privilgio devem ser restritos e controlados.
Execuo do procedimento
1. Bloquear o login do root nos terminais texto
No seguro deixarmos o login como root habilitado para os terminais texto. O ideal
bloquear o login do root em todos os terminais texto, logar como usurio comum e, quando for
necessrio a realizao de alguma tarefa administrativa, viramos usurio root usando o comando
su.
Criando o usurio comum
#adduserlix

60

ANAIS ELETRNICOS V ENUCOMP

Uma das maneiras pelas quais podemos bloquear o login do root editar o arquivo
/etc/securetty e comentar as linhas referentes aos terminais que queremos desabilitar para o root.
Vamos comentar as seguintes linhas:
# vi /etc/securetty
# tty1
# tty2
# tty3
# tty4
# tty5
# tty6
# tty7
# tty8
# tty9
# tty10
# tty12
Agora que as linhas dos terminais esto comentadas, podemos tentar nos logar em outro
terminal com o usurio root. Veremos que no teremos sucesso.
Como dissemos, essa uma das maneiras pelas quais se pode bloquear o acesso do root
pelos terminais.
2. Determinar datas de expirao para contas de usurios
Se o nosso servidor for alocar uma grande quantidade de usurios, podemos especificar
datas de expirao para as contas dos usurios. Dessa maneira, se aquele usurio utiliza a sua
conta todos os dias, quando sua senha expirar ele poder modifica-la e renovar a conta. Mas, se
por algum motivo uma conta de um usurio no est sendo utilizada, ela ser desativada no
tempo especificado, dando-nos uma segurana de que essa conta no ser usada com ms
intenes.
Utilizaremos o comando chage, que modifica os parmetros do arquivo /etc/shadown,
onde so feitos esses controles.
Primeiro vamos visualizar a configurao padro de uma conta de um usurio, por
exemplo, o usurio teste.
# chage l teste
E agora faremos algumas modificaes para esse usurio.
# chage M 30 W 5 I 2 teste
# chage l teste
Onde:
-M o tempo mximo da validade da conta.
61

ANAIS ELETRNICOS V ENUCOMP

-W o tempo de aviso.
-I o tempo antes de uma conta ser desativada.
Com essa configurao, estamos dizendo que a conta do usurio vlida por 30 dias.
Quando estiverem faltando 5 dias para a conta expirar, o usurio comear a ser avisado quando
for logar. Depois desses 30 dias, o usurio ter 2 dias para poder modificar a senha e para que a
conta seja renovada. Enquanto ele no fizer isso, no conseguir logar no sistema. Se nesses 2
dias o usurio no modificar a senha, a conta ser desativada e somente o usurio root poder
realtiv-la.
3. Remover shells vlidas de usurios que no precisam delas.
Usurios que no utilizam shell no tm necessidade de t-la. Vamos remover as shells
vlidas de todos os usurios que no voexecutar oficialmente login no sistema atravs do
terminal local (tty) ou via ssh. Combinado a isso, criaremos um usurio estratgico pertencente
ao grupo de administradores, que tambm criaremos. Os usurios pertencentes a esse grupo tero
permisso para realizar o logine posteriormente usar o su para se tornar root.
Primeiro vamos criar o grupo administradores. Logo em seguida, criaremos um usurio
administrador e o adicionaremos ao grupo.
# groupadd administradores
# addusertoor
# gpasswd atoor administradores
Vamos visualizar o arquivo /etc/passwd. Veja que todos os usurios de sistema tambm
possuem shells vlidas.
# cat /etc/passwd | less
Criaremos um script para remover todas as shells vlidas dos usurios, menos daqueles
que ns especificamos.
# cd /root
# vi invlidos.sh
# ! /bin/bash
For USER in $(cat /etc/passwd | cut f l d : | grep v root |
grep v toor | grep v lix)
do
usermod s /bin/false $USER
done
# ./invlidos.sh
Esse script, ele executa um for que pegar somente a primeira coluna do arquivo
/etc/passwd, que so os nomes dos usurios que no esto especificados no grepv. Isso
armazenado dentro da varivel USER. Logo depois, com o comando usermod, esse script passa
todas as shells dos usurios que esto na varivel USER para /bin/false, ou seja, uma shell
invlida.
62

ANAIS ELETRNICOS V ENUCOMP

Depois da execuo do script, visualize novamente o arquivo /etc/passwd e veja como


ele ficou.
# cat /etc/passwd | less
Repare que todas shells dos usurios passaram a ser /bin/false, menos as dos usurios
root, toor e lix. Podemos adotar a poltica de que, sempre que criarmos um usurio novo, ele seja
criado com uma shell invlida. Caso ele precise de uma shell vlida depois, podemos mudar isso
no arquivo /etc/passwd.
Para fazer isso, podemos editar os seguintes arquivos.
# vi /etc/adduser.conf
Nesse arquivo podemos mudar a varivel DSHELL para uma shell invlida.
DSHELL=/bin/false
Dessa maneira nossos usurios seriam criados por padro com a shell/bin/false, uma shell
invlida. Finalizando essa parte de shells, podemos visualizar o arquivo /etc/shells. Ele um
arquivo texto que contm os nomes de caminho completos das shells de login vlidos. Esse
arquivo consultado pelo comando chsh (utilizado para mudar a shell de um usurio) e fica
disponvel para consulta por outros programas.
# cat /etc/shells
preciso ficar atento, porque h programas que consultam esse arquivo para descobrir se
um usurio um usurio normal. Por exemplo, daemos (processos que so executados em
background) de ftptradicionalmente desaprovam acessos aos usurios com interpretadores de
comando no includos nesse arquivo.

3.20.Concluso
O ambiente computacional e todas as suas tecnologias, com as mais modernas
arquiteturas, plataformas e inmeras formas de garantir mais segurana da informao ainda no
, e provavelmente no ser, suficiente para conter o mpeto curioso, criativo e astuto do crebro
humano.
A engenharia social, combinada com a fragilidade humana, contribui para um dos pontos
mais vulnerveis que esto presentes em todas as organizaes e que sempre existiro, pois no
h uma receita milagrosa de como transformar um ambiente que manipulam informaes em um
local totalmente seguro.
Uma medida para dificultar o roubo ou o acesso indevido a essas informaes so as
condutas, os treinamentos, os hbitos e o conhecimento de tcnicas deHardening em servidores,
alm da responsabilidade que se deve ter ao manipular, transmitir e descartar informaes, sejam
elas confidenciais ou no.
Se a informao no for considerada uma fonte preciosa ser preocupante o agravamento
da falta de instrues e conscientizaes por parte dos funcionrios e se tornar cada vez mais
difcil a implementao da segurana da informao, pois o desafio de manter as informaes
confidenciais est cada vez menor e est cada vez mais fcil de encontr-las e utiliz-las.

63

ANAIS ELETRNICOS V ENUCOMP

importante ter em mente que a tarefa de se possuir profissionais capacitados e aptos a


trabalharem com segurana realmente difcil, porm um investimento que no deve ser
encarado como uma despesa a ser adicionada ao oramento. Deve ser realizado de forma
constante, pois seu retorno ser em longo prazo e de acordo com as mudanas culturais da
organizao.
Mesmo o tema sendo discutido nas empresas, ainda assim percebe-se certo grau de
desconhecimento em segurana da informao por partes dos gestores e administradores de TI,
que ainda tm a mentalidade de que as coisas s acontecem aos outros... de modo que isso
reflete no ambiente corporativo. A verdade que se tem um longo caminho para ser alcanado e
diante dos resultados pode-se perceber que as empresas j esto mais preocupadas em relao as
suas informaes geradas ao longo do dia, que devem ser tratadas e gerenciadas para que no
ocorram situaes como a imagem da empresa atrelada em fraudes ou vitimas de cibe
criminosos.

Referncias
AMARAL,
Bruno
do.
Segurana
proativa.
Disponvel
em
<http://www.decisionreport.com.br/publique/cgi/cgilua.exe/sys/start.htm?infoid=9819&sid=4
2> Acesso em: 12 de Outubro de 2012.
ARAUJO, Eduardo Edson de. A vulnerabilidade humana na segurana da informao. 2005.
Disponvel em
<http://svn2.assembla.com/svn/GSIDEI/
Bibliografia/Monografia%20Interven%C3%A7%C3%A3o%20humana%20Seguran%C3%A7
a.pdf>. Acesso em: 01 de Outubro de 2012.
ASSOCIAO BRASILEIRA DE NORMAS TCNICAS. ABNT NBR ISO/IEC 27001:2006.
Rio de Janeiro, 2006.
ASSOCIAO BRASILEIRA DE NORMAS TCNICAS. ABNT NBR ISO/IEC 27002:2005.
2.ed. Rio de Janeiro, 2005.
BR-LINUX.ORG. Pane na telefnica: funcionrios suspeitam de sabotagem. Disponvel em:
<http://br-linux.org/2008/pane-na-telefonica-funcionarios-suspeitam-de-sabotagem/> Acesso
em: 15 de outubro de 2012.
CERT.BR. Incidentes reportados ao CERT.br janeiro a maro de 2011. Disponvel em:
<http://www.cert.br/stats/incidentes/2011-jan-mar/total.html> Acesso em: 01 de Outubro de
2012.
COMPUTERWORLD. Falhas de segurana em redes sociais geram risco para o negcio. Maro
2010. Disponvel em: <http://computerworld.uol.com.br/gestao/2010/03/04/falhas-de
seguranca-em-redes-sociais-geram-risco-para-o-negocio/> Acesso em: 10 de Outubro de
2012.
CORREIA, Marco. Engenharia social no Governo do Rio de Janeiro percebeu?. Disponvel em:
<http://marcoacorreia.wordpress.com B/2011/04/03/engenharia-social-no-governo-do-rio-dejaneiro-percebeu/>Acesso em: 18 de Outubro de 2012.
CORREIA, Marco. Segurana da informao novidade nas empresas. Disponvel em:
<http://marcoacorreia.wordpress.com/ 2011/10/12/seguranca-da-informacao-e-novidade-nasempresas/>Acesso em: 14 de Outubro de 2012.
64

ANAIS ELETRNICOS V ENUCOMP

CORREIO 24 HORAS. Luciano Huck tem senha do Twitter roubada e brinca com a situao.
Disponvel
em:
<http://correio24horas.globo.com/noticias/noticia.asp?codigo=57227&mdl=49>. Acesso em:
15 de Outubro de 2012.
DAWEL, George. A segurana da informao nas empresas. Rio de Janeiro: Editora Cincia
Moderna Ltda., 2005.
DECISION REPORT. A evoluo das atividades maliciosas.Disponvel em
<http://www.decisionreport.com.br/publique/cgi/cgilua.exe/sys/start.htm?from_info_index=1
53&infoid=8903&sid=4> Acesso em: 27 de Outubro 2012.
ESTADO. Hackers espalham vrus com oferta de vacina antigripe H1N1. Disponvel em:
<http://www.estadao.com.br/noticias/geral,hackers-espalham-virus-com-oferta-de-vacinaantigripe-h1n1,475155,0.htm> Acesso em: 15 de Outubro de 2012.
FONTES, Edison Luiz Gonalves. Segurana da informao:o usurio faz a diferena. So
Paulo : Saraiva, 2006.
FONTES, Edison Luiz Gonalves. Vivendo a segurana da informao:orientaes prticas para
as organizaes. So Paulo :Sicurezza Brasiliano & Associados, 2000.
GUELMAN, Luiz. Conscientizao de usurios: como envolver seu pblico com a Segurana da
Informao. 2006. Disponvel em: <http://www.modulo.com.br/comunidade/entrevistas/616conscientizacao-de-usuarios-como-envolver-seu-publico-com-a-seguranca-da-informacao>.
Acesso em: 30 de Outubro de 2012.
MITNICK, Kevin D. A arte de enganar. So Paulo : Pearson Education do Brasil Ltda, 2003.
MITNICK, Kevin D.; SIMON, Willian L. A arte de invadir. So Paulo: Pearson Education do
Brasil Ltda 2006.
MDULO SECURITY SOLUTIONS.10 Pesquisa Nacional de Segurana da Informao.2006,
Disponvel em <http://www.modulo.com.br/media/10a_pesquisa_nacional.pdf> Acesso em:
24 de Outubro de 2012.
MOREIRA, Nilton Stringasci. Segurana mnima: uma viso corporativa da segurana de
informaes. Rio de Janeiro: Axcel Books, 2001.
REUTERS. Hackers espalham vrus com oferta de vacina antigripe H1N1. 2009, Disponvel em
<http://br.reuters.com/article/internetNews/idBRSPE5B00SZ20091201?sp=true> Acesso em:
24 Outubro 2012.
MELO, Sandro. BS7799 Linux da Ttica Prtica em Servidores. So Paulo: Alta Books, 2006
SEMOLA, Marcos. Gesto da Segurana da Informao: uma viso executiva. Rio de Janeiro:
Campus, 2002.
SLADE, Robert. Exclusivo: entrevista com Rob Slade especialista em vrus de computadores.
Jun
2006.
Disponvel
em:
<http://www.modulo.com.br/site?from%5Finfo%5Findex=8&infoid=791&lng=br&sid=91>
Acesso em: 24 de Outubro de 2012.
SYMANTEC.InternetSecurity Threat Report, volume 16.2010, Disponvel
<http://www.symantec.com/threatreport/#> Acesso em: 24 de Outubro de 2012.
65

em:

ANAIS ELETRNICOS V ENUCOMP

TECHOJE.
Planos
de
Contingncia
em
TI.
<http://www.ietec.com.br/site/techoje/categoria/detalhe_artigo/219>
novembro de 2012.

Disponvel
em
Acesso em: 01 de

TERRA TECNOLOGIA. Erro de programao inofensivo vira ameaa segurana. Disponvel


em: <http://tecnologia.terra.com.br/ interna/0,,OI1790208-EI4805,00.html> Acesso em: 15 de
Outubro de 2012.
TI EXAMES. Curso preparatrio para o exame ISO/IEC 27002 FOUDATION, 2011.
XAVIER, Herberth. Furto na Petrobrs traz tona espionagem industrial. 2008. Disponvel em:
<http://www.abin.gov.br/modules/articles/article.php?id=2008> Acesso em: 15 de Outubro de
2012.
WIKIPEDIA, Hardening, Disponvel em: <http://pt.wikipedia.org/wiki/Hardening> Acesso em :
30 de Outubro de 2012.

66

ANAIS ELETRNICOS V ENUCOMP

Desenvolvimento Web com Framework Primefaces


Jailson Nunes Leocadio, Roniere da Silva Sousa e Evaldo Svio Silva Arajo da
Costa

Abstract
This chapter describes the contents discussed in short course about Web Applications
Development using the framework Primefaces. To this, it is presented a theoretical context of the
technologies used for the construction of systems in order to situate and connect the roles in
development. Understanding the characteristics of JavaServer Faces provides a deeper
understanding of how Primefaces components work and how is their communication with each
other and with the application logic. It is presented the set of elements of the JSF libraries,
HTML and Primefaces.
Resumo
Este captulo descreve os contedos discutidos em minicurso sobre o Desenvolvimento de
Aplicaes Web com utilizao do framework Primefaces. Para isso, feito a contextualizao
terica das tecnologias empregadas para a construo dos sistemas, no sentido de situar e
relacionar o papel de cada uma no desenvolvimento. Compreender as caractersticas do
JavaServer Faces possibilita entender mais profundamente como funcionam os componentes do
Primefaces e como se d a comunicao deles entre si e com a lgica da aplicao. Apresentase o conjunto de elementos das bibliotecas JSF, HTML e do Primefaces.

4.1. Aplicaes web

As aplicaes web surgiram e agregaram benefcios sobre os modelos de sistemas at ento existentes.
Isso ocorreu devido ao estabelecimento da rede mundial de computadores e do grande fluxo de
informaes que constantemente flui dentro das organizaes, e entre as instituies e as pessoas. Esse
tipo de aplicao, geralmente, implementa caractersticas de dinamismo, rapidez, disponibilidade,
atualizao e portabilidade, que so propriedades necessrias para sobreviver frente ao mercado e ao
modelo social atual. Por isso, as experincias na utilizao de tecnologias de desenvolvimento, levam
criao de modelos e padres que agregam as melhores prticas e tecnologias que proporcionam a
concepo de produtos que atendam a todas essas demandas de forma simples e segura.

4.2. O Primefaces como uma extenso do JavaServer Faces

O framework open-source Primefaces corresponde a uma biblioteca de componentes UI (User Interface)


que extende os componentes nativos do JavaServer Faces (JSF). Sendo assim, compreender as
caractersticas e o modo de funcionamento de uma aplicao desenvolvida em JSF corresponde em
conhecer tambm a dinmica do Primefaces. Nos tpicos a seguir, ser visto importantes tecnologias
67

ANAIS ELETRNICOS V ENUCOMP


que tornam possvel o desenvolvimento de aplicaes web com Java, e como elas trabalham em
conjunto com o framework de viso aqui em estudo.

4.2.1. JavaServer Faces

Mantido pelo comit JCP (Java Community Process) com o Java Specification Request (JSR 314), o
JavaServer Faces uma tecnologia que se apresenta no formato de um framework, utiliza o padro de
arquitetura MVC para o desenvolvimento de aplicaes web em Java e emprega um modelo de
interfaces grficas baseado em eventos. Divulgado inicialmente em 2004, atualmente est em sua
verso 2.
Ele possui dois grupos de componentes: a primeira so as Java APIs que modelam e definem os
componentes UI; a segunda so as taglibs JSP que realiza a representao dos componentes em uma
pgina JSP e tambm a conexo dos objetos no backend da aplicao. A API ainda responsvel pela
manipulao dos componentes e seu ciclo de vida (estados), handle-event, validao server-side,
converso de dados, acessibilidade, alm do suporte a internacionalizao.
De acordo com diversos autores [Marafon 2006], [Rossi 2012], utilizar o padro JSF proporciona
diversos ganhos no desenvolvimento de aplicaes web, dentre esses benefcios, cita-se: reusabilidade
de componentes nas pginas, possibilidade de extenso pela utilizao de bibliotecas de terceiros, a
existncia de IDEs e plugins adaptados para o desenvolvimento de sistemas que utilizam o framework;
facilidade de construo de novos componentes, entre outros.
A primeira proposta de especificao para o JSF prope oito principais metas:

Criar um framework de componentes GUI (Graphical User Interface) padro que pode ser
aproveitado para a criao de ferramentas de desenvolvimento, que permitam criar interfaces
grficas de alta qualidade e gerenciar as conexes entre os componentes e o comportamento da
aplicao;

Definir um conjunto de classes base simples para os componentes GUI, estados dos
componentes, e eventos de entrada. Estas classes controlaro o ciclo de vida dos componentes
e a persistncia de dados referentes a eles;

Fornecer um conjunto de componentes comuns, incluindo elementos padro HTML de entradas


de formulrio. Eles sero derivados do conjunto das classes bases (item 1) e podero ser usados
para definir novos componentes;

Fornecer um modelo JavaBeans para emitir os eventos acionados no lado do cliente para a
aplicao no lado do servidor, onde ocorre o controle do comportamento da aplicao;

Definir API's para validao de dados de entrada, incluindo suporte para a validao no lado do
cliente;

Especificar um modelo de internacionalizao e localizao dos componentes.

Gerar automaticamente sadas apropriadas para o cliente, de acordo com os dados disponveis
de configurao, como verso do navegador e etc.;

68

ANAIS ELETRNICOS V ENUCOMP

Gerar automaticamente sadas que contenham suporte de acessibilidade, como definido pela
WAI (Web Accessibility Iniciative).

4.2.2. Padro de Arquitetura MVC

O padro de arquitetura MVC (Model, View e Controller) permite a separao entre a lgica de negcio
e as interfaces de visualizao, pela diviso do sistema em trs partes com responsabilidades distintas.
Essas so denominadas de modelo, viso e controle.
O modelo responsvel por representar os dados, manter o estado da aplicao pela definio
dos dados armazenados e fornecer o acesso s informaes quando necessrio. A visualizao
responsvel por exibir as informaes vindas do modelo e por captar e enviar aos controles, as aes
dos usurios sobre os dados apresentados. O controle faz a ligao entre a viso e os modelos,
acionando um ou outro, de acordo com as requisies recebidas. Essa interao produz modificaes no
estado do sistema que ento provoca respostas diferenciadas ao cliente.
Ao dividir em grupos as diversas tarefas de um sistema, o padro MVC faz com que a aplicao
passe a ter uma arquitetura onde a interface pode ser modificada sem preocupaes com alteraes na
camada de lgica do negcio [Engholm Jnior 2010]. A Figura 4.1 [Algaworks 2010], logo abaixo, mostra
a interao entre os componentes do MVC, nela possvel perceber como os componentes interagem
para montar a dinmica de funcionamento das aplicaes que implementam esse padro.

Figura 4.1 Arquitetura do JavaServer Faces baseada no MVC

Em JSF, a camada de controle composta por alguns elementos distintos. O servlet chamado de
FacesServlet quem recepciona e redireciona as requisies vindas da web e ele tambm que envia a
resposta que ser exibida pela viso; os arquivos de configurao mapeiam as aes realizadas e
definem as regras de navegao; e os manipuladores de aes e observadores de eventos so quem
recebem os dados vindos das interfaces, realizam o acesso ao modelo quando necessrio e retornam o
resultado para o FacesServlet.
J as views so providas pelos componentes de interface do JSF, que incluem componentes de
layout desde os mais simples, at outros mais complexos. Os componentes UI possuem propriedades,
69

ANAIS ELETRNICOS V ENUCOMP


mtodos e eventos acessveis pelo desenvolvedor, que possibilita identificar a interao do usurio com
estes componentes de interface.

4.2.3. Caractersticas de uma Aplicao Java com JSF

As aplicaes Java para a web quando construda de acordo com a especificao J2EE, possui um
conjunto de padres e modelos caractersticos bem definidos. Na figura 4.2 [Algaworks 2010], possvel
ver a forma como o JSF est relacionado com outras tecnologias na construo das aplicaes dentro
desse padro.

Figura 4.2 Arquitetura de Aplicaes Java para a Web

O Java Servlet a base para as aplicaes Java e so responsveis pela recepo de requisies
do cliente e envio de respostas, geralmente por meio do protocolo HTTP. J o JavaServer Pages (JSP)
pode ser compreendido como uma abstrao do Java Servlet e torna possvel a utilizao de cdigo Java
nesses sistemas web. As pginas JSP so executadas nas views e utilizam Java do lado do servidor para a
criao de contedo dinmico junto com as tags HTML. O JSP no oferece nada que no possa ser
criado com servlets puros, porm ele oferece a vantagem de ser facilmente codificado, facilitando assim
a elaborao e manuteno de uma aplicao web [Ferreirra e Martins 2009].
Nessa estrutura, existe o ciclo de vida formal do JSF, como pode ser visualidade na Figura 4.3,
[Jacobi e Fallows 2007]. Quando ocorre uma requisio, enviada pelo navegador, o Faces Servlet
recepciona essa requisio e d inicio execuo dos seis passos mostrado na imagem: Restore View
(Restaurar a view), Apply Request Values (aplicar os valores do request), Process Validations (processar
as validaes), Update Model Values (atualizar os valores do modelo), Invoke Application (invocar a
aplicao) e Render Response (renderizar a resposta).

70

ANAIS ELETRNICOS V ENUCOMP

Figura 4.3 Ciclo de vida formal do JSF

4.2.4. Componentes Visuais

A especificao do JSF fornece um conjunto de componentes bsicos, includos em duas bibliotecas, a


HTML, que possui componentes que representam diversos elementos HTML e a biblioteca Core, que
responsvel por tarefas comuns no desenvolvimento de sistemas, como internacionalizao, validao
e converso de dados [Algaworks 2010]. A Tabelas1 4.1 e 4.2 mostram as tags disponibilizadas pela
biblioteca nativa do JSF e HTML, respectivamente, alm de uma descrio das mesmas.
Tabela 4.1 Tags nativas na biblioteca JSF.
Tag

Descrio

f:actionListener

Registra uma instncia de javax.faces.event.ActionListener junto a um


componente

f:ajax

Fornece recurso Ajax de forma padro

f:attribute

Define o valor de um atributo no componente

f:convertDateTime

Converte datas e possui um conjunto de opes

f:convertNumber

Registra uma instncia de NumberConverter

f:converter

Registra uma instncia de Converter

f:event

Define o tipo de evento, por exemplo, para chamada de funes Ajax

f:facet

Adiciona um facet a um componente

f:loadBundle

Carrega um pacote de recursos de acordo com o local vigente

f:metadata

Engloba as tags f:viewParam

f:param

Configura um parmetro para o componente associado

http://www.jsftoolbox.com/documentation/help/12-TagReference/

71

ANAIS ELETRNICOS V ENUCOMP

f:phaseListener

Adiciona um ouvidor de fases a um componente

f:selectItem

Adiciona um componente filho UISelect para o componente associado

f:selectItems

Adiciona um componente filho UISelectItems para o componente associado

f:setPropertyActionListener

Registrar uma instncia de ActionListener no componente relacionado

f:subview

Cria um componente container que ter todo o core JSF e as tags aninhadas via
jsp:include ou outra tag dinmica

f:validateBean

Utilizado para validaes de acordo com as definies do Bean

f:validateDoubleRange

Registra uma instncia de DoubleRangeValidator no componente associado

f:validateLength

Registra uma instncia de a LengthValidator no componente associado

f:validateLongRange

Registra uma instncia de LongRangeValidator no componente associado

f:validateRegex

Valida expresses regulares

f:validateRequired

Define componente como requerido

f:validator

Registra uma instncia de Validator instance no componente associado

f:valueChangeListener

Registra uma instncia de ValueChangeListener no componente associado

f:verbatim

Cria um componente output como um filho do componente associado

f:view

A tag View tag o container para todo componente JavaServer Faces usado na
pgina

f:viewParam

Uso para URL

Tabela 4.2 Tags nativas na biblioteca JSF HTML.


Tag

Descrio

h:body

Renderiza um element Body do HTML

h:button

Renderiza um Button

h:column

Renderiza uma coluna dentro de um componente data table

h:commandButton

Renderiza um button que pode est associado a um backing bean ou a uma classe
ActionListener

h:commandLink

Renderiza um link HTML

h:dataTable

Cria uma data table

h:form

Renderiza um elemento tipo form

72

ANAIS ELETRNICOS V ENUCOMP

h:graphicImage

Renderiza uma tag de imagem em HTML

h:head

Renderiza um elemento head

h:inputHidden

Renderiza um elemento input do tipo "hidden".

h:inputSecret

Cria um elemento input do tipo "password".

h:inputText

Cria um elemento input do tipo "text".

h:inputTextarea

Cria um elemento input do tipo "textarea"

h:link

Configura links

h:message

Renderiza mensagens especficas para um determinado componente

h:messages

Renderiza todas as mensagens para a view atual

h:outputFormat

Cria um elemento para exibio de texto

h:outputLabel

Renderiza um elemento "label"

h:outputLink

Renderiza um elemento link HTML que possua o atributo "href"

h:outputScript

Renderiza a tag HTML <script/>, que trs um JavaScript existente na biblioteca


JSF 2.0

h:outputStylesheet

Definite arquivos de layout CSS

h:outputText

Tag bsica para textos

h:panelGrid

Renderiza um panelGrid compatvel com a tabela do HTML4

h:panelGroup

Container de componentes

h:selectBooleanCheckbox

Cria um elemento input do tipo "checkbox".

h:selectManyCheckbox

Cria uma lista de checkboxes.

h:selectManyListbox

Cria um select list

h:selectManyMenu

Cria um elemento "select com mltiplos atributos

h:selectOneListbox

Renderiza um elemento HTML "select" de qualquer tamanho sem atributo


"multiple"

h:selectOneMenu

Cria um elemento do tipo Select One Menu

h:selectOneRadio

Cria um elemento do tipo Select One Radio

4.3. Persistncia com JPA

73

ANAIS ELETRNICOS V ENUCOMP


A JPA (Java Persistence API) uma especificao que padroniza as ferramentas ORM (Object Relational
Mapper) para os sistemas desenvolvidos em Java. As ferramentas ORM fazem o mapeamento e
transio automtica de dados entre os paradigmas relacional e orientado a objetos (OO). Isso
necessrio, tendo em vista que as aplicaes Java so construdas seguindo as regras de OO e os SGDBs
geralmente so organizados de acordo com o modelo relacional.
Dentre as implementaes de JPA, destaca-se o Hibernate que o mais utilizado para esse
propsito; mas existem outras implementaes como o EclipseLink e OpenJPA. As ferramentas que
seguem as regras da JPA caracterizam-se por serem independentes de linguagem SQL, resultando num
baixo acoplamento entre aplicao e os Sistemas Gerenciadores de Banco de Dados (SGDB).

4.4. Manipulao de Dados com JPQL

A Java Persistence Query Language (JPQL) uma linguagem de consulta ORM que permite a realizao
de consultas sobre classes e objetos. A linguagem suporta consultas de campos individuais de uma
entidade e operaes como update e delete, subqueries, join, group by, e having. A linguagem uma
extenso da EJB Query Language (EJB QL), e inclui outras funcionalidades no presentes nesta
linguagem que a antecede. Todas as operaes em JPQL podem ser realizadas no modo de consultas
dinmicas ou estticas.

4.5. Facelets
At a verso 1.2 do JSF, existem algumas deficincias que dificultam a vida do programador de pginas,
como a falta de um mecanismo para criao de templates de telas integrado ao JSF e tambm para
criao de novos componentes visuais a partir da composio de outros componentes j existentes
[Algaworks 2010], a partir disso, foi desenvolvido um framework denominado Facelets para facilitar o
gerenciamento das telas criadas. Na verso 2 do JSF, o Facelets o engine padro que gerencia as
interfaces.
Ao se utilizar Facelets, as pginas devero ser construdas usando XHTML (eXtensible HyperText
Markup Language), e no mais JSP, pois o framework possui um compilador XHTML responsvel pelo
gerenciamentos e reaproveitamento dos templates criados. A tag do Facelets possui as bibliotecas a
seguir: component, composition, debug, decorate, define, fragment, include, insert, param, remove e
repeat.

4.6. Primefaces
O Primefaces, em sua verso atual 3.4, um framework composto por mais de 100 componentes para o
JSF, com suporte nativo a Ajax e HTML5. Possui boa documentao e ricos exemplos de cdigos
disponibilizados na web para auxlio na utilizao dos mesmos. Para utilizar o Primefaces em um
projeto Java que implemente JSF 2, preciso fazer o download do arquivo primefaces-{version}.jar no

74

ANAIS ELETRNICOS V ENUCOMP


site do framework, adicion-lo ao classpath da aplicao web desejada, e importar o namespace para
chamada dos componentes: xmlns:p="http://primefaces.org/ui".
A Figura 4.4 [primefaces.org], logo abaixo, mostra a codificao de alguns componentes do
Primefaces numa pgina web. Nela, os elementos esto definidos dentro de um formulrio, que faz
parte da biblioteca HTML e por isso foi definido pela tag <h:form>. Ainda h outros elementos da
mesma biblioteca, so eles o panelGrid e o outputLabel. Neste cdigo encontram-se dois elementos
simples do Primefaces: o inputText e o commandButton.

Figura 4.4 Codificao de componentes HTML e Primefaces

Os componentes so definidos por seus atributos configurveis, que podem ou no est


vinculado a classes Java denominadas Managed Bean, que so classes que fornecem ao desenvolvedor
o acesso aos estados dos componentes na tela, ou seja, eles fazem a ligao entre interfaces grficas e a
lgica da aplicao. O resultado do cdigo da Figura 4.4 exibido na figura abaixo, Figura 4.5
[primefaces.org].

Figura 4.5. Componentes em exibio na tela.

O Primefaces oferece os componentes mais populares utilizados em pginas na internet, e


outros mais complexos, fazendo com que seja possvel encontrar em sua biblioteca um elemento para
quase todas as necessidades na construo das interfaces grficas. Dentre os principais componentes,
cita-se: AutoComplete, BooleanButton, BooleanCheckbox, Calendar, Editor, InputMask, InputText,
InputTextarea, Keyboard, ManyButton, ManyMenu, ManyCheckbox, OneRadio, Password, Slider,
DataExporter, DataList, DataGrid, DataTable, GMap e muitos outros componentes distribudos nas
categorias Ajax Core, Input, Button, Data, Panel, Overlay, Menu, Charts, Message, Multimedia, File,
DragDrop e Misc.
Sobre a exibio de mensagens de validao, so utilizadas as tags Messages e Growl do
Primefaces, isso torna fcil a construo destas mensagens e outros avisos que se deseja exibir durante

75

ANAIS ELETRNICOS V ENUCOMP


a utilizao dos componentes na tela. Essas mensagens podem ser geradas pela manipulao da prpria
interface ou serem lanadas a partir do managed bean.
O Primefaces disponibiliza um conjunto de 37 temas pr-definidos, alguns deles mostrado na
Figura 4.6, que podem ser utilizados nos projetos de desenvolvimento. Para isso necessrio fazer o
download do theme.jar e adicion-lo ao classpath da aplicao. Alm desses, possvel utilizar a
ferramenta ThemeRoller, divulgado no site do framework, para criar um novo tema sem necessidade de
conhecimentos aprofundados sobre CSS.

Figura 4.6 Temas pr-definidos.

4.7. Concluso
O framework aqui estudado uma ferramenta utilizada em muitos projetos relatados na
internet, sempre com crticas positivas da sua utilizao. As atualizaes de verses so
frequentes, o que vai permitindo a melhoria e o incremento dos componentes
disponibilizados.

Referncias
Algaworks. (2010) DWJSF Desenvolvimento Web com JavaServer Faces,
http://www.algaworks.com/treinamentos/desenvolvimento-web-com-jsf
Engholm Jnior, H. (2010) Engenharia de Software na Prtica. So Paulo: Novatec Editora.
Ferreira, A. D. e Martins, L. A. (2009) Comparativo Entre as Tecnologias JSP (JavaServer Pages) e ASP
(Active Server Pages), http://www.inf.ufrgs.br/gppd/disc/cmp167/trabalhos/sem2001-1/T2/alex/
Jacobi, J. e Fallows, J. R. (2007) Pro JSF e Ajax - Construindo Componentes Ricos para a Internet. Rio de
Janeiro: Cincia Moderna.
76

ANAIS ELETRNICOS V ENUCOMP


Marafon, L. D. (2006) Integrao JavaServer Faces e Ajax. Monografia (Graduao em Cincia da
Computao) - Universidade Federal de Santa Catarina, Santa Catarina.
Rossi, C. L. (2012) Interfaces Ricas para Web: Aplicao com PrimeFaces. Monografia.
(Aperfeioamento/Especializao em II Especializao em Tecnologia Java) - Universidade
Tecnolgica Federal do Paran. Orientador: Beatriz Terezinha Borsoi.

77

ANAIS ELETRNICOS V ENUCOMP

Introduo simulao de redes de computadores


com o NS-2 (Network Simulator) - Teoria e Prtica
Marllus de Melo Lustosa

Abstract
Perform real experiments with computer networks is often not a trivial task, because, as you
know, in many cases can have a complex and heterogeneous environment such networks, which
can cause a significant impact on development time of this study. Therefore, computer simulation
is a technique used very often because it enables the performance evaluation of various
scenarios, including the use of new technologies and protocols, plus the ability to evaluate the
impact of different topologies in the environment. This paper attempts to transpose, for students,
teachers and professionals, the idea of using computer simulation in education and research
computer network, using examples of network simulation with the software NS-2 (Network
Simulator).
Resumo
Realizar experimentos reais com redes de computadores muitas vezes no uma tarefa trivial,
pois, como se sabe, em muitos casos pode se ter um ambiente complexo e heterogneo dessas
redes, o que pode causar um impacto significativo no tempo de desenvolvimento desse estudo.
Por esse motivo, simulao computacional uma tcnica utilizada com muita frequncia, pois
possibilita a avaliao de desempenho de vrios tipos de cenrios, incluindo a utilizao de
novos protocolos e tecnologias, alm da possibilidade de avaliao do impacto de diferentes
topologias no ambiente. Este artigo tenta transpor, para alunos, professores e profissionais, a
ideia da utilizao da simulao computacional no ensino e pesquisa de redes de computadores,
utilizando-se para isso exemplos de simulao de redes com o software NS-2 (Network
Simulator).

5.1. Introduo

O estudo de redes de computadores prope analisar, quantita e qualitativamente, o desempenho de


sistemas conectados entre si, como a avaliao de protocolos de roteamento, segurana, topologias e
novas arquiteturas de comunicao. Desde a criao da pilha de protocolos TCP/IP bem como do
modelo OSI, o meio acadmico e empresarial estuda a implantao de novas tecnologias para compor
este ramo da pesquisa. Para isso, trabalham em conjunto para propor novos protocolos e tecnologias,
que vo desde camada de aplicao, como os "peer-to-peer" e ssh, camada fsica, como as
arquiteturas de transferncia de dados usb e wireless. A criao dos modelos TCP/IP e OSI foi
ambientalizada na adoo do modelo "Dividir para conquistar", o qual ataca, em partes, o desafio de se
propor novos estudos na rea de redes de computadores.
78

ANAIS ELETRNICOS V ENUCOMP


O uso de tcnicas de avaliao de desempenho de sistemas tambm necessrio para compor
estudos na rea de redes, como: Anlise real, modelagem analtica e simulao computacional. A anlise
real faz uso de acompanhamento real do sistema, medindo e criando relatrio das variveis estudadas,
o que pode se tornar um processo rduo e, s vezes, impraticvel, pelo alto custo e complexidade do
estudo. Os modelos matemticos ou analticos podem ser vistos como um conjunto de frmulas
matemticas de natureza esttica, porm, muitos sistemas complexos no possuem modelos para
soluo analtica, acarretando em hipteses simplificadoras, o que o torna pouco utilizado em
ambientes de alta dinamicidade (Chwif and Medina 2006). J a simulao computacional uma tcnica
que faz uso de solues computacionais para modelagem e anlise de situaes reais, podendo prever,
com certa confiana, o comportamento de um sistema baseado em dados de entradas especficos e
respeitando um conjunto de premissas (Chwif and Medina 2006).
Nos demais tpicos sero mostrados as caractersticas dos modelos TCP/IP e OSI, bem como a
importncia para o estudo de redes de computadores, alm de promover o estudo de simulao
computacional de redes de computadores com o simulador de eventos discretos NS-2, demonstrando
todo o seu potencial, tanto na abordagem terica do simulador quanto por meio de exemplos prticos
de simulao de redes.

5.2. Modelo OSI

Sigla para Open System Interconnection, um padro da ISO (Intenational Organization for
Stardardization) mundial que define um framework de rede para implementao de protocolos em sete
camadas. Esse padro ISO, criado em 1984, afeta a forma de como a indstria de TI deve criar
protocolos de redes de computadores [Surman 2002]. Com base na teoria de "Dividir para conquistar", o
modelo foi criado com objetivo de traar todas as partes de desenvolvimento de uma arquitetura ou
protocolo de comunicao que usa redes de computadores e mquinas heterogneas em seu
funcionamento. O modelo composto de vrias camadas distribudas desde o nvel do usurio (camada
de aplicao) ao nvel fsico (camada fsica). A figura 5.1 mostra como esto dispostas essas camadas.

79

ANAIS ELETRNICOS V ENUCOMP

Figura 5.1. Exemplificao das 7 camadas do modelo OSI

5.3. Modelo TCP/IP


Criado e financiado pela ARPANET (Advanced Research Projects Agency), o TCP/IP,
comumente chamado de pilha TCP/IP, um conjunto de protocolos de comunicao entre
computadores em rede. O nome foi dado em referncia aos protocolos TCP (Transmission
Control Protocol) e IP (Internet Protocol). O conjunto de protocolos pode ser visto como um
modelo de camadas, onde cada uma responsvel por um grupo de tarefas, fornecendo um
conjunto de servios bem definidos para o protocolo da camada superior. Sua evoluo emergiu
no final de 1978, e em 1983 se tornou o primeiro modelo aprovado pela ARPANET. Os
protocolos para internet formam o grupo de protocolos de comunicao que implementam a
pilha de protocolos TCP/IP sobre a qual a internet e a maioria das redes comerciais funcionam
[Danzig and Jamin 1991]. A seguir, a Figura 5.2 mostra as camadas referentes ao modelo
TCP/IP.

80

ANAIS ELETRNICOS V ENUCOMP


Figura 5.2 Pilha de protocolos TCP/IP

5.4. Modelo OSI vs Modelo TCP/IP

A Arquitetura OSI foi elaborada pelas comisses da ISO, constitudas por representantes tcnicos da
maioria dos pases com experincia em comunicao de dados [Lima 2006]. O modelo OSI foi elaborado
seguindo mtricas determinadas no decorrer do processo. Enquanto que a Arquitetura TCP/IP foi
elaborada no ambiente da Internet de acordo com a demanda e as necessidades do mercado [Lima
2006]. Os estudos da ARPA foram os grandes precursores para o desenvolvimento desse modelo.
A criao dos protocolos TCP e IP deu incio a um novo paradigma de comunicao, baseado no
conjunto de vrios protocolos que fornecem a possibilidade de transferncia de dados por meio das
redes de computadores. A figura 5.3 mostra uma possvel comparao entre esses dois modelos de
comunicao de dados.

Figura 5.3 Comparao dos modelos OSI e TCP/IP

5.5. Anlise de desempenho de sistemas


Na implantao ou desenvolvimento de qualquer sistema computacional, imprescindvel o uso de
tcnicas para avaliao de desempenho, pois permite ao pesquisador uma maior anlise das mtricas e
caractersticas do sistema em questo, objetivando uma maior viabilidade de recursos para o projeto,
alm da utilizao de diferentes parmetros no processo de anlise.
Existem trs tcnicas clssicas utilizadas na literatura para a avaliao de desempenho de
sistemas, que so: Medio real, modelagem analtica e simulao computacional. A primeira, tambm
chamada de mtodos de benchmarking, prov o uso de ferramentas para teste diretamente no
hardware de estudo, ou seja, necessria a disponibilidade do equipamento fsico em questo no
ambiente de pesquisa. A modelagem analtica baseada em mtodos analticos, que so modelos
matemticos, como Redes de Petri e Cadeias de Markov, e consistem no principal meio de predio do
desempenho de sistemas que ainda no esto fisicamente disponveis. A criao de um modelo analtico
preciso para determinado sistema muito difcil, devido complexidade do seu processo de
desenvolvimento do modelo [Marcari and Manacero 2003]. Por ltimo, a tcnica de simulao
81

ANAIS ELETRNICOS V ENUCOMP


computacional empregada em referncia expresses matemticas ou especificaes mais ou menos
formalizadas, com a finalidade de representar um processo ou operao do mundo real. Assim,
necessria a construo de um modelo de computador que corresponda situao real que se pretenda
simular [Freitas 2008]. A simulao de sistemas a utilizao de tcnicas matemticas usadas em
computadores, que permitem "imitar" a operao de praticamente qualquer tipo de operao ou
processo do mundo real, o que significa que o estudo do comportamento dos sistemas reais atravs
da exerccio de modelos [Freitas 2008] [Chwif and Medina 2006].
A partir dessas tcnicas, vrios parmetros so disponibilizados objetivando uma melhor
postura por parte do pesquisador em seus critrios de avaliao e adoo de um modelo para o estudo
de avaliao de desempenho de sistemas. Tais parmetros podem ser vistos na tabela 5.1, retirada de
Jain [Jain 1991].
Tabela 5.1 Critrios para escolha de tcnicas de anlise ou predio de desempenho
[Jaim 1991]
Mtodos
analticos

Critrio

Simulao

Benchmarking

1. Estgio de desenvolvimento

Qualquer

qualquer

ps-prottipo

2. Tempo na obteno dos


resultados

Pequeno

mdio

varia

3. Ferramentas para anlise

analistas humanos

linguagem de
computadores

instrumentao

4. Exatido

Baixa

moderada

varia

5. Avaliao de alternativas

Fcil

moderada

varia

6. Custo

Baixo

mdio

alto

7. Credibilidade do mtodo

Baixo

mdio

alto

82

ANAIS ELETRNICOS V ENUCOMP

.5.1. Simulao computacional


Simulao, segundo [Longman Dictionary of Contemporary English 2003], uma atividade ou
situao que reproduz uma condio real, mas tem uma aparncia realstica, sendo usada para
testar qualquer coisa. Segundo [Law e Mccomas 1991], simulao a imitao de um sistema
real, modelado em computador, para avaliao e melhoria de seu desempenho. Ou seja,
simulao o desenvolvimento virtual e controlado de uma realidade, afim de se estud-la,
objetivando propor melhorias no ambiente, assim como [Banks 2000], que afirma que a
simulao envolve a criao de uma histria artificial da realidade e, com base nesta histria
artificial, so realizadas observaes e inferncias nas caractersticas de operao do sistema real
representado. A figura 5.4 esquematiza este conceito da transformao da realidade em modelo
e novamente dos resultados em realidade.

Figura 5.4 Realidade x Modelo [Duarte 2003]

Existem na literatura trs tipos de modelos de simulao: Modelos discretos e contnuos.


Tambm existem os modelos hbridos, que trabalham com eventos estticos e discretos em um
mesmo ambiente. Mais especificamente, de acordo com [Filho 1995], Um modelo discreto se
todas as variveis de estado tm seus valores alterados apenas em um nmero contvel de
instantes de tempo. J em um modelo contnuo, todas essas tm seus valores alterados a qualquer
instante de tempo. Um modelo misto ou hbrido, se algumas variveis de estado tm os seus
valores alterados a qualquer instante de tempo e outras apenas em um nmero contvel de
instantes de tempo. A figura 5.5 demonstra como funciona uma simulao de eventos contnuos,
mostrando como exemplo a simulao do esfriamento de uma xcara de ch. A varivel estudada
a temperatura, que varia continuamente com o tempo.

Figura 5.5 Simulao contnua do estudo da temperatura do ch ao longo do tempo [Chwif and
Medina 2006].

83

ANAIS ELETRNICOS V ENUCOMP

Ao contrrio dessa, a figura 5.6 exemplifica uma simulao de eventos discretos, ou seja, eles
so disparados em instantes de tempo descontinuados, pois, no modelo discreto, a execuo dos
eventos ocorre em saltos.

Figura 5.6 Evoluo dos estados na simulao de eventos discretos da preparao de uma xcara
de ch [Chwif and Medina 2006].

5.6. Simuladores de redes de computadores


Na literatura de redes de computadores, vrios so os simuladores disponveis para quem deseja
estudar a rea, a exemplo do Jist [Barr and Haas 2004], Sinalgo [Sinalgo 2007] e OMNet++ [Gyrgy
1993]. Alguns clssicos, como o Network Simulador 2 [NS 2001] e TOSSIM [Levis and Lee et al 2003] so
mais utilizados pela comunidade acadmica, envolvida em diversos projetos sobre redes wireless,
cabeadas, veiculares, dentre outras.
Muitas so as linhas de pesquisa em redes de computadores, e pela grande quantidade de
pesquisadores envolvidos em projetos na rea, esperado que existam vrios simuladores para os mais
diversos fins. Neste trabalho proposta a iniciao e o desenvolvimento do estudo sobre simulao de
redes de computadores a partir da ferramenta Network Simulator - 2 (NS), cujos objetivos e motivaes
sero descritos no prximo tpico.

5.6.1. Network Simulator - NS-2


NS-2 um simulador de redes de eventos discretos. NS-2 fornece um apoio substancial para a
simulao do TCP, protocolos de roteamento e multicast com fio e sem fio (local e satlite). Ele
descrito em C++ e uma verso orientada a objeto do Tcl (Tool command language) chamado
OTcl [Fall and Varadhan 2007]. altamente escalvel, com caractersticas de acoplamento de
mdulos para simulao de diferentes tipos de redes. Na instalao do NS-2 ainda seguido o
NAM (Network Animator), que uma ferramenta capaz de realizar uma animao 2D da
simulao. A figura 5.7 mostra o resultado de uma pesquisa feita pelo autor deste trabalho, que
comparou a utilizao dos simuladores de redes de computadores, em trabalhos publicados em
conceituadas conferncias. Como resultado, apresentou-se a estatstica do uso de simuladores de
redes e modelagem analtica, pela comunidade acadmica no perodo entre 1998 e 2009, em
84

ANAIS ELETRNICOS V ENUCOMP

estudos na rea de Redes de Sensores Sem Fio (RSSF). Num total de 46, todos os artigos
analisados na pesquisa foram retirados do portal de peridicos da capes.

Figura 5.7 Anlise do uso de simuladores em pesquisas na rea de RSSF entre os anos de 1998 e
2009.

Na figura acima, percebe-se que o software de simulao mais utilizado em trabalhos


com RSSF, no perodo estudado, e atingindo quase 70% de utilizao, foi o NS-2, seguido de
simuladores prprios (P.S.) desenvolvidos para determinado fim de pesquisa. Em terceiro lugar
encontra-se o Tossim, e por ltimo, com menos de 5% de uso, esto os modelos analticos
(M.A.).
Alm da motivao citada acima, outros tpicos interessantes favoreceram na
escolha do NS-2 como software de simulao de redes de computadores na composio desse
trabalho, dentre eles:
- Open Source;
- Possibilidade de interaes em ambientes multiprotocolos;
- Facilidade de Trancing;
- Disponvel em sistemas Unix, GNU/Linux, BSD, Solaris e Windows

(Cygwin);

- Orientado a objetos;
- Estrutura modular;
- Suporte simulao de redes cabeadas e sem fio;
Percebe-se, portanto, sua grande abrangncia tanto em relao ao desenvolvimento do
cenrio de simulao de redes quanto na utilizao de diferentes sistemas operacionais para
execuo do mesmo, facilitados pelo motivo de este ser de cdigo aberto e ter compatibilidade
com diferentes ncleos operacionais. Outra caracterstica bastante interessante a sua capacidade
de implementao em qualquer camada do modelo OSI, da aplicao fsica. Na literatura,
existem modelos prontos de diferentes camadas, propostos por pesquisadores da rea e
desenvolvedores do programa. O suporte simulao de redes cabeadas e sem fio tambm um
85

ANAIS ELETRNICOS V ENUCOMP

fator decisivo, pois, em ambientes reais, tanto pode-se ter um ambiente de simulao homogneo
de ns em rede como a fuso desses dois tipos, wired-cum-wireless, como exemplificado na
figura 5.8, retirado de [Fall and Varadhan 2007].

Figura 5.8 Topologia de rede mista, onde se encontram ns mveis e fixos cabeados e sem fio
[Fall and Varadhan 2007].

5.6.1.1. NS-2 - C++ e OTcl


A importncia e necessidade de utilizar duas linguagens de programao para compor o NS-2
est descrita a seguir.
- C++: utilizada para compor o ncleo do simulador. nela em que ocorre a
implementao e execuo dos protocolos e aplicaes. Pelo fato dessa linguagem trabalhar bem
com bytes e ter um tempo computacional de processamento relativamente baixo, alm da
capacidade de trabalhar com orientao a objetos, ela foi escolhida para compor a padro de mais
baixo nvel do programa, agilizando os processos de recompilao de mdulos.
- OTcl: A alta dinamicidade de mudana de uma simulao, aliada rapidez no processo
de alterao do ambiente a ser simulado sem que os mdulos e protocolos sejam recompilados
novamente, foram o que levaram a adoo de uma linguagem de scripts para compor o front-end
do usurio. A linguagem Otcl, variante orientada a objetos da Tcl, e interpretada, capaz de
interagir com as classes C++ por meio da interface TclCL, que faz a ligao entre estas, numa
correspondncia one-to-one [Fall and Varadhan 2007], conforme mostra a figura 5.9, retirada de
[Issariyakul and Hossain 2011].

86

ANAIS ELETRNICOS V ENUCOMP

Figura 5.9 Ligao one-to-one entre as classes compiladas e interpretadas, das linguagens C++ e
Otcl [Issariyakul and Hossain 2011].

A correspondncia entre essas duas linguagens melhor descrita por meio da imagem
5.10, retirada de [Rodolfo 2009], na qual so apresentados trs nveis: O cenrio de simulao, o
script Tcl e a implementao C++. O primeiro, representa um ambiente de simulao constitudo
de 2 ns e comunicao sem fio. O script Tcl contm a instanciao e criao de um array de ns
e de um objeto simulador, pelas declaraes das variveis node_ e ns_. A implementao da
classe dos ns, chamada MobileNode (n mvel), que contm todos os atributos e mtodos
referentes a eles, feita na linguagem C++, e compilado somente um vez, na criao do
ambiente de simulao.

Figura 5.10 Interao entre as implementaes Tcl e C++ no NS-2 [Rodolfo 2009].

5.6.1.2. NS-2 - Ns e enlaces - Modelo wired


Os ns (hosts) so definidos no NS-2, na linguagem OTcl, por meio do comando set
<nome_do_no> [$ns node], que seta um n e referencia a classe node da instncia do simulador
87

ANAIS ELETRNICOS V ENUCOMP

$ns. Eles so compostos de agentes, um ponto de entrada no n, um classificador de endereos e


um classificador de portas. De acordo com [Anton 2003], um pacote gerado por um agente
entregue ao n ao qual o agente est ligado, atravs do ponto de entrada, que tambm recebe
pacotes cujo destino o prprio n. Aps passar pelo ponto de entrada, o pacote recebido pelo
classificador de endereos, que verifica se o pacote deve ser entregue a um agente pertencente ao
n ou deve ser transmitido para um enlace de sada. Caso o pacote seja destinado a um agente do
prprio n, o pacote ento repassado ao classificador de porta que, de acordo com o endereo
de destino, entrega o pacote ao respectivo agente. A arquitetura do componente n mostrada a
seguir, a partir da figura 5.11, retirada de [Coutinho 2007].

Figura 5.11 Arquitetura do componente do tipo n, unicast e multicast [Coutinho 2007].

A definio dos ns est diretamente ligada criao do enlace, que uma estrutura que
conecta os ns, objetivando formar a topologia. Outro detalhe importante que se deve ter cincia
o fato de a camada de enlace implementar as polticas de fila, ao contrrio do que acorre em
ambientes reais, cujo gerenciamento de buffer no prprio host. Portanto, o atraso no
encaminhamento dos pacotes de um n a outro se d pela soma do atraso do pacote na fila com o
atraso default do prprio enlace, o qual definido pelo usurio. A camada de enlace tambm
guarda informaes e gerencia o TTL do pacote, valor que vai decaindo com cada salto do
mesmo. Toda a estrutura dessa camada pode ser observada na figura 5.12, retirada de [Coutinho
2007].

Figura 5.12 Estrutura do enlace no NS-2 [Coutinho 2007].

88

ANAIS ELETRNICOS V ENUCOMP

O NS-2 suporta dois padres de encaminhamento de pacotes nos enlaces: O tipo simplex,
em que os dados so enviados apenas em um sentido (exemplo da figura 5.12) e no modo em que
os pacotes trafegam em ambos os sentidos, caracterizando o tipo duplex.
O comando bsico que define um enlace entre os ns $ns duplex-link n0 n1 1Mb 10ms
DropTail. O comando contm parmetros do tipo de encaminhamento do enlace (duplex ou
simplex), os ns que sero ligados (n0 n1), a largura de banda do link (1 Megabits/segundo), o
atraso do link (10 milissegundos) e a poltica de fila adotada para o enlace (DropTail).
5.6.1.3. NS-2 - Camadas de protocolos - Modelo Wireless
As camadas de protocolos do modelo wireless, no NS-2, descrevem a pilha de protocolos e
modelos referentes s camadas da arquitetura OSI, utilizadas pelo simulador. Qualquer
implementao de novos mdulos para algumas dessas camadas, tem de ser realizada na
linguagem C++, cujas implementaes esto na estrutura do prprio simulador. A figura 5.13,
retirada de [Rodolfo 2009] demonstra como funciona o modelo wireless no NS-2.

Figura 5.13 Funcionamento do modelo wireless no simulador NS-2 [Rodolfo 2009].

Iniciando pelo camada de mais alto nvel, a camada "Agent" se liga aplicao (ftp,
telnet, cbr, ...) e tem a funo de receber ou transmitir pacotes, funcionando como Src
(transmissor) ou Sink/Null (receptor). Logo aps, tem-se os componentes "Addr Demux" e "Port
Demux" que so os classificadores de endereo e porta, respectivamente, e cuja funo j foi
explicada anteriormente, a partir da figura 1.10. A camada "RTagent" faz a implementao do
protocolo de roteamento utilizado na simulao, no caso do exemplo da figura 5.13, foi usado o
protocolo DSDV. A camada "LL" implementa a camada de enlace, cuja funo executar os
protocolos da camada de ligao de dados, como fragmentao ou reagrupamento dos pacotes.
Essa camada est tambm ligada camada "ARP", que tem a funo de converter o endereo ip
89

ANAIS ELETRNICOS V ENUCOMP

do pacote em endereo mac e vice-versa. A camada "MAC" implementa os protocolos de acesso


ao meio, como o padro IEEE 802.11, que simplesmente foi uma transcrio em C++ do
firmware das placas de comunicao que se utilizam desse padro. A camada "IFq" (interface de
fila) existe para dar prioridade aos pacotes de encaminhamento. O mdulo PriQueue, referente a
essa camada, prioriza os pacotes de encaminhamento, colocando-os na cabea da lista de espera.
As camadas "NetIF", "Radio Propagation Model and Antenna" e "Channel" modelam os
protocolos referentes camada fsica, da arquitetura OSI. A primeira, "NetIF" (interface de
rede), implementada pelo mdulo WirelessPhy, usada pela classe MobileNode como uma
interface de hardware para acesso ao Channel. Especificamente, essa camada recebe os metadados, presentes no cabealho do pacote recebido, com informaes sobre potncia de
transmisso, energia gasta na transmisso ou restante (residual), comprimento de onda do sinal, e
encaminha para a camada de propagao de rdio e antena, que, a partir de modelos como o
TwoRayGround e Propagation e Free-space, quantifica as perdas de propagao e testa se o
pacote contm as condies necessrias para ser recebido pelo n em questo, ou seja, se possui
a potncia mnima para ser recebido, caso contrrio, ser descartado. Os modelos de antena
tambm so definidos na camada "Radio Propagation Model and Antenna", como por exemplo o
modelo OmniAntenna. Como tipo de canal, tem-se o exemplo do modelo WirelessChannel, que
um modelo de propagao sem fio.

5.7. Projeto Liowsn


Implantar o ambiente computacional necessrio para a iniciao das pesquisas na rea de redes
a primeiro passo para o pesquisador que deseja realizar simulaes em seu estudo. No entanto,
alm de instalar essas ferramentas, muitas vezes necessrio a configurao dos mdulos
adicionais para estudos especficos, como por exemplo, os da rea de rede de sensores sem fio
(RSSF), no caso do NS-2.
Considerando que a grande maioria desses programas e mdulos so nativos para a
plataforma Linux, natural que se tenha um corpo tcnico para a realizao da configurao
adequada do software no sistema operacional. Tendo em vista a grande lista de perguntas sobre
instalao do NS-2, como em [Nabble 2012], bem como dvidas sobre a configurao de novos
mdulos em grandes fruns desses programas, como pode ser visto em [Nabble 2012], [The
Linux Question 2012], [Gname 2012] e [The Mail Archive 2012], entende-se que essa no uma
tarefa trivial. A partir desse cenrio, o projeto Liowsn (Linux for works with WSN, Linux para
trabalhos com redes de sensores sem fio), idealizado pelo autor deste trabalho, foi criado e
consiste de um sistema operacional GNU/Linux remasterizado com todas as ferramentas
clssicas para simulao de redes, j instaladas e configuradas, assim como a maioria dos
mdulos para trabalhos com redes de sensores sem fio, cujo tema foi o foco do projeto [Lustosa
and Singh 2012]. Dentre essas ferramentas esto o NS-2 e OMNet++, alm de alguns mdulos
especficos para trabalhos na rea de RSSF, como a Castalia e Mannasim. A descrio de todas
as ferramentas includas no sistema operativo segue abaixo.
- NS-2.34 (Simulador de redes);
- Mannasim (Mdulo para simulao de RSSF para o NS-2.34);
- OMNeT++ (Framework para simulao de redes);
- Castalia (Simulador de RSSF, roda sob o OMNeT++);
90

ANAIS ELETRNICOS V ENUCOMP

- Xgraph (Analisador de arquivos trace);


- Tracegraph (Analisador de arquivos trace);
- NAM (Animador grfico da simulao);
Percebe-se, ento, que todo o ambiente necessrio para iniciao simulao de redes,
com as ferramentas mais utilizadas na literatura, est instalado no sistema operacional. Ele foi
disponibilizado
em
imagem
.iso
e
se
encontra
no
endereo
http://sourceforge.net/projects/liowsn/. O sistema operacional utilizado para compor o projeto
Liowsn foi o GNU/Linux Ubuntu 9.10, e ser usado neste trabalho de simulao de redes por j
conter o NS-2.34 instalado e configurado. O sistema pode ser instalado em computador ou ainda
inici-lo pela opo live-cd, que funciona usando somente a memria principal (ram).
O NS-2 ainda pode ser utilizado instalando-o a partir de seus arquivos fontes ou binrios
originais,
que
podem
ser
baixados
no
site
http://nsnam.isi.edu/nsnam/index.php/Downloading_and_installing_ns-2/.

5.8. Prtica de simulao de redes com NS-2


O tpico a seguir abordar a prtica da simulao de redes cabeadas e sem fio no simulador NS2, com exemplos bem claros de ambientes bsicos de redes. Mostrar tambm os tpicos a serem
seguidos no desenvolvimento da simulao, assim como a anlise bsica dos arquivos trace
(arquivos gerados aps a execuo da simulao computacional).
5.8.1. Simulando uma rede cabeada
Para iniciar uma simulao de ambientes cabeados, ou seja, redes em que os ns so ligados por
links fsicos, 5 passos basicamente so seguidos [Coutinho 2007]:
- Planejar a simulao;
- Definir os ns;
- Definir a ligao entre os ns (topologia);
- Definir o trfego que ser injetado na rede;
- Analisar os resultados;
O planejamento da simulao consiste em definir quais as caractersticas dos ns e
enlaces da rede a ser simulada. Segue abaixo a figura 5.14, que mostrando uma modelagem
bsica de um ambiente de rede.

Figura 5.14 Planejamento da simulao

91

ANAIS ELETRNICOS V ENUCOMP

Na figura acima so definidas todas as caractersticas da rede a ser simulada, como a


topologia dos ns, a largura de banda do enlace seguido de seu atraso padro, o tipo de fila
DropTail (com poltica FIFO - First In First Out) e os agentes UDP (User Datagram Protocol) e
NULL ligados aos ns, que so os agentes de roteamento de envio e recebimento do pacotes.
definida tambm a aplicao CBR (Constraint Bit Rate), cuja ligada ao agente de roteamento
UDP, que possui caracterstica de entrega no confivel de dados.
A seguir, mostrado o script, com extenso .tcl, desse cenrio, adaptado de [Greiss 2012]
utilizado para ser executado pelo simulador NS-2, a partir do shell do Linux, como o comando
$ns nome_do_script.tcl.
# Criando o objeto simulador
set ns [new Simulator]
# Abre o arquivo de trace .nam e .tr
set nf [open out.nam w]
set f [open out.tr w]
$ns namtrace-all $nf
$ns trace-all $f
# Define o procedimento "finish"
proc finish {} {
global ns nf f
# Limpa os arquivos trace
$ns flush-trace
# Fecha o arquivo trace
close $nf
close $f
# Envia um comando para o shell e abre o arquivo trace do NAM pelo programa NAM
exec nam out.nam &
92

ANAIS ELETRNICOS V ENUCOMP

exit 0
}
# Cria dois ns
set n0 [$ns node]
set n1 [$ns node]
# Cria um enlace full-duplex entre eles
$ns duplex-link $n0 $n1 1Mb 10ms DropTail
# Cria um agente UDP e anexa-o ao n n0
set udp0 [new Agent/UDP]
$ns attach-agent $n0 $udp0
# Cria uma fonte de trfego e anexa-a ao agente udp0
set cbr0 [new Application/Traffic/CBR]
# Define os parmetros de tamanho dos pacotes gerados e intervalo entre eles
$cbr0 set packetSize_ 500
$cbr0 set interval_ 0.005
$cbr0 attach-agent $udp0
# Cria um agente null0 e anexa-o ao n n1
set null0 [new Agent/Null]
$ns attach-agent $n1 $null0
# Conecta os agentes udp0 e null0 (transmissor e receptor)
$ns connect $udp0 $null0
93

ANAIS ELETRNICOS V ENUCOMP

# Escalonador de eventos para a aplicao CBR


$ns at 0.5 "$cbr0 start"
$ns at 4.5 "$cbr0 stop"
# Chama o procedimento "finish" no instante de tempo 5 segundos.
$ns at 5.0 "finish"
# Executa a simulao
$ns run
A partir desse cdigo, salvo com extenso .tcl e executado pelo comando acima citado,
tem-se dois arquivos trace: out.nam e out.tr. O primeiro, o arquivo que ser executado pelo
software NAM (Network Animator) e ser responsvel por realizar a animao grfica da
simulao. Com ele, se tem a possibilidade de observar se a simulao ocorreu da forma como
foi programada, pela visualizao grfica que este fornece ao pesquisador, assim como
mostrado pela figura 5.15, em um exemplo de utilizao do software NAM. O segundo, out.tr,
um arquivo trace que contm todos os dados da simulao, ou seja, todos os eventos que
ocorreram ao longo do tempo dado, como o instante de tempo de cada pacote enviado, se ele foi
recebido e/ou descartado, e at mesmo se passou por fila em algum enlace que trafegou. A
seguir, nas figuras 5.16 e 5.17, mostrado parte do cdigo do arquivo trace gerado pela
simulao acima e o que cada campo representa na anlise dos dados, respectivamente.

Figura 5.15 Visualizao dos fluxos de dados e estouro de fila, com o software NAM.

94

ANAIS ELETRNICOS V ENUCOMP

Figura 5.16 Exemplo de parte do arquivo trace gerado na simulao.

Figura 5.17 Anlise dos campos do arquivo trace de uma simulao cabeada, adaptada de [Chung
and Claypool 2012].

Na figura 5.16, tem-se na primeira coluna o evento, que pode ser "r", "+", "-" e "d",
referente ao recebimento do n ou monitoramento da fila. Logo aps est o instante de tempo em
que ocorreu o evento, depois vm os campos "from node" e "to node", que representa o n
emissor e receptor. A coluna 5 ("pkt size") referente ao tamanho do pacote. O campo "flags"
representa os campos seguintes, que so: Id do fluxo de dados do pacote ("fid"), o endereo do
n fonte ("src addr") e do n destino ("dst addr") e so representados por "n.porta", o nmero
de sequncia do pacote ("seq num") e o id do pacote ("pkt id"). A partir desses dados do arquivo
trace, possvel realizar diversas consultas com objetivo de receber informaes a cerca de
determinados parmetros de simulao, como exemplo:
- Vazo de um link (troughput);
- ndice de perdas de pacotes;
- Atraso mdio na entrega dos pacotes (latncia);
- Variao no atraso (jitter);
5.8.3. Simulando uma rede sem fio
A simulao de redes sem fio tambm segue os mesmos 5 passos para desenvolvimento do script
de simulao. A diferena est na criao dos parmetros de topologia, que na rede wireless,
tem-se desde informaes da camada fsica at a camada de enlace, definidas pelo usurio.
Abaixo segue um script de simulao, adaptado de [Rodolfo 2009] com dois ns sem fio (n n(0)
e n n(1)) que se movem, alm de haver transmisso de dados FTP, por meio do agente de
roteamento TCP, entre eles (do n n(0) ao n n(1)), em um ambiente com dimenso 500x500m
(eixo z definido como z=0). A figura 5.18, retirada de [Rodolfo 2009], mostra o modelo de
simulao utilizado.

95

ANAIS ELETRNICOS V ENUCOMP

Figura 5.18 Modelo pretendido para simulao [Rodolfo 2009].

Segue script .tcl abaixo:


# Define opes
set val(chan)

Channel/WirelessChannel;

# tipo do canal

set val(prop)

Propagation/TwoRayGround;

# modelo de radio-propagao

set val(netif)

Phy/WirelessPhy;

# tipo de interface de rede

set val(mac)

Mac/802_11;

# tipo MAC

set val(ifq)

Queue/DropTail/PriQueue;

# tipo de interface de fila

set val(ll)

LL;

# tipo de camada de enlace

set val(ant)

Antenna/OmniAntenna;

# modelo da antena

set val(ifqlen)

50;

# num mx de pacotes em ifq

set val(nn)

2;

# numero de ns mveis

set val(rp)

DSDV;

# protocolo de roteamento

# Inicializa variveis globais


set ns_
set tracefd

[new Simulator]
[open simple.tr w]
96

ANAIS ELETRNICOS V ENUCOMP

$ns_ trace-all $tracefd

# Seta topografia da simulao


set topo

[new Topography]

$topo load_flatgrid 500 500


# Cria objeto GOD (Guarda informaes sobre a conectividade da topologia)
create-god $val(nn
# Configurao dos ns
$ns_ node-config -adhocRouting $val(rp) \
-llType $val(ll) \
-macType $val(mac) \
-ifqType $val(ifq) \
-ifqLen $val(ifqlen) \
-antType $val(ant) \
-propType $val(prop) \
-phyType $val(netif) \
-channelType $val(chan) \
-topoInstance $topo \
-agentTrace ON \
-routerTrace ON \
-macTrace OFF \
-movementTrace OFF
#Criao dos ns
for {set i 0} {$i < $val(nn) } {incr i} {
97

ANAIS ELETRNICOS V ENUCOMP

set node_($i) [$ns_ node]


$node_($i) random-motion 0

; #Desabilita movimento randmico dos ns

}
# Define coordenadas iniciais para os ns (X,Y, Z=0)
$node_(0) set X_ 5.0
$node_(0) set Y_ 2.0
$node_(0) set Z_ 0.0

$node_(1) set X_ 390.0


$node_(1) set Y_ 385.0
$node_(1) set Z_ 0.0
# Criao de movimentos dos ns
# N n(1) vai para posio x=25m y=20m com uma velocidade de 15m/s, no instante de tempo
50s.
$ns_ at 50.0 "$node_(1) setdest 25.0 20.0 15.0"
$ns_ at 10.0 "$node_(0) setdest 20.0 18.0 1.0"
$ns_ at 100.0 "$node_(1) setdest 490.0 480.0 15.0"
# Criando a gerao de trfego
set tcp [new Agent/TCP]
$tcp set class_ 2
set sink [new Agent/TCPSink]
$ns_ attach-agent $node_(0) $tcp
$ns_ attach-agent $node_(1) $sink
$ns_ connect $tcp $sink
98

ANAIS ELETRNICOS V ENUCOMP

set ftp [new Application/FTP]


$ftp attach-agent $tcp
$ns_ at 10.0 "$ftp start"

# Reseta as configuraes dos ns para encerramento da simulao


for {set i 0} {$i < $val(nn) } {incr i} {
$ns_ at 150.0 "$node_($i) reset";
}
$ns_ at 150.0 "stop"
$ns_ at 150.01 "puts \"NS EXITING...\" ; $ns_ halt"
proc stop {} {
global ns_ tracefd
$ns_ flush-trace
close $tracefd
}
# Inicia simulao
puts "Starting Simulation..."
$ns_ run
Aps a execuo do script de simulao acima gerado o arquivo simple.tr, que um
arquivo de trace completo da simulao, com informaes a cerca de cada evento disparado na
mesma. A figura 5.19 mostra um exemplo de uma linha de cdigo do arquivo trace de uma
simulao, e logo abaixo tm-se a caracterizao de todos os campos.

Figura 5.18. Exemplo de parte do arquivo trace de uma simulao de redes wireless.

Abaixo segue a descrio de todos os campos referentes figura acima.


- s: envio de pacote (tambm pode ser r - recepo, D - descarte, f - encaminhamento, c coliso);
99

ANAIS ELETRNICOS V ENUCOMP


- 0.029365548: instante de tempo em que ocorreu a operao;
- _1_: n onde foi executado a operao;
- MAC/RTR/AGT: indica a camada que gerou a operao;
- ---: flags;
- 0: identicador do pacote;

- message/tcp: nome do pacote;


- 90 (bytes): tamanho do pacote;

- 0: tempo de durao do pacote contido no cabealho MAC;

- ffffffff: endereo de MAC de destino;


- 1: endereo MAC de quem enviou o pacote;
- 800: tipo de cabealho MAC do pacote (800 = ARP);
- -------: flags;
- [1:255 1:255 32 0]: cabealho IP;
- 1: endereo IP de quem originou o pacote;
- 255: porta de origem;
- 1: endereo IP do n destino;
- 255: porta do n destino;
- 32: campo TTL (time to live);
- 0: indica o endereo do prximo salto (hop);

5.9. Consideraes finais


Este trabalho teve por objetivo teorizar sobre o tema de redes de computadores, abordando suas
caractersticas que vo desde os primeiros estudos de conexo entre sistemas at os modelos OSI
e TCP, alm de conceituar as formas de anlise de desempenho de sistemas, e mostrando o
porque da escolha da simulao computacional como foco deste trabalho. Foram relatadas
simulaes com redes cabeadas e sem fio, a partir do programa NS-2, com um exemplo prtico
de todo o desenvolvimento da simulao, que vai desde o planejamento da topologia de rede at
a anlise dos arquivos trace, que contm as informaes sobre todos os eventos ocorridos na
simulao, seja recebimento, envio, enfileiramento ou descarte de pacotes. O ambiente
operacional necessrio para a iniciao de pesquisas que tm como foco a simulao
computacional na rea de redes tambm foi discutido e focado no projeto Liowsn, um sistema
operativo proposto pelo autor desse artigo, e que visa prover um ambiente com vrias
ferramentas mais utilizadas na literatura j instaladas e pr-configuradas para uso. Portanto, o
trabalho foi concludo, seguindo como base de ensino os mtodos descritos acima, visando
sempre a adequao desse contedo de forma a torn-lo o mais claro possvel, tanto para
100

ANAIS ELETRNICOS V ENUCOMP

docentes, que desejam repassar seus conhecimentos em sala de aula, como para pesquisadores
em geral, que necessitam desse contedo para o desenvolvimento de projetos na rea.

Referncias

Surman, G. (2002) "Understand security using the OSI model", SANS Institute - The Information Security
Reading, March 20.

Danzig, P., Jamin, S. (1991) "tcplib: A Library of TCP/IP Traffic characteristics". Technical
Report CS-SYS-91-01, University of Southern California.
Lima, S. H. (2006) "Comunicao de Dados - Arquitetura TCP em rede de dados", Engenharia
de Telecomunicaes, Universidade de Santa Ceclia - UNISANTA.
Marcari, E., Manacero, A. (2002) "Classificao de Tcnicas para Anlise de Desempenho de
Sistemas Paralelos e Distribudos", FAPESP - Fundao de Amparo Pesquisa do Estado de
So Paulo.
Freitas, P. J. F. (2008) "Introduo Modelagem e Simulao de Sistemas: com Aplicaes em
Arena", 2. ed. Florianpolis: Visual Books Ltda. 372p. ISBN 978-85-7502-228-3.
Chwif, L., Medina, A. C. (2006) "Modelagem e Simulao de Eventos Discretos: Teoria e Aplicaes", 1
ed. So Paulo: Bravarte. 254 p. ISBN 85905978-1-4.

Jain, R. (1991) "The Art of Computer Systems Performance Analysis: Techniques for
Experimental Design, Measurement, Simulation, and Modeling", John Wiley & Sons, 2nd
edition.
Longman Dictionary of Contemporary English (2003), 3a Edio, Pearson Education do Brasil
LTDA.
Law, M. A., Mccomas, M. G. (1999) "Simulation of Manufacturing Systems", Proceedings of
the Winter Simulation Conference. Tucson.
Banks, J., (1999) "Introduction to Simulation", Proceeding of the Winter conference, Atlanta.
Duarte, R. N. (2003) "Simulao computacional: Anlise de uma clula de manufatura em lotes
do setor de auto-peas", Dissertao (Mestrado em Engenharia de Produo) Programa de
Ps-Graduao em Engenharia de Produo, Itajub, MG, UNIFEI.
Filho, C. P. (1995) "Introduo simulao de sistemas", 159f. Campinas, SP: Editora da
UNICAMP.
Barr, R., Haas, Z. J.
http://jist.ece.cornell.edu/.

(2004)

"JiST/SWANS

Sinalgo
(2007)
"Sinalgo
Simulator
http://disco.ethz.ch/projects/sinalgo/index.html.
Fall, K., Varadhan, K. (2007)
documentation.html, August.

"The

ns

Java
for

manual",

in

Simulation

Network

Time",

Algorithms",

http://www.isi.edu/nsnam/ns/ns-

Gyrgy, P. (1993), "OMNeT: Objective Modular Network Testbed", MASCOTS '93:


Proceedings of the International Workshop on Modeling, Analysis, and Simulation On
Computer and Telecommunication Systems: 323--326.
101

ANAIS ELETRNICOS V ENUCOMP

Levis, P., Lee N., Welsh M., Culler, D. (2003) "TOSSIM: Accurate and Scalable Simulation of
Entire TinyOS Applications", In: Proceedings of the First ACM Conference on Embedded
Networked Sensor Systems.
Issariyakul, T., Hossain, E. (2012) "Introduction to Network Simulator NS2",
DOI
10.1007/978-1-4614-1406-3
3, Springer Science+Business Media, LLC.

Anton, R. E. (2003) "Anlise de desempenho de protocolos para estabelecimento de chave de grupo em


redes ad hoc", X, 53 p. 29,7 cm (COPPE/UFRJ, M.Sc., Engenharia Eltrica), Tese - Universidade Federal
do Rio de Janeiro, COPPE.
Coutinho, M. M. (2007) "Network Simulator - Guia bsico para iniciantes", http://gredes.ifto.edu.br/wpcontent/uploads/livroNS.pdf.

Nabble. (2012) "Network Simulator ns-2 - The Official Discussion List", Research on errors in
the
installation
of
the
ns2.
http://old.nabble.com/forum/Search.jtp?query=installation+error+ns&local=y&forum=15582
&daterange=0&star tdate=&enddate=/.
The Linux Questions. (2012) "Forum of the linux users", Research on errors in the installation of
the module Mannasim in Ns-2.
http://www.linuxquestions.org/questions/search.php?searchid=5438840.
Gname. 2012 "Forum of discussion on the NS-2", Research on errors in the installation of the
module Mannasim in
Ns-2.
http://search.gmane.org/?query=mannasim+error+installation&author=&group=gmane.netwo
rk.simulator.isi&sort=relevance&DEFAULTOP=and&xP=Zmannasim%09Ze
rror&xFILTERS=Gnetwork.simulator.isi---A
The Mail Archive. (2012) "Discussion list of the ns-users" Research on errors in the installation
of modules on the ns-2. http://www.mail-archive.com/search?l=nsusers%40isi.edu&q=error+installation+module.
Lustosa, M., Singh S. (2012) "Liowsn Project: An Operating System Remastered for Works with
Simulation of Wireless Sensor Networks", In: International Journal of Computer Applications
52(12):32-37, August 2012. Published by Foundation of Computer Science, New York, USA.
Greiss,
M.
(2012)
"Tutorial
for
http://www.isi.edu/nsnam/ns/tutorial/index.html.

the

network

simulator

ns,

Chung, J., Claypool, M. (2012) "NS by Example", Worcester Polytechnic Institute (WPI),
http://nile.wpu.edu/NS/purpose.

102

ANAIS ELETRNICOS V ENUCOMP

Desenvolvimento de Aplicaes para Plataforma


Google Android
Fbio de Jesus Lima Gomes, Manoel Taenan Ferreira de Souza, Rafael Madureira
Lins de Arajo

Abstract
With the evolution of mobile technology, mobile devices have become an important source of
transmission and reception of information, creating the need for more robust operating systems
and a considerable demand for the development of services and applications. The Google
Android platform was created in order to fill this gap. Thus, this mini-course aims disseminate
concepts about developing services and applications for the Google Android platform. Also we
will describe how mobile applications can consume web services via REST architecture.
Resumo
Com a evoluo da tecnologia mvel, os dispositivos mveis tornaram-se uma importante fonte
de transmisso e recepo de informaes, gerando a necessidade de sistemas operacionais
mais robustos e uma considervel demanda para o desenvolvimento de servios e aplicaes. A
plataforma Google Android surgiu para preencher esta lacuna. Dessa forma, este mini-curso
pretende disseminar conceitos envolvidos no desenvolvimento de servios e aplicaes para a
plataforma Google Android. Tambm ser abordado como aplicaes para dispositivos mveis
podem consumir servios web atravs da arquitetura REST.

6.1. Introduo
O Google Android OS, tambm chamado apenas de Android, um sistema operacional de cdigo aberto
para dispositivos mveis e utiliza uma verso modificada do Sistema Operacional Linux. Permite a
desenvolvedores criarem aplicaes Java que controlam o dispositivo atravs de bibliotecas
desenvolvidas pela Google. O Android tambm prov uma infra-estrutura robusta de execuo de
aplicaes Java. Apesar de ser recente (seu lanamento foi em 2008), o Android foi adotado rapidamente
por diversos fabricantes de dispositivos mveis e atualmente a plataforma que mais cresce no mundo.
Atualmente, a plataforma Google Android mantida pela OHA (Open Handset Alliance), um
grupo formado por mais de 40 empresas que se uniram para inovar e acelerar o desenvolvimento de
aplicaes e servios para dispositivos mveis, trazendo aos consumidores uma experincia mais rica em
termos de recursos e menos onerosa financeiramente para o mercado. Pode-se dizer que a plataforma
Google Android a primeira plataforma completa, aberta e livre para dispositivos mveis. O Android
SDK o kit de desenvolvimento que disponibiliza as ferramentas e APIs necessrias para desenvolver
aplicaes para a plataforma Google Android, utilizando a linguagem Java.

103

ANAIS ELETRNICOS V ENUCOMP

Este mini-curso visa abordar conceitos envolvidos sobre desenvolvimento de aplicaes para a
plataforma Google Android, apresentando os principais aspectos do desenvolvimento de aplicaes para
dispositivos mveis, com enfoque para o desenvolvimento de aplicaes que consomem servios web
utilizando a linguagem Java. Pretende-se capacitar os participantes no desenvolvimento de aplicaes
Java para plataforma Google Android com base no Android SDK e demonstrar a arquitetura REST
(Representational State Transfer) de desenvolvimento de aplicaes web. O curso procura explorar as
funcionalidades dessas tecnologias atravs do desenvolvimento passo a passo de aplicaes-exemplos.

6.2. Arquitetura do Google Android


Android uma pilha de software para dispositivos mveis que inclui sistema operacional, middleware e
aplicaes-chave. Esta pilha possui 4 nveis (Google, 2011):

Figura 6.1. Arquitetura da Plataforma Google Android (Google, 2011)

1.

LINUX KERNEL: a base da pilha o kernel. O Google usou a verso 2.6 do Linux para construir o
kernel do Android, que inclui servios essenciais do sistema, tais como, gerenciamento de memria,
gerenciamento de processos, gerenciamento de energia, configuraes de segurana, configuraes
de rede e drivers. O kernel tambm atua como uma camada de abstrao entre o hardware do
dispositivo e os outros nveis da pilha de software.

2.

RUNTIME ANDROID e LIBRARIES: acima do kernel esto as bibliotecas do Android e o android


runtime. Android runtime consiste de um conjunto de bibliotecas que fornece a maioria das
funcionalidades disponveis nas principais bibliotecas da linguagem de programao Java e de uma
Mquina Virtual Dalvik (DVM). Uma aplicao Android roda em seu prprio processo, com a sua
104

ANAIS ELETRNICOS V ENUCOMP

prpria instncia da mquina virtual Dalvik. Dessa forma, nenhuma aplicao dependente de outra;
se uma aplicao pra, ela no afeta quaisquer outras aplicaes executando no dispositivo e isso
simplifica o gerenciamento de memria. Dalvik foi escrito de modo que um dispositivo possa
executar vrias VMs eficientemente. Android possui um conjunto de bibliotecas C/C ++ usado por
diversos componentes da plataforma. As principais bibliotecas so listadas abaixo:

System C library uma implementao da biblioteca padro C (libc), derivada do sistema


operacional BSD, alterada para dispositivos embarcados baseados no Linux;

Media Libraries baseada no OpenCORE da PacketVideo; estas bibliotecas suportam


reproduo e gravao de muitos formatos populares de udio, vdeo e imagem, tais como,
MPEG4, H.264, MP3, AAC, AMR, JPG, e PNG.

Surface Manager gerencia acesso ao sub-sistema de exibio e compe as camadas grficas 2D


e 3D para as aplicaes.

LibWebCore um moderno engine para um navegador web que alimenta o navegador do


Android.

SGL engine de grficos 2D.

3D libraries uma implementao baseada nas APIs OpenGL ES 1.0; estas bibliotecas usam
acelerao de hardware 3D (quando disponvel) ou o software embutido no sistema.

FreeType renderizador de bitmap e fontes vetorizadas.

SQLite engine leve e poderoso de banco de dados relacional para as aplicaes.

3.

APPLICATION FRAMEWORK: O prximo nvel o framework de aplicao que consiste nos


programas que gerenciam as funes bsicas do telefone, tais como, alocao de recursos,
aplicaes de telefone, mudana entre processos ou programas e informaes sobre a localizao
fsica do aparelho. Os desenvolvedores de aplicaes tm acesso total ao framework de aplicao do
Android. Isso possibilita tirar vantagem das capacidades de processamento e do suporte de recursos
do Android.

4.

APPLICATIONS: No topo da pilha esto as aplicaes em si. Aqui se encontram as funes


bsicas do dispositivo, como fazer chamadas telefnicas, acessar o navegador web ou
acessar sua lista de contatos. Esta a camada do usurio comum, que utiliza a interface de
usurio. Apenas os programadores do Google, os desenvolvedores de aplicao e os
fabricantes de hardware acessam as camadas inferiores da pilha. O Android contm um
conjunto de aplicativos, implementados em Java, como um cliente de e-mail, programa para
SMS (Short Message Service), calendrio, mapas, navegador e gerenciador de contatos.

6.3. Componentes de uma aplicao Android


As aplicaes Android podem ser divididas em quatro tipos de componentes bsicos que so definidos
pela prpria arquitetura (ABLESON,2007), so eles:
6.3.1. Activities
Funcionam como mediadores que definem como as informaes sero apresentadas ao usurio, alm de
controlar o fluxo da aplicao. Elas podem interagir com o usurio e trocar informaes com outras
activities ou services (MEIER,2009).
105

ANAIS ELETRNICOS V ENUCOMP

A maioria do cdigo que escreveremos para uma aplicao Android ir executar no contexto de
uma activity. Activities normalmente correspondem a telas: cada activity mostra uma tela para o usurio.
Quando esta no est em execuo, o sistema operacional pode elimin-la para liberar memria.
6.3.1.1. Ciclo de vida de uma Activity
Ao longo de sua criao at o momento de sua eliminao da memria, uma activity atravessar seis
estados, podemos referenciar cada estado pelos mtodos:
OnCreate
chamado quando a activity criada. Ela obrigatria e chamada apenas uma vez, deve referenciar a tela
que ser apresentada ao usurio.
OnStart
chamado quando a activity est ficando visvel e j tem uma tela definida.
OnResume
chamado quando a activity foi parada temporariamente e est retornando execuo.
OnPause
chamado quando a activity est sendo tirada do topo da execuo. Geralmente utilizado para salvar o
estado da aplicao.
OnStop
chamado quando a activity no est mais visvel e est em segundo plano.
OnDestroy
Executa os ltimos processamentos antes da activity ser literalmente encerrada.

106

ANAIS ELETRNICOS V ENUCOMP

Figura 6.2. Ciclo de vida de uma Activity.

6.3.2. Services
So programas que executam em segundo plano. No interagem diretamente com o usurio e podem ficar
executando por tempo indefinido.
6.3.3. Broadcast e Intent Receivers
So componentes que ficam aguardando a ocorrncia de um determinado evento, pode-se entender como
evento a inicializao do sistema operacional, uma chamada de voz, a chegada de um SMS, um evento
disparado por uma aplicao (MEIER,2009).
Intents so elementos chave no Android, porque facilitam a criao de novas aplicaes a partir
de aplicaes j existentes. Precisaremos utilizar Intents para interagir com outras aplicaes e servios
que proporcionaro informaes necessrias para nossa aplicao.
6.3.4. Content Providers

107

ANAIS ELETRNICOS V ENUCOMP

So os compartilhadores de contedo entre as aplicaes, uma aplicao pode requisitar informaes de


outra, por exemplo, uma aplicao pode receber dados da lista de contatos que nativa do Android, e com
base nesses dados, realizar algum processamento (LECHETA,2010).

6.4. Android SDK e seus pacotes para implementao de aplicaes


O SDK um conjunto de ferramentas utilizadas para desenvolver aplicaes para a plataforma Android.
Possui um emulador para simular o dispositivo mvel e uma API completa para a linguagem Java, com
todas as classes necessrias para desenvolver as aplicaes (BURNETTE, 2008).
Existem atualmente trs verses do SDK para atender a maior parte dos desenvolvedores: verso
para Windows, Linux e Mac OS.
O ambiente de desenvolvimento que nos utilizaremos nos exemplos seguintes composto, alm
do JDK e Android SDK, pelo Eclipse IDE verso Galileo e o Android Development Plugin (ADT), um
plugin que ajudar na integrao da IDE com o emulador.
Os componentes do ambiente de desenvolvimento podem ser encontrados nos links a seguir:

JDK: http://www.oracle.com/technetwork/java/javase/downloads/index.html

Android SDK: http://developer.android.com/sdk/

Eclipse IDE: http://www.eclipse.org/downloads/

ADT: http://developer.android.com/sdk/eclipse-adt.html
6.4.1. Conceitos bsicos do Android
6.4.1.1 Criando uma Activity
A classe android.app.activity utilizada para criar uma tela na aplicao. Essa tela composta de vrios
elementos visuais, os quais no Android so representados pela classe android.view.View (LECHETA,
2010).
A classe android.view.View pode representar algo simples como um boto, um checkbox ou
imagem, como tambm pode representar algo complexo como um gerenciador de layout, a qual pode
conter vrias views aninhadas para organizar na tela.

108

ANAIS ELETRNICOS V ENUCOMP

Figura 6.3. Exemplo de uma Activity.

O mtodo setContentView(view) o que faz a ligao entre a activity e a view e recebe como
parmetro a view que ser exibida na tela.
6.4.1.2 A classe R
A classe R criada automaticamente pelo ADT e no pode ser alterada manualmente. Nela existem
constantes para os recursos do projeto. Cada constante nomeada com o nome do recurso, que deve ser
escrito com letra minscula e sem espao, e recebe um valor inteiro.
6.4.1.3 O arquivo AndroidManifest.xml
Toda aplicao Android deve ter um arquivo AndroidManifest.xml em seu diretrio raiz. Esse arquivo
apresenta informaes essenciais sobre a aplicao para o sistema operacional, que deve possuir
informaes do sistema antes que possa executar qualquer solicitao do cdigo do aplicativo
(MEDNIEKS,2009).
Ele armazena informaes como o nome do pacote da aplicao, descreve os componentes da
aplicao, determina qual processo da aplicao vai armazenar os componentes, declara de que formas as
solicitaes devem ter permisses para acessar partes protegidas da API e interagir com outras aplicaes.
Declara tambm as permisses que os outros processos sero obrigados a ter, fim de interagir com os
componentes da aplicao, enumera classes e perfis e fornece outras informaes sobre como a aplicao
ser executada, declara qual o nvel mnimo da API que o aplicativo exige e enumera bibliotecas que
estaro relacionadas com a aplicao.

109

ANAIS ELETRNICOS V ENUCOMP

Figura 6.4. Exemplo de arquivo AndroidManifest.xml

6.4.1.4 Criao de uma interface visual


O Android fornece um sofisticado e poderoso modelo, baseado em componentes, para construir sua
interface, baseado no esquema de classes fundamentais: android.view.View e android.view.ViewGroup, e
inclui tambm as suas classes filhas chamadas de widgets e layouts respectivamente(LECHETA, 2010).
Podemos citar alguns exemplos de widgets como Button, TextView, EditText, ListView,
CheckBox, RadioButton, Gallery, Spinner, e outros.
Podemos citar, tambm, exemplos de layouts como LinearLayout, FrameLayout, RelativeLayout
entre outros.
Para exemplificar a criao da interface visual criaremos uma tela de login, a qual conter os
campos de nome de usurio e senha, e um boto para submet-los.

110

ANAIS ELETRNICOS V ENUCOMP

Figura 6.5. Representao grfica da tela de login.

Figura 6.6. Cdigo da tela de login

Podemos observar que foram utilizados trs tipos de widgets e um layout. Dois TextView que so
utilizados para renderizar strings na tela e dois EditText que so caixas para receber texto. Foi utilizado,
tambm, um Button para enviar os dados e um LinearLayout para organiz-los na tela.
Podemos observar, tambm, alguns atributos como o id que serve como identificador de cada
componente, o text que tem o funcionamento semelhante ao value do HTML e o atributo password que
esconde os caracteres digitados no nosso EditText.

6.4.1.5 O mtodo findViewById()


111

ANAIS ELETRNICOS V ENUCOMP

Ao construir uma tela usando um arquivo XML de layout, surge a necessidade de recuperar os objetos
definidos no arquivo dentro do cdigo-fonte da aplicao para obter seus valores ou definir atributos
(LECHETA, 2010).
Podemos recuperar um objeto de viso atravs do seu identificador nico (android:id), passando-o
como parmetro no mtodo findViewById(id). Esse mtodo recebe o id do componente desejado e
retorna uma subclasse de android.view.View, como as classes Button, TextView e EditText.
Na figura a seguir mostrado como recuperar a senha inserida pelo usurio atravs do mtodo
findViewById(id) e uma pequena ajuda da classe R.

Figura 6.7. Exemplo da utilizao do mtodo findViewById()

6.4.2 Intent
Uma intent representa uma inteno da aplicao em realizar alguma ao. Ela envia uma mensagem ao
sistema operacional chamada de broadcast. Ao receber essa mensagem, o sistema operacional tomar as
decises necessrias (LECHETA, 2010).
Uma intent representada pela classe android.content.Intent e pode ser utilizada para enviar
uma mensagem ao sistema operacional, abrir uma nova tela da aplicao, utilizando o mtodo
startActivity(intent), solicitar ao sistema operacional que ligue para determinado nmero de celular, abrir
o browser em um determinado endereo da internet, exibir algum endereo, localizao ou rota no Google
Maps dentre outros.
6.4.2.1 Navegao entre telas com passagem de parmetros

112

ANAIS ELETRNICOS V ENUCOMP

Existem dois mtodos de se iniciar uma nova tela (activity), atravs dos mtodos startActivity(intent) e
startActivityForResult(intent,codigo) que apenas inicia uma nova activity ou inicia uma nova activity e
cria um vnculo para ser utilizado ao retornar respectivamente (PEREIRA, 2009).
Para que o sistema operacional possa reconhecer nossa nova activity, necessrio adicionar seu
endereo no arquivo AndroidManifest.xml.

Figura 6.8. Trecho do arquivo AndroidManifest.xml que contm a nova activity.

Podemos enviar informaes para outras telas atravs de uma intent.

6.9. Exemplo de passagem de parmetro e troca de tela atravs de uma intent

Figura

Podemos observar na figura 6.9, que criada uma intent com a activity da tela-alvo, passado
como parmetro atravs do mtodo putExtra() o texto contido no EditText referente ao usurio para a
prxima tela, e finalmente, a nova activity iniciada atravs do mtodo startActivity(intent).

113

ANAIS ELETRNICOS V ENUCOMP

Figura 6.10. Cdigo da classe SegundaTela.

Observando essa classe, vemos que a intent capturada atravs do mtodo getIntent() e
recebemos o parmetro do login atravs do mtodo getStringExtra(string). O contedo da tela apenas
um TextView com uma mensagem de boas vindas.
6.4.2.2 Intents Nativas do Android
Vimos no exemplo anterior que possvel iniciar uma nova activity atravs das intents. O Android possui
alguns tipos de intents pr-definidas que podemos utilizar para enviar mensagens ao SO, porm, algumas
delas necessitam de permisses para executar, tais permisses precisam ser registradas no arquivo
AndroidManifest.xml (PEREIRA,2009).
Vrias intents como a ACTION_VIEW, que serve para iniciar o navegador, a ACTION_CALL,
que utilizada para realizar chamadas, a ACTION_PICK, que serve para visualizar todos os contatos,
dentre outras, so utilizadas em aplicaes Android.
A seguir veremos um exemplo de como chamar o navegador atravs de uma intent pr-definida
no Android.

Figura 6.11. Exemplo da iniciao do navegador atravs de uma Intent.

O exemplo demonstra a utilizao da intent ACTION_VIEW, mas, para usar essa intent
necessria a permisso INTERNET que deve ter sido registrada previamente.

114

ANAIS ELETRNICOS V ENUCOMP

Figura 6.12. Inserindo a permisso INTERNET no arquivo AndroidManifest.xml

6.4.3 Intent Filter


Podemos utilizar intents para enviar mensagens ao sistema operacional, definindo uma ao que
identifique essa intent. Ento quando a mensagem for enviada ao sistema operacional ela seja identificada
por essa ao, e somente uma activity que esteja mapeada para aquela ao ser executada (MEDNIEKS,
2009).
Esse tipo de rotina bem prtica quando queremos que mais de um programa esteja configurado
para receber uma ao (LECHETA, 2010).
Para definir essa ao, basta criar uma Intent usando seu construtor, que recebe uma string que
identifica a ao, como, por exemplo:

Figura 6.13. Exemplo de uma chamada de ao por uma Intent.

Logicamente, algum tem que responder por essa ao. Para isto, precisamos mapear um Intent
Filter no arquivo AndroidManifest.xml, para escutar esse chamado e delegar a execuo uma activity.

Figura 6.14. Cdigo fonte da classe SegundaTela.

115

ANAIS ELETRNICOS V ENUCOMP

Figura 6.15. Exemplo de mapeamento de uma Intent Filter.

6.4.4 BroadcastReceiver
A classe BroadcastReceiver utilizada para responder a determinados eventos enviados por uma intent.
Ela sempre executada em segundo plano durante pouco tempo, normalmente dez segundos. No deve
ter interface grfica ou interao com o usurio (LECHETA, 2010).
utilizada normalmente para executar algum processamento sem que o usurio perceba, em
segundo plano.
Assim como uma activity, devemos declar-lo no arquivo AndroidManifest.xml atravs da tag
<receiver>, deve ser declarada, tambm, um Intent Filter para o broadcast, ou podemos registr-lo
dinmicamente, utilizando o mtodo registerReceiver(receiver,filtro), que tem como parmetros uma
classe-filha de IntentReceiver e uma instncia da classe IntentFilter que possui a configurao da ao e a
categoria (LECHETA, 2010).
O mtodo para enviar uma mensagem para um broadcast diferente do utilizado para uma intent
que chama uma activity. O mtodo utilizado o sendBroadcast(intent) que envia uma mensagem para
todas as aplicaes instaladas no celular.
Para implementar um BroadcastReceiver deve-se extender a classe BroadcastReceiver e
implementar o mtodo onReceive() que ser executado assim que o IntentFilter receber a mensagem.

116

ANAIS ELETRNICOS V ENUCOMP

Figura 6.16. Utilizando o mtodo sendBroadcast(intent).

Figura
6.17.

Exemplo de um BroadcastReceiver.

Apenas por motivos didticos foi utilizado a classe Toast para verificar o funcionamento do
BroadcastReceiver. Recomenda-se que no tenha nenhum tipo de interao com o usurio.

117

ANAIS ELETRNICOS V ENUCOMP

Figura 6.18. Exemplo do mapeamento de um BroadcastReceiver.

6.4.5 Notification
A classe Notification utilizada para exibir informaes ao usurio sem que este seja interrompido se
estiver executando alguma atividade. O usurio pode escolher visualizar as informaes neste momento,
ou depois (LECHETA, 2010).
A notificao exibida na barra de status do celular para chamar a ateno do usurio. Ao ser
visualizada, a intent configurada pode uma abrir uma nova activity ou pode ser usada para iniciar um
servio por exemplo (MEIER, 2009).
Um exemplo de notificao a recepo de uma nova SMS, onde usurio pode decidir visualizla ou no.
Para criar uma notificao necessrio capturar um servio do Android chamado de
NOTIFICATION_SERVICE, ser necessrio, tambm utilizar a classe PendingIntent que criar uma
intent que ficar pendente at o usurio decidir visualizar a notificao:

Figura 6.19. Exemplo da criao de uma notificao.

118

ANAIS ELETRNICOS V ENUCOMP

Podemos observar, que o construtor da classe Notification recebe trs parmetros: o cone que
dever ser exibido, o ttulo da notificao e a hora que aparecer do lado da notificao.
Observamos, tambm, que deve-se informar atravs do mtodo setLatestEventInfo, a mensagem
que aparecer na barra de status assim que a notificao for reconhecida pelo servio de notificaes do
android, o ttulo da notificao e a intent que dever ser chamada quando o usurio visualizar a
notificao.

Figura 6.20. Classe que ser instanciada quando a notificao for visualizada.

A figura anterior mostra a classe que ser instanciada quando o usurio visualizar a notificao.
Capturamos o servio de notificaes do android, e pedimos para que a notificao no aparea mais na
barra de status atravs do mtodo cancel(int) que recebe como parmetro o id da notificao.
6.4.6 Service
Tm as mesmas caractersticas dos servios dos sistemas operacionais de computador.
So utilizados quando queremos executar algo por tempo indeterminado em segundo plano e que
exija um alto consumo de recursos, memria e CPU (LECHETA, 2010).
Geralmente so iniciados por um BroadcastReceiver para executar algum processamento
demorado, pois um BroadcasReceiver tem um tempo determinado para executar (PEREIRA, 2009).
interessante que os servios tenham suas prprias threads para que fiquem independentes do
programa hospedeiro. Eles tambm possuem um ciclo de vida prprio, semelhante ao de uma Activity,
mas possuem apenas trs estgios: o onCreate, onStart e onDestroy, que desempenham o mesmo papel
que o de uma Activity.

119

ANAIS ELETRNICOS V ENUCOMP

Para iniciar um servio necessrio criar uma activity que chame o mtodo startService(intent).
Para parar um servio existem duas maneiras: a primeira chamar o mtodo stopService(intent), a mesma
intent utilizada para iniciar o servio deve ser usada para par-lo, e a segunda forma o prprio servio
chamar o mtodo stopSelf().

Figura 6.21. Chamando um servio.

Para implementar um servio necessrio estender a classe android.

120

ANAIS ELETRNICOS V ENUCOMP

Figura 6.22. Exemplo de um servio.

Para exemplificar o funcionamento de um servio, utilizamos esta classe, que quando iniciada,
cria uma srie de logs. Podemos observar que mesmo fechando a aplicao que iniciou o servio, ele
continua criando logs at chamar o mtodo stopSelf().

121

ANAIS ELETRNICOS V ENUCOMP

necessrio mapear o servio no arquivo AndroidManifest.xml e configurar um IntentFilter com


a ao que iremos passar como parmetro pela nossa Intent.

Figura 6.23. Exemplo do mapeamento de um servio.

6.4.7 AlarmManager
So eventos agendados no sistema operacional para serem executados no futuro (LECHETA, 2010).
utilizado quando necessrio executar algo uma vez em determinado horrio ou ficar repetindo
de tempos em tempos.
Quando agendados, ficam ativos no sistema at que sejam explicitamente cancelados, ou o
sistema for reiniciado.
Para agendar um alarme, primeiro temos que definir uma intent com o BroadcastReceiver que ir
responder pelo nosso alarme. Depois temos que capturar o servio do Android responsvel pelo
gerenciamento dos alarmes, o AlarmManager.

122

ANAIS ELETRNICOS V ENUCOMP

Figura 6.24. Agendando um alarme.

Figura 6.25. BroadcastReceiver que ser chamado pelo nosso alarme.

6.5. Arquitetura REST de desenvolvimento de aplicaes Web


Vivemos hoje uma febre de Apps pequenos aplicativos auto-contidos que tem uma nica funo e
comumente so interfaces para sistemas Web. A maioria desses aplicativos extremamente dependente
de dados para serem teis e esses dados podem vir dos mais variados lugares por exemplo, a plataforma
123

ANAIS ELETRNICOS V ENUCOMP

Android disponibiliza ao desenvolvedor uma pequena base dados SQLite onde ele pode criar suas tabelas,
armazenar e buscar dados, mas cada vez mais esses dados vm de servios web.
A Web uma plataforma orientada a recursos. Um Recurso pode ser definido como qualquer
coisa que exposta a Web atravs de um identificador e que possamos manipular (ler e/ou escrever)
(WEBBER; PARASTATIDIS, 2010)..
Desde sua formalizao REST2 vem sendo um termo e, mais adequadamente, uma arquitetura de
software de sistemas Web cada vez mais utilizado, estudado e discutido. Esta arquitetura foi proposta pelo
Dr. Roy T. Fielding em 2000 e desde ento vem sendo adotada em vrios sistemas de grande porte como
Twitter, Facebook, Flickr e todas as APIs de servios pblicos do Google como Google Agenda, Google
Health, Google Data e Google Maps.
Veremos a seguir o que REST e, em seguida, formas de se trabalhar com REST em Java.
6.5.1 Definio
O protocolo HTTP, e consequentemente servidores HTTP, um protocolo simples e sem muitos recursos.
Em sua primeira verso ele apresentou endereamento e statelessness: duas caractersticas de seu projeto
que o tornou um avano perante seus rivais e que ainda o mantm escalvel mesmo nos mega-sites de
hoje (RICHARDSON; RUBY, 2007).
Sistemas com esta arquitetura so sistemas Clientes-Servidores comuns, entretanto suas
requisies e respostas so construdas ao redor da transferncia da representao de recursos. Recursos
so os blocos fundamentais de sistemas baseados na web, ao ponto que a Web considerada como
orientada a recursos (WEBBER; PARASTATIDIS, 2010). A abstrao chave de informao do REST
so os recursos. Qualquer informao que pode ser nomeada pode ser um recurso: documentos, imagens,
informaes sobre o tempo, uma pessoa, e assim sucessivamente (FIELDING, 2000). Um dos recursos
mais comuns da Web so pginas HTML, que em sistemas so comumente a representao de um recurso
interno do sistema, por exemplo, uma pgina de exibio de um vdeo do YouTube a representao do
recurso vdeo do sistema.
Um mesmo recurso pode ter vrias representaes diferentes. Utilizando o exemplo do vdeo do
YouTube, uma representao a pgina HTML onde mostrado o vdeo, comentrios, etc. outra
representao vista quando o vdeo incorporado em outra pgina. Nessa representao vemos apenas
um player que carrega o vdeo em questo. Outra representao, um pouco menos conhecida, a
representao em XML3 ou mais recentemente JSON4, ambas tecnologias de transio de dados
hierrquicos.
Devido a essas caractersticas REST tambm requer que as aplicaes faam total distino entre
cliente e servidor atravs da implementao das seguintes caractersticas:

Representational State Transfer Transferncia de Estado Representacional

XML eXtensible Markup Language Linguagem de marcao extensvel.

JavaScript Object Notation Notao de Objetos JavaScript.

124

ANAIS ELETRNICOS V ENUCOMP

1.

Cliente-Servidor: Clientes so separados dos Servidores por uma interface uniforme. Essa diviso
faz com que o cliente no se preocupe com, por exemplo, armazenamento de dados ao passo que o
servidor no se preocupa com interface com o usurio;

2.

Stateless (Sem Estado): A comunicao cliente-servidor ocorre sem que nenhum contexto relativo
ao cliente seja armazenado no servidor entre as requisies. Cada requisio de cada cliente contm
toda informao necessria para atender aquela requisio e a reposta deve conter toda a
informao para satisfazer a requisio;

3.

Cache: Como comum na Web, o cliente pode manter um cache das respostas do servidor,
portanto recomendado que as respostas contenham informaes sobre se podem e como deve ser
feito o cache a fim de evitar que clientes requisitem um mesmo recurso repetidamente. Um bom
cache elimina vrias interaes cliente-servidor desnecessrias o que proporciona escalabilidade e
performance;

4.

Camadas: Um cliente no pode normalmente distinguir se ele est ou no conectado ao servidor


final ou apenas a um intermedirio. Um sistema com vrios servidores permite o balanceamento de
carga, caches compartilhados e ajudam a manter uma boa segurana;

5.

Cdigo sob demanda (opcional): Servidores podem ser capazes de estender a funcionalidade de
um cliente transferindo lgica para que ele execute. Exemplos disso so componentes compilados
como Applets Java ou scripts no lado cliente como JavaScript;

6.

Interface uniforme: Todo cliente obedece ao mesmo formato de requisio e recebe o mesmo
formato de resposta.

A arquitetura REST est fundamentada sob o protocolo HTTP e seus mtodos. Clientes que
acessam recursos informando sua inteno atravs do mtodo que executam sob o recurso. A maioria dos
sistemas hoje em dia segue a seguinte conveno de mtodos HTTP, concebidos para simular operaes
de CRUD:

GET: Leitura;

POST: Escrita;

PUT: Alterao ou Atualizao;

DELETE: Remoo.
Muitas aplicaes novas esto utilizando os princpios REST a fim de obterem um bom nvel de
escalabilidade. Normalmente essas aplicaes disponibilizam a seus usurios uma API dos mtodos
REST disponveis, suas entradas e suas sadas.
Para compreender melhor, vejamos a API de um sistema referncia em tecnologia REST: o
Twitter.
O Twitter disponibiliza em seu website uma extensa e detalhada documentao da API de seu
sistema . uma plataforma de apoio aos desenvolvedores que desejam criar clientes para o Twitter com
5

Disponvel em http://dev.twitter.com/ - Acesso em 12 outubro 2011

125

ANAIS ELETRNICOS V ENUCOMP

pginas de ajuda onde so descritos os mtodos da API, um guia ao desenvolvedor e ferramentas para
ajud-lo.
Chamadas a alguns mtodos da API podem ser feitas, para testes, atravs de um navegador web
qualquer.
Durante a escrita deste texto, a API do Twitter aceita a seguinte chamada:
http://api.twitter.com/1/users/show.xml?screen_name=fat. Para chamar este
mtodo da API basta abrir esta URL em qualquer navegador web.
Ao abrir esta URL em um navegador, o que feito uma chamada a API atravs do mtodo
HTTP GET. Chamadas a qualquer API REST na Web so compostas de 3 partes:
1.

A URL correspondente ao mtodo da API


http://api.twitter.com/1/users/show

2.

Os parmetros da chamada ao mtodo


screen_name = fat

3.

O mtodo HTTP utilizado para chamada aquela URL


Por padro, toda transao HTTP dos navegadores atuais utiliza o mtodo GET.

A URL uma chamada ao mtodo 1/users/show da API do Twitter. Uma particularidade dessa
API a possibilidade de escolha do formato de representao do recurso: XML ou JSON, representado
pela extenso do arquivo na URL.

6.5.2. REST em Java


Em Java chamadas a APIs REST so feitas utilizando chamadas HTTP simples, normalmente com
objetos java.net.URL e java.net.HttpURLConnection. Nos exemplos a seguir utilizaremos a
API do Twitter como exemplo.
A forma mais simples de se executar uma chamada a seguinte:
String apiCall = "<url de chamada a API>";
URL url = new URL(apiCall);
HttpURLConnection conn;
conn = (HttpURLConnection) url.openConnection();
Ao invocar o mtodo openConnection() uma requisio HTTP GET feita a URL
especificada em apiCall. Aps essa chamada, importante verificar o cdigo de resposta dado pelo
126

ANAIS ELETRNICOS V ENUCOMP

servidor. Normalmente um cdigo de resposta 200 significa que tudo ocorreu como esperado. Outros
cdigos de resposta podem ser especificados pela API.
if (conn.getResponseCode() == 200) {
// Tudo ocorreu como esperado.
}
Dessa forma podemos tomar alguma providncia caso ocorra algum erro, e garantir um bom
funcionamento da aplicao.
Aps a confirmao do sucesso da chamada o prximo passo ler os dados da resposta do
servidor. necessrio um cuidado especial com o tipo de dado esperado pois a resposta da API pode ser
uma imagem, ou um documento, ou at mesmo um Stream de dados. Vamos considerar que a resposta a
nossa chamada est em formato textual, caso qual podemos utilizar a seguinte tcnica para captar o
resultado num formato mais cmodo para manipulao:
BufferedReader reader = new BufferedReader(new
InputStreamReader(conn.getInputStream()));
StringBuilder str = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
str.append(line);
}
reader.close();
Aps o recebimento da resposta, uma boa prtica sempre fechar a conexo junto ao servidor
invocando o mtodo disconnect():
conn.disconnect();
Dessa forma podemos fazer chamadas a quaisquer API REST utilizando Java.

6.5.2.1 Interpretando Respostas


Em Java podemos quase sempre considerar um recurso disponibilizado pelo servidor com um Objeto.
Comumente recebemos respostas em XML o qual uma serializao de um objeto que est no servidor.
Devido a isso um ponto que requer especial ateno a interpretao das respostas. APIs REST
utilizam representaes do estado de um recurso (um Objeto) do sistema. Nestes casos a forma mais
comum de representao textual, segundo um padro determinado pela API, XML ou JSON.
127

ANAIS ELETRNICOS V ENUCOMP

Existem vrias bibliotecas disponveis para se trabalhar com os formatos XML e JSON, algumas
bastante sofisticadas e simples de usar. Para XML temos, por exemplo, uma biblioteca chamada jDOM6
que interpreta XML e d ao desenvolvedor uma representao do documento XML na forma de um grafo
de objetos com uma interface nativa Java que podem ser facilmente percorridos e manipulados. Para
JSON h uma biblioteca chamada Gson7 disponibilizada pelo Google que pode transformar Objetos Java
em sua representao JSON e vice-versa:
Gson gson = new Gson();
String json = gson.toJson(meuObjeto);
MeuObjeto obj = gson.fromJson(json, MeuObjeto.class);
Atravs do uso de bibliotecas auxiliares possvel criar objetos concretos Java a partir de
representaes textuais dos mesmos.
A utilizao de JSON recomendada nestes casos pois grande parte dos sistemas REST atuais
so voltados para a interatividade entre sistemas de Websites, os quais so em sua maioria feitos
utilizando JavaScript, linguagem-me da notao JSON e que d suporte nativo a interpretao e
construo de objetos a partir de sua representao textual e vice-versa.

Referncias
ABLESON, W. Frank; Unlocking Android - A Developers Guide. Ed. Manning, 2007.
BURNETTE, Ed.Hello, Android:Introducing Google`s Mobile Development Plataform. Pragmatic
Bookshelf, 2008.
Google Android. Disponvel em <http://developer.android.com/guide/basics/what-is-android.html>.
Acesso em 12 outubro 2011.
LECHETA, Ricardo R. Google Android. So Paulo: Novatec, 2010, 2 ed.
MEDNIEKS, Zigurd; MEIKE, Blake. Desenvolvimento de Aplicaes Android. So Paulo: Novatec,
2009, 1 ed.
MEIER, Reto. Professional Android Application Development. Indianapolis: Wiley Publishing, 2009, 1.
ed.
PEREIRA, Lcio C. Oliva. Android para Desenvolvedores. So Paulo: Brasport, 2009, 1 ed.
WEBBER, Jim; PARASTATIDIS, Savas; ROBINSON Ian. REST in Practice: Hypermidia and Systems
Architecture. OReilly Media, 2010.
6

http://www.jdom.org/ - Acesso em 12 outubro 2011

http://code.google.com/p/google-gson/ - Acesso em 12 outubro 2011

128

ANAIS ELETRNICOS V ENUCOMP

RICHARDSON, Leonard; RUBY Sam. RESTful web services. OReilly Media, 2007.
FIELDING, Roy; Architectural Styles and the Design of Network-based Software Architectures.
Dissertao de Doutorado, University of California, 2000.

129

ANAIS ELETRNICOS V ENUCOMP

Desenvolvimento de um Museu Virtual 3D


Utilizando Agentes Inteligentes
. Moura, F. Mendes Neto, P. Sousa e J. Lima
Resumo Ambientes virtuais de aprendizagem em 3D
proporcionam uma experincia educacional com grande riqueza
de detalhes, sensao de imerso e interao com diversos
recursos educacionais. Um museu virtual, a partir de sua
plataforma virtual em 3D e dos recursos que esta plataforma
pode oferecer, funciona como uma ferramenta educacional
eficiente, pois disponibiliza informao aos seus visitantes de
forma simples e de fcil compreenso. No entanto, uma limitao
do uso de museus virtuais para a aprendizagem que estes
ambientes no levam em considerao as caractersticas
individuais e contextuais dos visitantes, limitando sua
aprendizagem. Assim, este artigo apresenta um museu virtual em
3D denominado Musert, que tem como diferencial a
recomendao personalizada de contedo. Para isso, utiliza
ontologias juntamente com agentes inteligentes para realizar a
recomendao personalizada de contedo de forma satisfatria.
Palavras-chave Museu 3D, padro X3D, browser Xj3D e
recomendao personalizada de contedo.
Abstract virtual learning environments provide an
educational experience with great detail, sense of immersion and
interaction with various educational resources. A virtual
museum, from its 3D virtual platform and resources that can
offer this platform, works as an effective educational tool as it
provides information to its visitors in a simple and easy to
understand. However, a limitation of the use of virtual museums
to learn is that these environments do not take into account the
individual and contextual characteristics of visitors, limiting their
learning. Thus, this paper presents a 3D virtual museum named
Musert,
whose
differential
is
personalized
content
recommendation. It uses ontologies along with intelligent agents
to perform personalized content recommendation satisfactorily.
Keywords 3D museum, X3D standard, Xj3D browser and
content personalized recommendation.

I. INTRODUO.

grande disponibilidade de computadores, tanto em


escolas como nas residncias e a facilidade de acesso a
internet tem influenciado a utilizao de recursos tecnolgicos
com o propsito de promover educao. Nos ltimos anos,
devido facilidade de acesso a esses recursos, museus virtuais
tem sido cada vez mais utilizados para fins educacionais. Um
. Moura, Programa de Ps-Graduao em Cinncia da Computao
PPgCC, Universidade do Estado do Rio Grande do Norte e Universidade
Federal Rural do Semi-rido, Mossor-RN, Brasil, ithalobgm@gmail.com
F. Mendes Neto, Universidade Federal Rural do Semi-rido, MossorRN, Brasil, miltonmendes@ufersa.edu.br
P. Sousa, Universidade Federal Rural do Semi-rido, Mossor-RN,
Brasil, paulosms@gmail.com
J. Lima, Universidade do Estado do Rio Grande do Norte, Mossor-RN,
Brasil, jddeus@uol.com.br

museu virtual um sistema complexo, com uma gama de


possibilidades para os usurios e por isso, tem mostrado ser
eficaz em uma srie de projetos de ensino e esto sendo
usados para facilitar o processo educacional de maneira
diferente da convencional.
A busca por alternativas para suprir a necessidade de
preservao do patrimnio histrico e cultural de uma regio
so cada vez maiores, visto que este patrimnio fundamental
para a educao e contribui significativamente na definio da
identidade cultural. Entretanto, apesar de sua relevncia, uma
srie de artefatos e documentos de valor histrico imensurvel
tm sido perdidos ao longo do tempo devido deficincia de
recursos e tcnicas de preservao que no conseguem evoluir
com uma rapidez que evite tais perdas. Isto ocasiona prejuzos
imensurveis, provocados por diversos fatores, como tempo,
manuseio e armazenamento inadequados [1]. Uma dessas
alternativas a utilizao de tcnicas de digitalizao em trs
dimenses (3D) em projetos com grande apelo visual. A
digitalizao em 3D pode ser utilizada para preservar bens do
patrimnio histrico e cultural em seus mnimos detalhes de
forma segura, permitindo a construo de rplicas, mesmo
quando o original no existe mais, bem como a criao de
colees virtuais acessveis atravs da Internet [2].
Diante disso, cada vez mais comum a utilizao de
contedo em 3D em Ambientes Virtuais de Aprendizagem
(AVA), devido ao seu poder de promoo de sensao de
imerso e disponibilidade de recursos visuais e educacionais.
Mas, devido riqueza de detalhes que as tcnicas de
digitalizao em 3D proporcionam e da grande carga
informacional que ambientes virtuais podem oferecer, em
muitas situaes os usurios so incapazes de identificar as
suas reais necessidades de aquisio de informao na
presena de uma grande quantidade de dados que lhes so
disponibilizados [3]. Na tentativa de resolver este problema,
uma das formas encontradas o armazenamento do perfil dos
usurios e das atividades realizadas nos ambientes virtuais,
que pode ser realizado com o uso de ontologias, e atualizao
dinmica destas informaes, que pode ser feita por agentes
inteligentes. A utilizao de ontologias como meio de
armazenamento de informaes se torna interessante pelo fato
de permitir uma melhor compreenso dos dados por parte de
computadores, oferecendo uma maior preciso dos resultados
que so retornados. Alm disso, devido sua forma de
representao do conhecimento, a utilizao de ontologias
permite a comunicao eficiente entre pessoas, agentes de
software e sistemas e promove muitas outras vantagens em
relao aos mecanismos convencionais de armazenamento de
dados [4] [5].
Com o propsito de superar estes desafios, este artigo

130

ANAIS ELETRNICOS V ENUCOMP


apresenta um AVA na forma de um museu virtual,
denominado Musert, que utiliza tecnologias como o padro
X3D, o browser Xj3D e tcnicas de modelagem especficas
para o desenvolvimento do museu e das peas que o compe.
Alm disso, mostra como a utilizao de agentes de software e
ontologias pode promover a recomendao personalizada de
contedos do acervo levando em considerao as
caractersticas do perfil de cada visitante, alm de monitorar as
atividades do visitante no ambiente virtual.
Assim, este trabalho est dividido em seis sees. A Seo
2 mostra os trabalhos relacionados e apresenta uma breve
comparao entre estes trabalhos e o proposta descrita neste
artigo. A Seo 3 traz conceitos relacionados a ambientes
virtuais de aprendizagem e a utilizao de tcnicas de
realidade virtual e aumentada neste tipo de ambiente. A Seo
4 aborda os conceitos e benefcios da utilizao de ontologias
juntamente com a utilizao de agentes inteligentes na
recomendao personalizada de contedos. A Seo 5
descreve a abordagem proposta neste artigo, que o
desenvolvimento de um museu virtual 3D com recomendao
personalizada de contedo, e tambm apresenta as
caractersticas e as etapas de modelagem e implementao do
museu. J a ltima seo apresenta as consideraes finas e
uma breve discusso sobre trabalhos futuros.
II. TRABALHOS RELACIONADOS.
No trabalho descrito em [6], relatado o desenvolvimento
de um framework para a modularizao de um sistema de
gerenciamento de contedo em museus virtuais no ambiente
Second Life [7]. A principal questo como gerenciar grandes
quantidades de informaes de um museu e disponibilizar de
forma personalizada a informao apropriada para cada
visitante deste museu. Com este propsito foi desenvolvido
este framework que consiste em dois subsistemas e seis
mdulos, que so relacionados com o contedo a ser
apresentado pelo museu e os perfis dos visitantes. As visitas e
interao com o museu so o foco do framework, e
proporciona a personalizao do contedo disponibilizado aos
usurios durante as visitas pelo museu. Para que o framework
desenvolvido obtivesse o sucesso desejado foram adotadas
tcnicas j existentes e j utilizadas em sistemas baseados na
Web e sistemas de recomendao. No entanto, estas tcnicas
ainda precisam ser devidamente ajustadas, e esta tarefa foi
deixada como trabalho futuro.
No trabalho apresentado em [8], descrito um museu
virtual imersivo, interativo e itinerante, denominado Museu 3I.
Este museu tem como principal caracterstica a possibilidade
do visitante escolher quais obras deseja visitar. Outro fator
importante a possibilidade de que qualquer pessoa possa ser
um curador do museu, sendo necessrio apenas o envio de
uma pea, modelada tridimensionalmente e que esteja no
formato X3D, para o acervo do museu atravs do browser
Xj3D, que j nativo da aplicao. Alm disto, o museu
oferece uma interface grfica em 3D e paralelamente so
apresentados menus no qual o visitante poder selecionar as
funcionalidades que mais lhe interessam.
Outro trabalho tem como abordagem principal o
desenvolvimento de AVAs que utilizam recursos em 3D e que

tem como objetivo principal acrescentar riqueza de detalhes na


apresentao de contedo aos usurios. Desta forma, o
trabalho apresentado por [9] mostra os aspectos de um museu
virtual que tem como proposta a preservao de artefatos
histricos atravs da utilizao de recursos multimdia. Para
isto, utiliza a narrao digital do contedo apresentado, alm
de utilizar tcnicas de realidade virtual e levar em
consideraes informaes dos usurios e curadores para
melhorar visualizao das peas.
Desta forma, em comparao aos trabalhos descritos acima,
este trabalho apresentar nas sees seguintes as
caractersticas de um museu virtual 3D com recomendao
personalizada de contedo. Para alcanar este objetivo foram
utilizadas diversas tecnologias, dentre elas o padro X3D, o
browser Xj3D e a linguagem de programao Java no mdulo
referente visualizao em trs dimenses do museu. J no
mdulo de recomendao personalizada de contedo, foram
utilizados agentes inteligentes, ontologias e tcnicas de
recomendao de contedo. Com base nisso, a utilizao do
padro X3D e do browser Xj3D em relao utilizao de
mundos virtuais como Second Life, se deve ao fato da fcil
interao entre estas tecnologias juntamente com ontologias e
agentes inteligentes para se alcanar o objetivo deste trabalho
que a recomendao personalizada de contedo em
ambientes virtuais em 3D. Assim, os detalhes, desafios e
resultados alcanados so apresentados nas prximas sees.
III. AMBIENTES VIRTUAIS DE APRENDIZAGEM.
AVAs podem ser conceituados como sistemas de software
que facilitam os processos de aprendizado individual ou
coletivo, utilizando para isso meios eletrnicos [10]. Eles
precisam basicamente da internet e fornecem muitas funes
gerenciais, como, por exemplo, gesto do material
educacional, alm do acompanhamento e avaliao da
aprendizagem dos alunos [10]. Desta forma, um ambiente
virtual pode ser entendido como um espao virtual que tem o
poder de representar uma metfora do mundo real [11].
Alm disso, as simulaes interativas disponibilizadas por
ambientes virtuais podem desempenhar um papel significativo
na facilitao da aprendizagem atravs do envolvimento dos
alunos, pois fornecem contextos do mundo real [12].
A. AVAs com Recursos de Realidade Virtual e Aumentada
A criao de ambientes virtuais 3D, para a representao de
AVAs, permite fantasiar sobre infinitas possibilidades para a
criao de ambientes que no podem existir fisicamente, ou
que, por algum impedimento, no podem disponibilizar todos
os recursos desejveis fisicamente. Com isso, os AVAs 3D
permitem o surgimento de muitas ideias inovadoras para a
construo de personagens (avatares) e desenho arquitetnico
de edifcios com fins educacionais. Alm disso, a ausncia de
restries fsicas no desenvolvimento deste tipo de ambiente
bastante significativa em relao s dificuldades encontradas
na construo de ambientes reais. Em AVAs 3D no existem
as restries da vida real, como restries oramentrias,
testes de solo, limitaes dos materiais, requisitos de
infraestrutura, som ou at mesmo a gravidade. Assim, um
simples procedimento 3D pode, por exemplo, transformar e

131

ANAIS ELETRNICOS V ENUCOMP


enriquecer cores de paredes envelhecidas e melhorar tristes
estilos arquitetnicos [13].
B. Museus Virtuais
A popularidade dos ambientes virtuais na web permite o
uso deste tipo de sistema para muitas aplicaes, dentre elas a
educao. Seguindo esta evoluo, o desenvolvimento de
museus virtuais tem avanado muito nos ltimos anos e isso
tem facilitado a disponibilizao das peas aos visitantes.
Alm disso, outro fator de destaque o poder de
representatividade que este tipo de ambiente possui, podendo
ocorrer atravs de diferentes tipos de mdias, tais como texto,
imagem, udio, vdeo, e outros tipos de dados mais
complexos, como, por exemplo, objetos que usam tcnicas de
modelagem em 3D [11].
Um museu virtual pode ser caracterizado como uma
coleo de artefatos eletrnicos e recursos informativos
disponibilizados de forma digital. Uma das vantagens que um
museu virtual pode apresentar, em relao aos tradicionais, a
reproduo digital de objetos reais, que ainda existem ou no,
oferecendo a possibilidade de observar e interagir com as
obras de arte, pertencentes ao museu virtual, que esto
localizadas em outro lugar fsico [14]. Outra vantagem a
possibilidade de disponibilizar diversos recursos multimdia,
como textos, dados, grficos e recursos de animao,
enriquecendo ainda mais uma visita ao ambiente virtual [15].
Um museu virtual, a partir da utilizao de tecnologias de
realidade virtual juntamente com todos os outros recursos,
funciona como uma ferramenta educacional eficiente, pois
disponibiliza informao aos usurios de forma simples e de
fcil compreenso [16].
Mas, mesmo diante de tantos recursos, pesquisadores
concluem que um AVA no pode substituir a interao entre
aluno e professor. Um problema que ocorre na maioria dos
AVAs que o contedo passado para todos os alunos da
mesma forma e no muda de acordo com as necessidades de
cada um [1].
Assim, nos ltimos anos, pesquisadores tm tentado
modificar este comportamento passivo e tm apresentado uma
srie de prticas e tecnologias inovadoras para se chegar a
uma nova gerao de AVAs, onde possvel ter habilidades
de interatividade reais e participao no processo de
aprendizagem [17] [18]. Desta forma, este trabalho apresenta
uma alternativa para que recomendao de contedo seja
realizada de forma satisfatria.
IV. RECOMENDAO DE CONTEDO COM UTILIZAO DE
AGENTES INTELIGENTES E ONTOLOGIAS.
Atualmente, h um crescimento exponencial das fontes de
dados e este fato torna a aquisio de conhecimento cada vez
mais complicada devido dificuldade que os usurios tm no
momento de identificar as suas reais necessidades de
informao [3] [19].
A. Agentes Inteligentes
Agentes inteligentes podem realizar diversas tarefas em um
AVA, tais como monitorar as atividades do usurio, capturar
de forma automtica suas informaes contextuais, como, por
exemplo, a preferncia por um determinado tipo de contedo e

frequncia de utilizao dos recursos, alm de realizar a


recomendao personalizada de contedo educacional [20].
Seguindo esta linha, agentes inteligentes com caractersticas
pedaggicas (AICPs), alm das caractersticas de um agente
convencional, tm como foco o alcance de objetivos que
melhorem o aprendizado dos usurios de AVAs. Devido esta
caracterstica, eles tm sido utilizados como tutores, utilizando
modelos cognitivos dos usurios, alm de proporcionarem um
suporte para a aprendizagem personalizada [21]. Atualmente,
h um esforo considervel no emprego de AICPs em
ambientes tradicionais de aprendizagem. Isto se deve,
principalmente, ao potencial destes agentes para proporcionar
um aprendizado com uma maior riqueza de recursos e
explorao das habilidades sociais dos agentes, que podem
proporcionar vrios cenrios de aprendizagem teis para a
colaborao no AVA [22].
Com base nisto, um sistema computacional em que dois ou
mais agentes interagem ou trabalham em conjunto de forma a
desempenhar determinadas tarefas ou satisfazer um conjunto
de objetivos considerado um sistema multiagente. A
investigao cientfica e a implementao prtica de sistemas
multiagente est focada na construo de padres, princpios e
modelos que permitam a criao de pequenas ou grandes
sociedades de agentes capazes de interagir convenientemente
de forma a atingirem os seus objetivos. Estes agentes exibem
duas caractersticas fundamentais, a primeira a capacidade
de agirem de forma autnoma tomando decises que levem
satisfao dos seus objetivos, a segunda apresenta a
capacidade de interagirem com outros agentes utilizando
protocolos de interao social inspirados nos humanos e
incluindo pelo menos uma das funcionalidades como
coordenao, cooperao, competio e negociao [23].
Cada agente trabalha como um elemento capaz de resolver
problemas de forma autnoma e que coopera com outros
agentes. Para que um agente possa operar como parte do
sistema, necessria a existncia de uma infra-estrutura que
permita a comunicao ou interao entre os agentes que
compem o sistema [24].
Juntamente com agentes de software, ontologias podem ser
utilizadas com diversas finalidades em AVAs, sendo uma das
suas principais aplicaes a personalizao, utilizando para
isso as caractersticas especficas do perfil de cada usurio
[25].
B. Ontologias
Ontologias tm sido amplamente utilizadas em reas como
Engenharia do Conhecimento, Engenharia de Software, Web
Semntica e muitas outras reas da indstria da informao
[25].
Neste trabalho, foi utilizada a OWL (Web Ontology
Language), que tem sido pesquisada e desenvolvida pela W3C
(World Wide Web Consortium). Esta linguagem baseada no
esquema XML, e amplamente utilizado para descrever a
ontologias. Os desenvolvedores e os pesquisadores criaram
trs tipos de sub-linguagens para atender diferentes tipos de
necessidades. Elas so OWL Lite, OWL DL e OWL Full, e a
capacidade de expresso dessas trs sub-lnguagens
crescente. Neste trabalho est sendo utilizada a sub-linguagem
OWL DL (Description Logic), que visa atender aos usurios
que necessitam de forte capacidade descritiva para a realizao

132

ANAIS ELETRNICOS V ENUCOMP


de inferncia pela ontologia. Esta sub-linguagem contm todos
os elementos da OWL [26].
Ao longo das ltimas dcadas, as organizaes tm aplicado
grandes esforos na criao e manuteno de modelos de
dados para suportar aplicaes de negcios. Embora diferentes
tipos de modelos de dados existentes hoje como, por exemplo,
relacional, objeto-relacional, orientado a objetos e hierrquico,
o seu principal princpio permanece o mesmo: um modelo de
dados captura ambos os principais elementos de dados em
uma rea de assunto e as caractersticas desses elementos de
dados.
Sabendo que tanto os modelos de dados como ontologias
podem capturar informaes semelhantes, o que os difere a
forma como esta informao codificada e a extenso a qual
expressa. Atualmente, vrios mtodos tm sido desenvolvidos
para gerar ontologias a partir de modelos de dados j
existentes. Alm disso, existem outras caractersticas que as
diferem bastante [27].
O objetivo da utilizao de ontologias a modelagem de
domnios levando em considerao as relaes e conceitos
semnticos com uma alta expressividade. J a utilizao de
banco de dados determinada pela modelagem de dados
levando em considerao apenas a sua estrutura, ou seja,
tabelas. Adicionado a estes fatores, tem-se que as ontologias
podem ser utilizadas independentemente de aplicao e em
contextos variveis [28].
Atualmente AVAs armazenam, atravs da utilizao de
banco de dados, uma grande quantidade de materiais de
ensino. Mas devido a este carter de armazenamento, estes
materiais possuem pouca expressividade semntica. Desta
forma, um repositrio de materiais didticos baseado na
utilizao de ontologias fornece uma partilha global atravs de
um vocabulrio dos conceitos no domnio de ensino. Alm
disso, a utilizao de uma grande quantidade de materiais de
ensino pode tornar difcil a busca e compartilhamento de
conhecimento a partir das demandas de ensino e aprendizagem
em AVAs.
A utilizao de AVAs pode no s apoiar o ensino e a
aprendizagem pela web, mas tambm consegue partilhar de
forma efetiva conhecimento e oferece uma gesto
personalizada para cada usurio [29].

Desta forma, pode-se destacar que uma das principais


caractersticas de uma ontologia a possibilidade de
comunicao entre pessoas, agentes e sistemas, j que a
ontologia permite o reuso, a representao formal de conceitos
e o compartilhamento de conhecimentos [30].
Devido aos avanos da web semntica e a utilizao de
ontologias, problemas como armazenamento, organizao,
compartilhamento e reutilizao de informaes de forma
eficiente podem ser superados. O uso de ontologias para
descrever objetos de aprendizagem permite que diferentes
aplicaes educacionais compartilhem e reutilizem os mesmos
contedos educacionais. Alm disso, a capacidade de leitura
de uma ontologia pelos computadores aumenta a velocidade
de consulta s informaes compartilhadas e a preciso dos
resultados que so retornados [4].
Com isso, diante das vantagens que as ontologias possuem,
neste trabalho foram utilizadas ontologias para armazenar
todas as informaes dos perfis dos usurios, as descries das
peas a serem recomendadas e as informaes que
influenciam dinamicamente o comportamento da aplicao.
V. MUSERT.
Nesta seo so apresentadas as principais caractersticas do
museu virtual proposto neste artigo. A seguir so apresentados
os detalhes referentes arquitetura da proposta juntamente
com as tcnicas e tecnologias que juntas, viabilizam a
recomendao personalizada de contedo.
A. Arquitetura do Museu Virtual
Este trabalho tem como diferencial a personalizao de
contedo em um museu virtual denominado Musert, tendo
como base para isso, ontologias e AICPs. A ideia principal
desta abordagem identificar os requisitos do usurio, ou seja,
suas preferncias e suas caractersticas, e criar um modelo
deste usurio. Nesse modelo deve constar o seu conhecimento
expresso por meio de um conjunto de termos pertencentes a
uma ontologia comum, possibilitando adaptar o contedo de
forma individual. A arquitetura desta proposta pode ser
visualizada na Figura 1, onde so representados os AIPCs,
ontologias e a interao dos usurios com o museu.

133

ANAIS ELETRNICOS V ENUCOMP


Figura 1. Arquitetura do museu virtual e utilizao de agentes de software e ontologias na disponibilizao personalizada de contedo.

Como pode ser visto na Figura 1, possvel perceber que


inicialmente h a autenticao do visitante junto ao museu.
Aps esta autenticao, a visualizao das descries das
peas acionada a partir da aproximao do visitante aos
sensores das peas, que ficam localizados em locais prdeterminados do museu. Antes disto, no entanto, o visitante
precisa realizar um cadastro para que suas caractersticas
pessoais sejam armazenadas na ontologia de contexto esttico,
que contm informaes como, por exemplo, nome, idade e
escolaridade. Alm desta ontologia, h a ontologia de contexto
dinmico, que responsvel por armazenar informaes como
quantidade de visitas, peas visitadas, dentre outras
informaes de carter dinmico que representam a interao
do visitante com o ambiente virtual.
B. Agentes de Software com Caractersticas Pedaggicas
Na abordagem proposta foram implementados quatro
agentes: Agente de Navegao (BAg - Browsing Agent),
Agente Usurio (UAg - User Agent), Agente Recomendador
(RAg - Recommender Agent) e o agente DF (Diretory
Facilitator). Cada agente tem um objetivo especfico, mas se
relacionam com os demais para alcanar o objetivo principal,
que a recomendao personalizada de contedo.
O UAg responsvel por monitorar as atividades dos
visitantes e recuperar, das ontologias de contexto esttico e
dinmico, as preferncias de contedo que compem os pers
dos visitantes e os seus respectivos histricos de peas
visitadas. Com base no histrico de visitas, o UAg pode
verificar o perfil de outros visitantes que possuem, em seus
histricos, preferncias similares. Os UAgs tambm capturam
as informaes do contexto dinmico do estudante. Para isso,
o UAg realiza sua ao no momento em que o estudante se
autentica na aplicao. Em seguida, todas essas informaes
so cadastradas no agente DF.
O RAg tem como propsito detectar a descrio das peas
que so adequadas ao perfil do estudante, de acordo com as
informaes providas pelo Agente DF e as informaes acerca
do acervo do museu, obtidas da ontologia de descries das
peas. Assim, o RAg encontra, inicialmente, a descrio que
seria mais adequada de acordo com perfil do visitante. Em
seguida, com base nessas informaes, o RAg verifica a
quantidade de visitas que o usurio fez quela pea,
juntamente com a quantidade de visitas que ele fez ao museu,
e cadastra estas informaes no agente DF que sero
consultadas pelo BAg.
O BAg possui sensores de proximidade presentes por todo o
museu, principalmente nas peas. A partir da aproximao de
um visitante a uma pea, o sensor percebe a inteno do
visitante em obter informaes sobre a pea. Aps isso, o
BAg gerencia a disponibilizao do contedo juntamente com
os outros agentes.
O agente DF prov, para outros agentes, o servio de
pginas amarelas. Esse servio consiste em uma lista de todos
os agentes e os respectivos servios oferecidos por cada
agente. Todo agente que desejar publicar seus servios para

outros agentes devem encontrar um agente DF apropriado e


requisitar o registro da sua descrio de servio. Alm disso,
os agentes podem retirar e modificar o seu prprio registro de
um DF e buscar neste, de acordo com um critrio de busca,
por um registro de servio fornecido por outro agente. Esse
componente de extrema importncia para o Sistema
Multiagente (SMA) proposto. Outro fator a ser observado
que o bom desempenho do RAg depende diretamente de um
mecanismo eficiente para a representao do conhecimento.
Assim, o mecanismo de recomendao desenvolvido
considera as informaes do perfil do visitante, como, por
exemplo, idade, escolaridade, conhecimento sobre o tema do
museu, dentre outras, contidas na ontologia de contexto
esttico, alm da quantidade de visitas e as ltimas peas
visitadas, as quais esto contidas na ontologia de contexto
dinmico. Estas informaes so ponderadas de acordo com as
descries disponveis para cada pea e so utilizadas tambm
para sugerir a ordem da visita e que peas devem ser visitadas,
levando em considerao as atividades de usurios com perfis
semelhantes. Com base nisto, objetiva-se alcanar uma
recomendao eficiente do contedo descritivo das peas do
museu.
B.1 Comunicao, Gerenciamento e Modelagem dos
Agentes de Software
Com o surgimento do paradigma de Programao
Orientada a Agentes, vrias metodologias para a modelagem
de SMAs foram propostas nos ltimos anos. Analisando as
vantagens e desvantagens de cada metodologia, a metodologia
escolhida para modelagem dos agentes deste trabalho foi a
metodologia MAS-CommonKADS+, que consiste em uma
extenso metodologia MAS-CommonKADS [31].
A metodologia MAS-CommonKADS+ mantm muitos dos
modelos j propostos na metodologia MAS-CommonKADS,
porm realiza algumas modificaes e adiciona novos
conceitos. Foram adicionados metodologia os modelos de
requisitos, de papis e de recursos, enquanto que os modelos
de organizao, de interao e de projeto foram alterados, com
o intuito de complementar a especificao dos diagramas da
AML [31].
Diante disso, a modelagem dos agentes foi realizada
utilizando, alm da metodologia MAS-CommonKADS+, a
ferramenta StarUML [32] que tem o intuito de promover
mecanismos de modelagem de software e uma plataforma que
possa substituir ferramentas UML comerciais.
Assim, para que se tenha uma viso do comportamento
dinmico do SMA, utilizou-se o Modelo de Interao. O
modelo de interao consiste na juno dos modelos de
coordenao e de comunicao da MAS-CommonKADS.
Nele so descritas, atravs da AML, todas as interaes
entre agentes. Cada interao deve obedecer a um protocolo
de interao, o qual estabelece como os agentes podem se
comunicar. A Figura 2 mostra o modelo de interao entre os
agentes que compem o SMA proposto.

134

ANAIS ELETRNICOS V ENUCOMP

Figura 2. Modelo de interao entre agentes de software e ontologias.

No modelo apresentado na Figura 2, possvel visualizar


toda a interao que ocorre entre os agentes e os recurso que
so consultados por cada um dos trs agentes que compem o
sistema. O diagrama mostra desde o comportamento do UAg
no momento em que o visitante se autentica no Musert at a
informao chegar ao BAg, que ir buscar pelo contedo que
mais se adqua ao perfil do visitante.
Tambm possvel perceber que as informaes de
contexto esttico e dinmico do estudante precisaro ser
armazenadas. Uma forma possvel de se armazenar essa
informao seria com a utilizao de um banco de dados.
Porm, o uso de uma ontologia para a representao desse
conhecimento mostra-se como uma alternativa mais til, visto
que esse conhecimento pode ser utilizado por outras partes da
aplicao e, caso seja necessrio modificar o comportamento
desta, pode-se criar uma nova forma de representar a
ontologia, sem modificar a codificao em si. Assim, por
este motivo que esto sendo utilizadas duas ontologias, sendo
uma para representao do contexto esttico e outra para
representao do contexto dinmico do estudante.
Um dos componentes chaves de um SMA a comunicao
entre os agentes. Na realidade, agentes precisam se comunicar
para que sejam capazes de cooperar, colaborar e negociar entre
si. De uma forma geral, os agentes interagem entre si atravs
de algumas linguagens de comunicao especficas, chamadas
linguagens de comunicao entre agentes. Atualmente, a
linguagem de comunicao entre agentes mais difundida e
utilizada a FIPA ACL (Agent Communication Language).
As principais caractersticas da FIPA ACL so a possibilidade
de utilizar linguagens de contedos diferentes e o
gerenciamento de conversaes atravs de protocolos de
interao predefinidos [33].

A FIPA (Foundation for Intelligent Physical Agents) um


conjunto de padres da IEEE Computer Society cujo objetivo
promover (i) tecnologias baseadas em agentes, (ii) a
interoperabilidade desses padres com outras tecnologias, (iii)
a interoperao de agentes heterogneos e (iv) os servios que
eles podem representar [34].
Outra tecnologia utilizada na comunicao e gerenciamento
dos agentes foi o framework JADE (Java Agent Development
Framework), que voltado para o desenvolvimento de sistemas
multiagente e tem como uma de suas caractersticas, a sua
total implementao em linguagem Java e fornece um
conjunto de recursos tcnicos para o desenvolvimento de
sistemas multiagente. Alm disso, prov uma plataforma de
agentes distribudos, gesto facilitada dos agentes e
comunicao entre agentes com troca de mensagens [35]. A
principal vantagem em utilizar o JADE reside no fato de que
possvel utilizar todos os componentes da especificao FIPA,
visto que o JADE atende todas as especificaes deste padro
e ainda o estende, sendo que um desses componentes o
agente DF. Outra vantagem dessa plataforma consiste na
possibilidade de consultar e utilizar, atravs do MTS (Message
Transport Service), os agentes DFs que estejam sendo
executados em outras plataformas de agentes. Assim, o DF
utilizado na plataforma JADE deste trabalho pode, por
exemplo, ser consultado, por meio da internet, por um agente
que esteja sendo executado em outro local, atravs do
protocolo MTP (Message Transport Protocol). Essa
caracterstica permite a criao de uma rede de colaborao
entre os agentes, mesmo que estejam localizados, por
exemplo, em universidades distintas [34]. A Figura 3 mostra,
atravs da interface grfica do JADE, como ocorre a
comunicao entre os agentes descrita atravs dos modelos
textuais dos agentes apresentados anteriormente.

135

ANAIS ELETRNICOS V ENUCOMP

Figura 3. Comunicao entre agentes atravs do JADE Sniffer Agent.

Como pode ser visto na Figura 3, inicialmente, o RAg


solicita por informaes de servio ao agente DF. Em seguida,
o DF responde com as informaes de servios disponveis.
Desta forma, a comunicao entre os trs agentes e o agente
DF mantida durante toda a utilizao do museu virtual.
B.2 Caractersticas e Utilizao do Perfil do Usurio
O processo de personalizao proposto pelo museu utiliza
ontologias para o gerenciamento do perfil do usurio, sugesto
de servios e registro das interaes com o intuito de garantir
um processo de aprendizagem automtica.
A funo principal que justifica a utilizao da estrutura
perfil do usurio captura de todas as informaes necessrias
para promover a recomendao personalizada de contedo
pelo museu. Com base nisso, a utilizao das ontologias de
contexto esttico e dinmico tm participao direta nesta
recomendao.
A ontologia de contexto esttico prov informaes mais
gerais do usurio como nome, escolaridade, login e senha.
Devida natureza da utilizao destes dados, que esta
ontologia tem carter esttico, ou seja, a utilizao do museu e
a disponibilizao de contedo, no influenciam estes dados.
J a ontologia de contexto dinmico, contm dados como
quantidade de visitas e peas visitadas, e estes dados mudam
no decorrer da utilizao do museu.
Com base nestas caractersticas, a recomendao de
contedo realizada levando em considerao as informaes
contidas nestas duas ontologias, ou seja, a recomendao
realizada levando em considerao o conhecimento prvio do
usurio e a sua interao com o museu.
Existem basicamente trs tipos de recomendao, a
recomendao de contedo descritivo das peas do museu,

recomendao de rotas de visitas e as recomendaes para


contedos externos.
A recomendao do contedo disponibiliza para o visitante
as descries das peas que, a partir de sua aproximao, ele
demonstra interesse. Alm disso, o contedo recomendado
leva em considerao as informaes de contexto esttico e
dinmico. J a recomendao de rotas de visitas, sugere rotas
com base nas peas que ainda no foram visitadas e rotas que
possam maximizar o contedo, apresentado informaes de
forma encadeada. As recomendaes externas so realizadas
com base nas peas j visitadas e no perfil do usurio como
alternativa para complementar o aprendizado sobre
determinada pea ou temtica envolvida.
Diante disto, as informaes contidas no perfil do usurio,
ou seja, as informaes de contexto esttico e dinmico
oferecendo uma recomendao de forma direcionada para
cada visitante, proporcionando um maior aproveitamento do
contedo abordado pelo museu.
C. Aspectos de Implementao do Museu Virtual
Para o desenvolvimento do AVA proposto foram estudadas
diversas ferramentas e tecnologias. O objetivo principal era
permitir a navegao no ambiente virtual, bem como permitir
a interao com seus diversos elementos de forma
personalizada, utilizando para isso ontologias e agentes de
software. Foram consideradas diversas tecnologias e mundos
virtuais, como o Second Life [7] e o OpenSim [36], pela
facilidade
de
tratamento grfico, navegabilidade e
interatividade.
Entretanto, alm da necessidade de
disponibilizao do contedo na Web, a recomendao de
contedo de forma personalizada exige a utilizao de

136

ANAIS ELETRNICOS V ENUCOMP


tecnologias especficas e, por esta razo, para este trabalho
foram escolhidos o padro X3D e o browser Xj3D.
O X3D (Extensible 3D) um padro adotado
internacionalmente para 3D na Web. Ele utilizado para
construir ambientes virtuais tridimensionais complexos. Tratase de um padro aberto que permite descrever em um arquivo
formas e comportamentos de um ambiente virtual. As formas
so descritas por figuras geomtricas e os comportamentos da
cena podem ser controlados internamente pelo arquivo X3D e
externamente por linguagens de programao ou script. A
escolha do X3D como ferramenta de implementao deveu-se
a facilidade de utilizao com a linguagem de programao
Java juntamente com a facilidade de comunicao com o
browser Xj3D. Alm do fato do X3D oferecer suporte a
diversas mdias e formas de interao, inclusive contendo
APIs que adicionam diversas funcionalidades s j existentes
[37].
Browsers X3D consistem em aplicaes capazes de
interpretar e processar as cenas, que na verdade so arquivos
X3D, apresentando os modelos tridimensionais, animados ou
no, e permitindo interaes do usurio com os objetos do
cenrio. A escolha do browser deve ser feita de acordo com as
necessidades do AVA a ser construdo. Com isso, foi
escolhido o browser Xj3D, que se trata de um software de
cdigo aberto e que possibilita a integrao do ambiente com
scripts na linguagem de programao Java, que a linguagem
utilizada na implementao dos agentes e na comunicao
destes com as ontologias [8] [38].
C.1 Modelagem Tridimensional
Para o desenvolvimento do Musert foram definidas trs
etapas: a modelagem tridimensional do museu, denominada de
etapa de modelagem, a etapa desenvolvimento da interface
grfica a ser utilizada pelo visitante, denominada etapa de
interface e, por ltimo, a etapa de implementao dos agentes
e ontologias, que so os reais responsveis pela recomendao
personalizada de contedo, denominada etapa de inferncia de
contedo.
A etapa de modelagem foi concebida como primeira
atividade a ser executada. Para isso foi utilizado o Blender,
que um software livre e de cdigo aberto para modelagem
3D, que possui exportador para o formato X3D e que
amplamente utilizado pela comunidade de desenvolvedores de
aplicaes 3D [1] [16]. O resultado da utilizao desta
ferramenta pode ser visualizado na Figura 4, onde
apresentada uma pea 3D em fase de modelagem.

Figura 4. Pea 3D do Musert em fase de modelagem com utilizao da


ferramenta Blender.

Como o museu ser disponibilizado na Internet, a


modelagem foi otimizada em um nvel que a qualidade grfica
do ambiente virtual no inviabilizasse o uso devido
quantidade de informaes trocadas entre o servidor onde a
aplicao se encontra e seus visitantes. Deste modo, foram
utilizadas texturas otimizadas em relao quantidade de
dados, mas que ao mesmo tempo promovem uma aparncia
realista ao ambiente. Adicionalmente foram utilizadas tcnicas
de implementao peculiares do X3D, que evitam a replicao
desnecessria de cdigo e que, consequentemente, aumentam
a velocidade de transmisso das informaes oferecidas pelo
ambiente [16].
No projeto da interface foi utilizada a linguagem de
programao Java juntamente com o browser Xj3D. O Xj3D
um browser em conformidade com as especificaes do
X3D, implementando, inclusive, funcionalidades no
especificadas pelo padro, o que facilita o desenvolvimento de
ambientes virtuais 3D com interatividade complexa e alta
qualidade grfica. No Musert, o visitante ter acesso ao museu
e poder navegar por todas as salas do museu e visitar as peas
contidas em cada sala. A utilizao de sensores e o
monitoramento dos agentes permite a interao com as peas
de forma inteligente, ou seja, fornecendo uma descrio das
peas de forma personalizada. O resultado da modelagem do
museu pode ser visualizado na Figura 5, onde mostrada a
tela inicial apresentada aos visitantes.

Figura 5. Visualizao externa do Musert.

No Musert, a inferncia provida pela interao entre os


agentes e as ontologias com as descries das peas e com as
informaes dos visitantes. A ontologia de contexto esttico
contm informaes cadastrais bsicas de cada visitante,
enquanto que a ontologia de contexto dinmico contm as
informaes referentes interao do visitante com o museu,
ou seja, nesta ontologia so armazenadas informaes como as
peas que j foram visitadas, a quantidade de visitas ao museu,
a quantidade de visitas a cada pea e as salas visitadas.
Com isto, por meio da inferncia realizada pelos agentes
nestas duas ontologias, possvel recomendar uma rota de
visita e uma descrio mais apropriada de cada pea para cada
perfil de usurio. Esta recomendao proporciona uma
experincia educacional mpar e, ao mesmo tempo, eficaz para
a necessidade de cada visitante.
C.2 Sensores
A utilizao de sensores foi adotada com o objetivo de
permitir a gerao de eventos de acordo com a ao do
visitante no museu. Um exemplo de sensor utilizado o
ProximitySensor. Este sensor gera eventos ao chegar prximo
de um determinado objeto, neste caso, peas do museu e
pontos especficos que acionam mecanismos para maximizar a

137

ANAIS ELETRNICOS V ENUCOMP


experincia educacional do visitante do museu.
Esses
sensores esto sendo utilizados para que o visitante possa
visualizar as informaes a respeito das peas de forma
interativa. Assim, eles esto sendo empregados para ativar a
exibio das descries das peas, para recomendar salas a
serem visitadas e rotas a serem adotadas, alm de informaes
sobre o prprio museu [38]. Na Figura 4 possvel observar a
interao do visitante com o museu a partir da aproximao de
uma regio especfica do museu.

REFERENCIAS
[1]

[2]
[3]

[4]

[5]

[6]

[7]
Figura 6. Interao entre visitante e o museu a partir da atuao de agentes de
software.

[8]

Como pode ser visto na Figura 6, alm da existncia de


sensores de proximidade nas peas do museu, existem sensores
de proximidade em pontos especficos do museu com o
propsito de promoverem uma experincia educacional
diferente por meio de sugesto de salas a serem visitadas e a
ordem em que elas so visitadas.

[9]

[10]

[11]

VI. CONCLUSES
Neste artigo, foi descrita a implementao de um museu
virtual 3D que utilizou tecnologias como a ferramenta de
modelagem Blender para a modelagem do museu e das peas
que o compe, alm do padro X3D e do browser Xj3D para
disponibilizar o contedo do museu na web. Alm disso,
tambm utilizou a linguagem de programao Java, agentes
inteligentes e ontologias para a realizao da recomendao
inteligente de contedos do acervo. Desta forma, a soluo
proposta objetiva tornar a aprendizagem, a partir das visitas ao
museu, adequada s necessidades de cada visitante.
Desta forma, como trabalhos futuros, pretende-se submeter
o ambiente desenvolvido avaliao de um muselogo, para
que a aplicao tenha uma melhor abordagem no que tange o
aspecto do contedo descritivo das peas recomendadas. Temse tambm como proposta futura a integrao do sistema com
redes sociais ou outros mecanismos de identificao para
ajudar no levantamento do perfil do usurio e ajudar a
melhorar a formar como os dados de cada usurio so obtidos,
evitando o preenchimento de formulrios antes de utilizar o
ambiente. Alm disso, objetiva-se mensurar o quanto a
abordagem eficaz na realizao da recomendao sob a tica
educacional, tendo em vista que testes preliminares mostram
que o ambiente realiza a recomendao de forma satisfatria
obedecendo todos os critrios apresentados anteriormente.
Com base nisso, objetiva-se realizar um estudo de caso com
uma turma de um curso de ensino a distncia para verificar o
impacto da abordagem proposta na adequao do contedo.

[12]

[13]

[14]

[15]

[16]

[17]

[18]

[19]

[20]

138

. B. G. Moura, J. D. Lima, P. S. M. Sousa, e F. M. Medes Neto,


Musert: Um Museu Virtual em 3D com Recomendao Personalizada
de Contedo, In Anais do XXIII Simpsio Brasileiro de Informtica na
Educao, SBIE, Rio de Janeiro, RJ, 2012.
I. J. A. Soares, L. Silva, O. R. P. Bellon e A. Vrubel, 3D Virtual
Museum for Digital TV, In WebMedia 09, Fortaleza, CE, 2009.
M. A. Zeb and M. Fasli, Adaptive user profiling for devianting user
interests In: 3rd Computer Science and Electronic Engineering
Conference (CEEC), p. 65-70, 2011.
P. Q. Dung and A. M. Florea, An Architecture and a Domain Ontology
for Personalized Multi-agent e-Learning Systems, In Third
International Conference on Knowledge and Systems Engineering
(KSE), p. 181-185, 2011.
C. S. Bhatia and S. Jain, Semantic Web Mining: Using Ontology
Learning and Grammatical Rule Inference Technique, In: International
Conference on Process Automation, Control and Computing (PACC), p.
1-6., 2011.
K. Sookhanaphibarn and R. Thawonmas, A Conten Management
System for User-Driven Museums in Second Life, In: International
Conference on CyberWords (CW), p. 185-189., 2009.
C. J. Liu and G. Wang, Using Second Life in ESL/EFL Teaching and
Reacher-Training in the Web2.0 Environment, In IEEE Symposium on
Eletrical & Eletronics Engineering (EEESYM), p. 717-720, 2012.
E. L. Falco e L. S. Machado, Museu 3I: Publicao e Visitao Online
de Acervos Tridimensionais, In Anais do VII Workshop de Realidade
Virtual e Aumentada (WRVA),So Paulo, SP, 2010.
S. Rivic e A. Sadak, Multimedia Techniques in Virtual Museum
Applications in Bosnia and Herzegovina, In International Conference
on Systems, Signals and Image Processing (IWSSIP), p. 1-4, 2011.
M. H. Bahiraey, Quality of collaborative and individual learning in
virtual learning environments, In Second International Conference on
E-Learning and E-Teaching (ICELET), p. 33-39, 2010.
R. R. Dantas, J. C. P. Melo, J. Lessa, C. Schneider, H. Teodsio e L. M.
G. Gonalves, A Path Editor for Virtual Museum Guides, In IEEE
International Conference on Virtual Environments Human-Computer
Interfaces and Measurement Systems (VECIMS), 2010.
Z. O. Kostic, A. D. Jevremovic, D. S. Markovic e R. M Popovic,
Virtual Educational System and Communication In 10th International
Conference on Telecommunicatio in Modern Satellite Cabble and
Broadcasting Servies (TELSIKS), p. 373-376, 2011.
N. Saleeb e G. Dafoulas, Pedagogical immigration to 3D virtual
worlds: A critical review of underlying themes and their concepts, In
International Conference on Information Society (i-Society), p. 401-409,
2010
G. Guidi, R. Trocchianesi, G. Pils, G. Morlando, e A. Seassaro, A
Virtual Museum for Design: New forms of interactive fruition, In 16th
International Conference on Virtual Systems and Multimedia (VSMM),
p. 242-249, 2010.
Y. Chengwei, Y. Chengle, L. Shijun, M. Xiangxu e W. Rui, An
Approach of Personalized 3D Scene Customization Based on
Multimedia Resources In International Conference on Multimedia and
Signal Processing (CMSP), p. 131-135, 2011.
. B. G. Moura, J. D Lima, F. M. Mendes Neto, P. S. M. Sousa,
MUSERT: Um Museu Virtual em 3D para a Preservao do Patrimnio
Histrico e Cultural do Semirido Brasileiro, In Anais da V Escola
Regional de Computao dos Estados do Cear, Maranho e Piau
(ERCEMAPI), 2012.
M. H. Bahiraey, Quality of collaborative and individual learning in
virtual learning environments, In Second International Conference on
E-Learning and E-Teaching (ICELET), p. 33-39, 2010.
J. Z. Jun e W. Z. Bin, Ideas transforming in the public arts education of
virtual museum, In 6th International Conference on Computer Science
& Education (ICCSE), p. 649-653, 2011.
T. T. Primo, R. M. Vicari, J. M. C. Silva, Rumo ao Uso de Metadados
Educacionais em Sistemas de Recomendao, In Anais do XXI
Simpsio Brasileiro de Informtica na Educao, SBIE, Joo Pessoa,
PB, 2010.
L. C. N. Silva, F. M. Mendes Neto e L. Jcome Jnior, MobiLE: Um
ambiente Multiagente de Aprendizagem Mvel para Apoiar a
Recomendao Sensvel ao Contexto de Objetos de Aprendizagem,

ANAIS ELETRNICOS V ENUCOMP

[21]

[22]

[23]

[24]

[25]

[26]

[27]

[28]

[29]

[30]

[31]

[32]

[33]

[34]

[35]

[36]

[37]

[38]

Artigo Completo, In Anais do XXII Simpsio Brasileiro de Informtica


na Educao, SBIE, Aracaju, SE, 2011.
L. Qu, N.Wang e W. L. Johnson, Choosing When to Interact with
Learners, In Proceedings of the 9th international Conference on
Intelligent User Interfaces, 2004.
E. Soliman e C. Guetl,Intelligent Pedagogical Agents in immersive
virtual learning environments: A review, In Proceedings of the 33rd
International Convention, MIPRO, p. 827-832, 2010.
V. R. Lesser, Cooperative multiagent systems: a personal view of the
state of the art, In IEEE Transactions on Knowledge and Data
Engineering, v. 11, n. 1, p. 133-142, 1999.
L. P. Reis, Coordenao em Sistemas Multi-Agente: Aplicaes na
Gesto Universitria e Futebol Robtico, In PhD Thesis, FEUP, Julho
2003.
H. Zhao, S. Zhang e J. Zhao, Research of Using Protg to Build
Ontology, In 11th International Conference on Computer and
Information Science (ICIS), p 697-700, 2012.
N. Prat, J. Akoka e I. Comyn-Wattiau, Transforming multidimensional
models into OWL-DL ontologies, In 6th International Conference on
Research Challenges in Information Science (RCIS), p 1-12, 2012.
K. M. Albarrak, E. H. Sibley, A Survey of Methods that Transform
Data Models into Ontology Models, In International Conference on
Information Reuse and Integration (IRI), p 58-65, 2011.
Ontological Foundations for Structural Conceptual Models, In PhD
Thesis, Centre for Telematics and Information Technology CTIT,
Enschede, The Netherlands, 2005.
R. Zhao e C. Zhang, An OntologyBased Knowledge Management
Approach for E-Learning System, In International Conference on
Management and Service Science (MASS 09), p 1-4, 2009.
W.Min, C.Wei, e C. Lei, Research of ontology-based adaptive learning
system, In International Symposium on Computational Intelligence and
Design, ISCID 08, v. 2 , p. 366 370., 2008.
M. J. D. O. MORAIS II, MAS-CommonKADS+: Uma Extenso
Metodologia Mas-CommonKADS para Suporte ao Processo Detalhado
de Sitemas Multiagentes Racionais,Dissertao de Mestrado.
Universidade Estadual do Cear - UECE. Fortaleza, CE. 2010.
STARUML. StarUML - The Open Source UML/MDA Platform. Pgina
Sourcefourge
do
STARUML,
2011.
Disponivel
em:
<http://staruml.sourceforge.net/en/>. Acesso em: outubro de 2012.
L. C. M. Silva, MobiLE Um Ambiente Multiagente de Aprendizagem
Mvel para Apoiar a Recomendao Ubqua de Objetos de
Aprendizagem.,Dissertao de Mestrado. Universidade do Estadual do
Rio Grande do Norte UERN e Universidade Federal Rural do Semirido - UFERSA. Mossor, RN. 2012.
FIPA. Welcome to the Foundation for Intelligent Physical Agents. Site
Oficial do Padro FIPA, 2011. Disponivel em: <http://www.fipa.org/>.
Acesso em: outubro de 2012.
JADE, Java development framework: an open-source platform for peerto-peer agent based applications. Online: http://jade.tilab.com/. Acesso
em: setembro/2012.
W. Ridgewell, V. Kumar, O. Lin and Kinshuk, OpenSim Virtual as
Platform for Enhanced Learning Concepts, In IEEE International
Conference on Advanced Technologies (ICALT), p.623-624, 2011.
D. P. S. Medeiros e L.S. Machado, X3D e Integrao Multimdia para
Representao de um Stio Arqueolgico, In Anais do VII Workshop
de Realidade Virtual e Aumentada (WRVA),So Paulo, SP, 2010.
. B. G. Moura, F. M. Medes Neto, P. S. M. Sousa e J. D. Lima,
Utilizao do Padro X3D no Desenvolvimento de um Museu Virtual
Imersivo com Recomendao Personalizada de Contedo Atravs do
Uso de Agentes Inteligentes e Ontologias, In Anais do IV Workshop
de Realidade Virtual e Aumentada (WRVA), Paranva, PR, 2012.

Francisco Milton Mendes Neto possui graduao em Cincia da


Computao pela Universidade Estadual do Cear (1997),
mestrado em Informtica pela Universidade Federal de
Campina Grande (2000) e doutorado em Engenharia psgraduao em Cincia da Computao da Universidade
Federal Rural do Semi-rido (UFERSA). Tem
experincia na rea de Cincia da Computao, com
nfase em Engenharia de Software, atuando
principalmente nos seguintes temas: ensino a distncia,
aprendizagem colaborativa com suporte de computador, engenharia do
conhecimento, gesto do conhecimento e sistemas multiagentes.
Paulo Srgio Maia de Sousa Bacharelando em Cincia da Computao
pela Universidade Federal Rural do Semi-rido
(UFERSA). Atualmente faz parte do Ncleo Tecnolgico
de Engenharia de Software (NTES). Atua principalmente
na rea de Engenharia de Software, principalmente nos
seguintes temas: ensino a distncia, gesto do
conhecimento e sistemas multiagentes.

Joo de Deus Lima possui graduao em Licenciatura em Matemtica pela


Universidade do Estado do Rio Grande do Norte (1983),
mestrado em Matemtica pela Universidade Federal do
Cear (1996) e doutorado em Engenharia Eltrica pela
Universidade Estadual de Campinas (2002). Atualmente
professor adjunto 4 da Universidade do Estado do Rio
Grande do Norte, lotado no Departamento de Matemtica e
Estatstica e do quadro permanente de professores do
mestrado em Cincia da Computao UERN-UFERSA. A
rea de interesses Sistemas de Telecomunicaes, com enfases em
modulaes, cdigos corretores de erros, canais e processamento digital de
imagens. Para tanto utiliza ferramentas matemticas como a Topologia
Algbrica, Geometria Riemanniana e Teoria dos Grafos.

thalo Bruno Grigrio de Moura Tecnlogo em Anlise Desenvolvimento


de Sistemas pelo Instituto Federal do Piau (IFPI),
Teresina (2010). Atualmente faz parte do Ncleo
Tecnolgico de Engenharia de Software (NTES) na
Universidade Federal Rural do Semi-rido (UFERSA).
Ingressou em 2011 no Programa de Ps-Graduao em
Cincia da Computao ofertado pela Universidade do
Estado do Rio Grande do Norte - UERN e pela UFERSA.

139

ANAIS ELETRNICOS V ENUCOMP

Transmission of Images Captured in Real Time


through Wireless Network using the Python
Language: A possible way of Wireless
Transmission
M. Z. B. Araujo and F. M. A. Araujo
Abstract 1In order to send images over the network from one
computer to another in a Telerobotic system more adequately, it
has developed a way to transmit images over the network adapting
it to the programming language chosen in this system. The work,
therefore, is to capture a frame of a camera through a library for
games, turn it into text and send over the network to another
computer using socket programming, in the target are made of
inverted steps, gets converted to text in image again to use on any
purpose. From the experimental research, several tests were
performed to reach the synthesis scheme presented in this paper.
KeywordsWireless Networks, Python, Images, Wireless
Transmission.

I. INTRODUO

os dias atuais, o vdeo considerado parte fundamental


na interao com o usurio quando se fala em sistemas
web, monitorao ou em projetos de Telerobtica. Assim que
a Internet surgiu, no final da dcada de 80, sua velocidade era
muito limitada, onde a conexo entre Brasil e Estados Unidos
oferecia uma banda que suportava, no mximo, 9 kbps [8].
Acreditava-se que a transmisso de imagens congestionaria
toda a rede entre os dois pases. Esse o motivo pelo qual
quando a interligao mundial das redes surgiu, a transmisso
de dados era limitada, afetando diretamente o layout dos sites
da poca, onde estes eram compostos somente por texto [9],
mdia mais leve de ser transmitida.
Um site composto somente por texto, implica em um visual
extremamente rstico, tornando pouco o interesse dos usurios
ao navegar e permanecerem na pgina acessada. Diante deste
impasse, viu-se que realmente era crucial o envio de mdias
mais pesadas, como imagens com resoluo cada vez mais
altas, ou at vdeos a longas distncias. Esse problema foi
resolvido com o avano da tecnologia, que passou a
disponibilizar bandas de transmisso de dados mais largas,
integradas a linguagens de programao que passaram a
disponibilizar bibliotecas especficas, tambm facilitadoras da
interatividade com o usurio. Em suma, capturar uma imagem
para depois convert-la em texto foi uma das solues
encontradas para a transmisso de imagens atravs da rede,

diminuindo at, o nvel de congestionamento no trfego dos


dados.
Com base nisto, objetiva-se enviar imagens entre
dispositivos pela rede usando Python. Para isto ser
apresentada a seguinte metodologia: pode-se usar a linguagem
Python por ter um fcil entendimento [10] usando sua
biblioteca para jogos Pygame, pois d suporte a captura de
frames da webcam, alm de ter algumas funes para
manipulao de imagens, trabalhando junto a biblioteca
socket, que se responsabiliza pela comunicao entre
dispositivos atravs da rede, j inclusa na biblioteca padro do
Python.
A partir desta metodologia, os resultados esperados iro
depender diretamente da taxa de transferncia do equipamento
utilizado no meio de transmisso, seja wireless ou no.
Neste artigo sero abordados a metodologia usada, exemplo
e configurao de um cdigo em Python, testes realizados com
um programa mais elaborado desenvolvido usando esta
mesma metodologia, seguidos dos resultados obtidos.
II. METODOLOGIA

Python, em um propsito geral, uma linguagem de


programao de computador de cdigo aberto. otimizada
para qualidade de software, a produtividade do desenvolvedor,
a portabilidade do programa e integrao de componentes [4].
O Python, ao ser instalado, leva consigo sua biblioteca
padro, centenas de mdulos que contm ferramentas que
permitem ao programador uma interao com o sistema
operacional, interpretador e internet [1]. Seu contedo extenso,
escrito na linguagem C, permite um melhor uso de
funcionalidades do sistema, bem como dispositivos de entrada
e sada de dados. Partindo do ponto em que, funciona em
qualquer plataforma que tenha compilador de C, assim que o
Python instalado, d suporte para a programao de socket.
O socket um meio para programao de redes com
funcionamento baseado na tecnologia Cliente/Servidor,
possibilitando a comunicao entre dispositivos conectados a
rede como: celulares, tablets, computadores entre outros.
Nesse sentido, percebe-se que o Python, desenvolvido
basicamente em C/C++, resulta em uma boa manipulao de
dispositivos de entrada/sada como, por exemplo, uma
M. Z. B. Araujo, Universidade Estadual do Piau (UESPI), Parnaba, Piau, webcam. Pygame uma biblioteca para desenvolvimento de
Brasil, zeniBdeA@hotmail.com
jogos usando Python que d suporte tambm ao uso da
F. M. A. Araujo, Instituto Federal de Educao, Cincia e Tecnologia do
webcam, bem como, algumas funes para manipulao de
Piau (IFPI), Parnaba, Piau, Brasil, franciscomarcelinoalmeida@gmail.com
140

ANAIS ELETRNICOS V ENUCOMP


imagens, sendo possvel, at mesmo, transformar uma imagem
em texto ou vice versa.
Usa-se uma funo tostring dessa biblioteca, capaz de
converter uma imagem em string. J a funo fromstring
usada para realizar a tarefa inversa, transformando o texto em
imagem novamente. Em seguida, o socket criado e
configurado com mesmo endereo IP, mais precisamente o IP
do servidor, em dois ou mais dispositivos, porta de
comunicao e protocolo para que a conexo seja estabelecida,
captura-se um frame da cmera e transformando-o em texto,
sendo assim, possvel envi-lo entre os hosts da rede com a
linguagem Python.
A Figura 1 mostra o trecho final de uma imagem convertida
em texto, composta por cabealho onde possui informaes
sobre a imagem como largura, altura, entre outros, seguido por
uma sequncia de caracteres que substitui os pixels. Cada
pixel composto por trs cores: vermelho, verde e azul
dependente do padro de cores usado na configurao da
webcam. Cada cor recebe um valor que est compreendido
entre 0 e 255, representando sua intensidade que quando
misturadas, pode compor imagens de 24 bits de cores.

Figura 2. Arquitetura do Sistema.

A Figura 2 ilustra a funcionalidade do programa


desenvolvido neste trabalho, que consiste em transferir
imagens a partir de um computador. Esse esquema mostra o
caminho percorrido pelos dados transferidos, que inicia-se
com a captura da imagem atravs da funo get_image da
biblioteca Pygame, onde retorna um objeto Surface, que
convertido em texto pela mesma biblioteca. Com a classe
image so passados como parmetros um objeto Surface e um
padro de cores RGB, usado neste estudo. Com a classe
socket, que d suporte a comunicao entre hosts usando texto
e/ou buffer, a imagem transformada em texto pode ser enviada
pela rede, tendo em vista que, ao ser criado, o socket precisa
de um endereo IP, porta de comunicao, especificao do
protocolo, entre outros.
A prxima seo do artigo, sero abordados a configurao
do socket, bem como um exemplo simples de como se pode
enviar uma imagem atravs da rede usando a metodologia
apresentada.
III. CONFIGURAO

Figura 1. Trecho final da string retornada pela funo tostring, seguida de seu
tamanho mostrado pela funo len.

Cmera

Objetivo

Pygame

Pygame
Figura 3. Programa em Python que captura um frame de uma Webcam e o
envia convertido em texto atravs de socket.

socket

socket

Ubuntu

Ubuntu

Rede

Rede

A Figura 3 exemplifica um cdigo escrito em Python que


representa o Servidor. A partir da linha 9 at a linha 11,
destacadas em azul, configurada a webcam, onde so
especificadas resoluo e padro de cores a ser usado. Da
linha 12 at a linha 17, no interior do retngulo verde, ilustra o
momento em que se instancia o objeto socket, so explicitados
a porta de comunicao, endereo de IP, protocolo de
comunicao e a quantidade de hosts que o servidor deve
ouvir. Para que a conexo seja estabelecida, devem-se criar os
sockets de maneira sincronizada, com a mesma porta de
141

ANAIS ELETRNICOS V ENUCOMP


comunicao e mesmo endereo de IP, mais especificamente o
IP do servidor.
Podem ser usadas no socket as faixas IPV4 e IPV6,
protocolos FTP e UDP paralelamente a porta de comunicao
que pode assumir valores de 0 a 65535, porm alguns servios
j possuem portas especficas como requisies HTTP atravs
da porta 80 ou SSH pela porta 22, mas, portas com valores
inferiores a 1024 necessitam da permisso de super usurio,
caso contrrio, o sistema operacional interrompe o processo de
criao do socket.
Um ponto muito importante e decisivo para o
funcionamento satisfatrio de um sistema de vdeo a
velocidade do meio em que feita a transmisso dos dados,
uma vez que o desempenho est diretamente ligado
qualidade das imagens capturadas, resoluo, quantidade de
frames por segundo (fps) e o plugin usado na renderizao e
compresso do arquivo. A largura de banda mxima de 344
Mbps, o que corresponde a imagens estereoscpicas com 70
quadros por segundo e uma resoluo de 640x480 pixels por
imagem [2].
Esta metodologia teve como norte os testes que buscavam
uma anlise comportamental do programa desenvolvido. Tais
testes sero explanados mais detalhadamente no tpico que se
segue.

Logo abaixo, so exemplificados dois testes de


desempenho da rede ao se transmitir imagens pela rede usando
uma aplicao desenvolvida. Os equipamentos utilizados
foram um computador Desktop Intel Core 2 Duo 2.8Ghz
com 2Gb de memria (Cliente), conectado a um roteador
Wireless TP-LINK de 150 Mbps por um cabo de ethernet,
conectado a um netbook CCE Intel Atom 1.33Ghz com
2Gb de memria (Servidor), ambos os computadores com o
Ubuntu 11.04 como sistema operacional.

IV. TESTES E RESULTADOS


Figura 4. Network History demonstra um grafco do Cliente com a velocidade
constante necessria para transmisso de imagens com resoluo de 320x240
pixels.

TABELA I
TABELA DE VELOCIDADE DA CONEXO POR RESOLUO DE VDEO

Tipos de sinais
TV vdeo
(PAL/NTSC)
TV vdeo
compactado
(Qualidade de
DVD)
Vdeo stereo
(No
compactado)
Vdeo stereo
compactado
(Qualidade de
DVD)

Tamanho do
quadro

Frames por
segundo

720x480

25 30 fps

720x480

25 30 fps

5,2 Mbps

640x480

30 70 fps

147 344
Mbps

640x480

30 70 fps

6,3 14,6
Mbps

Na Figura 4, em Network History do gerenciador do


sistema do Ubuntu, exibido um grfico que representa uma
velocidade estvel em 1,5 Mbps na transmisso de imagens
com resoluo de 320x240 pixels usando a aplicao que
originou este artigo. A estabilidade da velocidade da rede
implica em um desempenho satisfatrio, com uma taxa de fps
prxima ao ideal, que quanto maior esta taxa, maior ser a
sensao de movimento que uma sequncia de imagens pode
propor e maior a quantidade de dados que sero enviados.

Largura de
banda
165,9
Mbps

A Tabela 1 ilustra um comparativo entre qualidade das


imagens associada a velocidades da conexo no meio de
transmisso. Conforme os testes feitos, comprova-se que a
taxa de bits necessria para a transmisso de vdeo, utilizandose um codec de compresso DivX, com a resoluo de
320x240 pixels, mantm-se por volta de 1,5 Mbps, onde a
converso de cada imagem retorna um texto com tamanho
exato de 230400 bytes. Contudo, se a resoluo for estendida
para 640x480 pixels, o tamanho do arquivo de 921600 bytes,
entretanto, para transmitir o vdeo com um desempenho
satisfatrio, necessrio uma rede que proporcione no mnimo
10 Mbps de velocidade em transferncia de dados.

Figura 5. Network History demonstra um grafco do Cliente com a velocidade


irregular, resultando em perda de desempenho do vdeo.

142

ANAIS ELETRNICOS V ENUCOMP


[6]

Instabilidade na rede pode ocasionar em perda significativa


de desempenho na hora de se transmitir grandes volumes de
dados. A Figura 5 mostra, em Network History,
irregularidades no grfico de velocidade da rede. Este teste foi
realizado usando as mesmas caractersticas do teste anterior:
aplicao, resoluo da imagem e equipamento de transmisso
sem fio. Esta instabilidade foi propositalmente provocada ao
se remover a antena do roteador wireless, resultando na perda
do sinal, acarretando na demora na transmisso, e por fim, na
reduo da qualidade do vdeo, com a quantidade de fps
podendo girar em torno de menos de 1 frame a cada segundo.
V. CONCLUSES
Convm ressaltar a funcionalidade dos sockets para
transmisso de dados e a simultaneidade entre os dispositivos
onde este executado. Um host ao receber uma string atravs
do socket, transfere as informaes para o mdulo Pygame,
que por sua vez, converte o texto em imagem novamente,
possibilitando, assim, que haja interao entre usurios de
computadores remotos. Mas, observou-se um problema de
incompatibilidade entre a biblioteca Pygame e o sistema
operacional Windows no momento em que se tenta usar a
webcam [7]. Baseado neste pressuposto, a verso Servidor da
metodologia apresentada deve executar incondicionalmente no
sistema Ubuntu, mesmo porque o Windows passa por uma
transio de verso e no se tem resultados de execuo do
Python em sua verso nova.
No desenvolvimento deste artigo, encontrou-se dificuldade
em obter-se embasamento terico de artigos cientficos com
trabalhos de mesmo princpio de funcionamento ou que
envolvesse a integrao de Python, Pygame e Opencv com
objetivos similares.
Conclui-se ento, que esta metodologia foi estabelecida
inicialmente com o objetivo de satisfazer uma necessidade
encontrada em um sistema Telerobtico, mas adaptaes
tornam esta maneira de envio de imagens cabvel a qualquer
situao que seja necessrio monitoramento atravs de
cmeras com uso de sinais Wireless disponveis, desde
explorao de outros planetas, monitoramento urbano,
residencial, industrial, militar at sistemas de TeleCirurgia ou
arquiteturas onde cliente e servidor podem estar a distncias
continentais tendo reduo de custo com equipamentos, cabos,
instalaes no interior de paredes, entre outros, e at
aproveitamento de servios disponveis como a prpria
Internet.

A. Anderson, R. Benedetti, Head First Networking. OReilly,


Sebastopol, 2009.
[7] http://www.pygame.org/news.html.
[8] http://www.olhardigital.com.br/produtos/central_de_videos/webcompleta-20-anos-veja-toda-a-historia.
[9] http://info.cern.ch/.
[10] T. A. Budd, Exploring Python. McGraw-Hill, Maidenhead, 2009.
Marlo Zeni Braga de Araujo graduando em Bacharelado
em Cincias da Computao pela Universidade Estadual do
Piau (UESPI), Parnaba, Piau, Brasil. Suas pesquisas se
concentram na rea da Telerobtica, Computao, Eletrnica
e almeja mestrado e doutorado nessas reas.

Francisco Marcelino Almeida de Arajo Bacharel em


Engenharia Eltrica com nfase em Eletrnica pela
Universidade Estadual do Piau (UESPI) em Teresina, Piau,
Brasil. Mestrando em Biotecnologia pela Universidade
Federal do Piau em Parnaba, Piau, Brasil, trabalhando com
nanocompsitos para nanofilmes aplicados Engenharia
Biomdica e materiais anticorrosivos. Suas principais reas de pesquisas so:
Processamento Digital de Imagens, Hardware Livre, Robtica, Tecnologias
Assistivas Deficientes e Portadores de Necessidades Especiais,
Nanotecnologia, Engenharia Biomdica e Engenharia de Materiais.

REFERNCIAS
[1]
[2]
[3]

[4]
[5]

D. Hellmann, The Python Standard Library by Example. Pearson


Education, Boston, 2011.
R. Aracil, M. Buss, S. Cobos, M. Ferre, S. Hirche, et al, The Human
Role in Telerobotics. Berlim, v.31, p.11-24, 2007.
B. Rhodes, J. Goerzen, Foundations od Python Network Programming:
The Comprehensive guide to building network applications with
Python. Apress, New York, 2010.
M. Lutz, Programming Python, Fourth Edition. OReilly, Sebastopol,
2011.
P. Barry, Head First Python. OReilly, Sebastopol, 2011.

143

ANAIS ELETRNICOS V ENUCOMP

Project OurDown: Collaborative System for


Download Management in Overlay Network
R. G. Sousa
Abstract 1This paper brings a new model to solve the problem
of downloads in social networks. In particular the waste of
bandwidth by downloading one same file multiple times. The
Internet Architecture provides the best effort and it forward each
package individually, but it doesnt provide a good performance,
neither deals with redundant downloads. In this case the problem is
known and there are some solutions, for instance Proxy Caching
and FTP servers, but those dont work with colaboration between
users in a local network, and they are not built by the point of view
of groupware and distributed systems. The objective of the project
Ourdown is to remove redundant downloads and add
conscious/aware components, built on a Peer to Peer (P2P)
network. P2P has been involved on building experimental and
sophisticated components, and those components can talk to each
other and consequently avoid duplicated downloads. This paper
demonstrates the model, the specification and the development of
the project Ourdown.
Keywords Peer to Peer, Download Manager, JXTA.

I INTRODUO

egundo projees para 2015, realizado pela


instituio de consultoria IDC (Internacional Data
Corporation), o trfego mensal mdio de quem usa a Internet
ser em torno de 24,8 gigabytes, para enviar esta quantidade
de informao por escrito, seria necessrio 1 milho de cartas
de uma pgina cada uma, ou 10 (dez) toneladas de papel [1].
Segundo pesquisas feita pela Internet World Stats [2] a
Internet possui cerca de 2 (dois) bilhes de usurios, cerca de
32% da populao mundial tem acesso a Internet, o
crescimento de usurios de 2000 at 2011 foi de 528%
(quinhentos e vinte e oito). Com o crescimento da Internet
torna-se atraente o compartilhamento de arquivos via WWW
(Word Wide Web), atualmente comum s organizaes
disponibilizar seus arquivos digitais atravs de portais. Este
procedimento torna-se atrativo, pois economiza com
gravaes de mdias e o interessado obtm o arquivo sob
demanda e com todas as vantagens que a Web pode
proporcionar.
Antes do ambiente WWW para compartilhamento de
arquivo o servio FTP (File Transferer Protocol) foi o
principal meio de troca de arquivos, o FTP viabiliza o
compartilhamento de arquivos na Internet permitindo que um
usurio em um computador: transfira; mova; ou remova
arquivos remotos [3]. Em organizaes onde o trfego na rede
necessita de extremo controle o administrador da rede executa
uma conexo remota ao servidor FTP que disponibiliza o
1

R. G. Sousa, Universidade Federal do Piau (UFPI), Piau, Brasil,


rayner@ufpi.br

arquivo desejado e deixa-o disponvel para os usurios na rede


local. O procedimento muito atrativo, pois limita a
quantidade de downloads entre a rede local e a externa.
O servio FTP foi criado numa poca em que o uso da
Internet era limitado e os usurios no realizavam downloads
constantemente [4]. Atualmente, controlar o trfego em uma
rede torna-se muito difcil por vrios aspectos: (i) nova
gerao de usurios acostumados com acesso irrestrito; (ii)
liberdade dos usurios em utilizar a Internet; (iii) pouco
conhecimento sobre as caractersticas do conjunto que o
permitem o acesso Internet. Com o passar do tempo a
transferncia de arquivos atravs da Web supriu o servio FTP.
Recentemente, vrios downloads so via navegadores
acessveis por meio de hyperlinks em pginas Web. Para obter
um arquivo o usurio encontra o que deseja e clica no
hyperlink, de forma simples e transparente. O comportamento
individual de cada internauta no leva em considerao o
comportamento do grupo de usurios na rede em comum.
Para facilitar a atividade de download, existem diversos
gerenciadores disponibilizados na Internet, sejam pagos, como
o Internet Download Manager [5], ou gratuitos, p.ex: Orbit [6]
e JDownloader [7]. Estes e outros aplicativos que se situam no
lado do cliente, ao contrrio dos servidores FTP, ficam no
mbito do computador do usurio e fogem da administrao
centralizada. Ambos os tipos de gerenciadores de downloads,
servidor FTP ou aplicativos do lado do cliente no usufruem
do compartilhamento peer-to-peer para otimizar o link de
acesso Internet.
Uma dificuldade muito grande para qualquer
administrador de rede evitar downloads redundantes dentro
de uma rede local. Servidores FTP precisam de uma
administrao rgida e centralizada e aplicativos gerenciadores
de downloads que so executados do lado do cliente
funcionam no escopo restrito da mquina dos usurios e no
so acessveis para outros usurios dentro da mesma rede. A
reduo de downloads paralelos do mesmo arquivo de
grande importncia para economia de banda de rede, uma vez
que as cpias transmitidas concorrem e consomem recursos
preciosos da rede, como: buffers de recepo, buffers de
transmisso, links de dados, processador e memria dos
roteadores e comutadores de rede.
Este trabalho prope a criao de componentes de
softwares distribudos [8,9,10] que so instanciados numa rede
local. O objetivo trabalhar de forma cooperada e em
conjunto com o navegador do usurio para gerenciar os
downloads dentro da rede local. Os componentes comportamse de forma a monitorar e promover a comunicao entre eles
do incio de eventuais downloads e alertando outros

144

ANAIS ELETRNICOS V ENUCOMP


componentes da existncia do download. A vantagem deste
sistema suprimir redundncias de downloads, evitando-se
novas conexes entre a rede local e a externa. Toda a
interao segue o modelo de comunicao peer-to-peer [11],
ou seja, sem a necessidade de configurar um servidor central
para o controle, cuja caracterstica um dos pontos de
destaque do projeto Ourdown.
As prximas sees deste artigo esto organizadas da
seguinte maneira: na seo 2 apresentam-se os trabalhos
relacionados, a seo 3 aborda a fundamentao terica do
projeto e o modelo conceitual do projeto Ourdown, figura-se
os diagramas de classe e sequencia para compreenso do
modelo concebido. Na seo 4 apresentam-se as tecnologias e
a infraestrutura de rede usada no projeto. Sequencialmente, a
seo 5 destaca dois pontos importantes na codificao do
modelo. A seo 6 descreve um resumo dos motivos de adoo
da plataforma JXTA. Por fim, na seo 7 esto as
consideraes finais com vrios pontos aprendidos durante o
desenvolvimento e a descrio de melhorias almejadas.
II. TRABALHOS RELACIONADOS
Com o intuito de posicionar o trabalho perante o assunto de
distribuio de arquivos, propem a seguinte diviso para os
servios de compartilhamento de arquivos:
a. Centralizados e no transparente: FTP;
b. Centralizados e transparentes: WEB Cache;
c. Distribudos, transparentes, sem controle de
admisso: Squirrel;
d. Distribudos, transparentes, com controle de
admisso: Ourdown.
2.1 FTP
O FTP (File Transfer Procolol) [12] o protocolo destinado
a transferncia de arquivos de um hospedeiro ao outro na
Internet. Projetado em 1971, tem como misso criar uma
ambiente de manipulao de arquivos remotos atravs de
primitivas parecidas com as utilizadas nos sistemas de
arquivos locais. Para tanto, possvel atravs do FTP um
cliente realizar as seguintes operaes: listar, renomear,
remover, criar, transferir e outras.

deste servio. O servidor proxy utiliza o ambiente WEB para


transmisso de dados. Em 1998 o trfego WEB correspondia a
75% de todo o trfego na Internet [14]. O servidor proxy
utilizado por um cliente atravs de uma prvia configurao
no navegador, ou no sistema operacional, ou no gateway da
rede atravs de um recuso chamado de proxy transparente.
O tempo de armazenamento na cache depende de uma
prvia configurao realizada pelo administrador da rede [15].
Cabe ao administrador da rede: a) instalar o servidor proxy na
rede; b) decidir o que deve ser armazenado; c) quanto tempo
ser armazenado as pginas e os objetos; e d) o tamanho da
cache que ser reservado.
2.3 Squirrel
Squirrel [16] um sistema de WEB cache distribudo que
usa o protocolo Pastry na busca de recursos e no roteamento
de mensagens. O Squirrel um servio executado no mesmo
host que o navegador WEB e ele compartilha o diretrio de
cache do navegador.
Aps o cliente solicitar uma URL a solicitao
encaminhada ao proxy Squirrel. Inicialmente o Squirrel
verifica se o objeto est na cache local e caso o objeto no
exista localmente feita uma busca na rede P2P formada por
outros ns. A URL utilizada para gerar um identificador
atravs de uma funo de hash, e com este identificador a
solicitao encaminhada a um n da rede P2P que tem o
identificador mais prximo do identificador do objeto. Este
principio a base da DHT (Dynamic Hash Table). Squirrel
um projeto maduro com resultados factveis e implementa o
protocolo Pastry para realizar a identificao de objetos e o
roteamento para o encaminhamento de mensagens.
2.4 Ourdown
Ourdown um projeto construdo sobre uma arquitetura
Peer-to-Peer (P2P). Esta arquitetura caracterizada pela
distribuio horizontal das entidades, assim, cada entidade
um servente, assumindo funes de cliente e servidor, este
comportamento simtrico desejado para sistemas sem a
presena de um servidor central.
Segundo Tanenbaum [4], as arquiteturas P2P so de dois
tipos: estruturadas ou no estruturadas. As arquiteturas
estruturadas utilizam de mecanismos complexos, p.ex:
variaes da DHT (Dynamic Hash Table), para nomeao e
localizao, muito estudo foi realizado neste assunto deste o
Napster 2007 [4]. Balakrishnan (2003) [17] em seu trabalho
Looking up Data in P2P System apresenta vrios algoritmos
como: CAN, Pastry, Tapestry e Chord como evolues do
percursor Napster para distribuio de arquivos sob
arquitetura P2P.
As arquiteturas no estruturadas so sistemas em que no se
utiliza de complexos sistemas de nomeao e localizao para
construir uma rede de sobreposio. Quando um n precisa
localizar um item, a nica coisa que ele faz inundar a rede
com uma consulta de busca. O projeto Ourdown construdo
sobre uma arquitetura no-estruturada.
A Tabela 1 apresenta as diferenas entre os sistemas FTP
(seo 2.1), WEB Cache (seo 2.2), Squirrel (seo 2.3) em
relao ao Ourdown. As respostas da primeira pergunta mostra
que o Squirrel e o Ourdown so sistemas descentralizado. A

2.2 WEB Cache


Servidor WEB Cache, tambm conhecido como servidor
proxy, o servidor que realiza cache de objetos WEB da
Internet, assim alm de armazenar pginas HTML (HyperText
Markup Language) tambm pode armazenar objetos (imagens,
udio e vdeos) referenciados nas pginas requisitadas via o
protocolo HTTP (Hyper Text Transfer Protocol). utilizado
para reduzir o trfego na Internet, pois armazena
temporariamente os arquivos [13]. Geralmente um servio
dedicado e colocado entre a rede local e a externa.
A ideia do servidor proxy trazer o contedo de um
servidor WEB para mais prximo do cliente e assim diminuir
o tempo de espera. A vantagem alcanada na segunda
requisio HTTP emitida pelo cliente que inicialmente fez a
requisio HTTP ou por outro cliente que compartilha o
mesmo servidor proxy. O tamanho da cache versus pginas
estticas e dinmicas um ponto de conflito nas configuraes
145

ANAIS ELETRNICOS V ENUCOMP


resposta da segunda pergunta mostra que o Squirrel e o
Ourdown no necessitam de um administrador de rede para
sua execuo. As respostas da terceira pergunta mostra que
somente o WEB Cache e o Ourdown fazem controle da
admisso de novas conexes para arquivos, o WEB Cache
utiliza da primitiva HEAD do HTTP para este controle. A
resposta da quarta questo mostra que somente o FTP no
esconde do usurio os parmetros de rede como: endereo,
porta, usurio e senha, diretrios e nome dos arquivos
remotos. A resposta da quinta questo mostra que no FTP e na
WEB Cache o usurio para encontrar um recurso precisa
necessariamente saber sua localizao. As respostas da sexta
questo apresentam que somente o Squirrel e o Ourdown, por
serem construdos sobre uma arquitetura distribuda, possuem
uma maior robustez por no possuir um ponto de
vulnerabilidade.
A resposta da ltima pergunta da Tabela 1 destaca o ponto
de divergncia conceitual do projeto Squirrel e Ourdown. O
Ourdown evita que conexes a um mesmo objeto sejam feitas
em tempo real, o controle da banda pr-ativa. No Squirrel os
arquivos so obtidos atravs de diretrios temporrios dos
navegadores Web aps o download ser completado, no h
interveno do sistema durante o download, dois clientes
usando o Squirrel podem realizar o download de um mesmo
arquivo ao mesmo tempo, este comportamento evitado pelo
Ourdown.

se preocupam em detectar nenhum download, e assim


comum que um arquivo seja descarregado por vrios usurios
ao mesmo tempo. Visualiza-se que o Arquivo A na Fig. 1
duplicado no espao de armazenamento do Usurio 1 e
Usurio 2.O tempo de download de um arquivo (Frmula 1)
proporcional ao tamanho do mesmo e a Largura de Banda.
Calcula-se o tempo de download atravs da frmula:

F (t )=

t
v

(1)

So variveis da Frmula 1:
t denota o tamanho do arquivo;
v denota a largura de banda.
Quanto maior a quantidade de downloads paralelos
menor ser a largura de banda sensvel disponvel na rede.
Apesar da largura de banda corresponder a uma faixa de
frequncia fixa, a taxa de transmisso alterada de acordo
com diversas variveis, entre elas a quantidade de downloads.
Enquanto as requisies de downloads gerarem um consumo
na rede menor que a largura de banda disponvel nenhum
usurio ir competir e atrapalhar a atividade do outro.
medida que o nmero de downloads aumente o tempo de
download de um arquivo ir aumentar.
n

S (t )= F (t )

TABELA 1
COMPARAO ENTRE VRIOS MEIOS DE COMPARTILHAMENTO DE ARQUIVOS
Questes
1. Necessita de um Servidor?
2. Necessita de um
administrador de rede:
3. Gerencia a admisso de
downloads duplicados?
4. Transparente para o
usurio?
5. Transparente quanto a
localizao de rede?
6. Ponto nico de falha?
7. Gerencia o download sobdemanda em tempo real?

FTP
Sim
Sim

Web Cache
Sim
Sim

Squirrel
No
No

Ourdown
No
No

No

No

Sim

Sim

Sim

No

Parcialmen
te
Parcialmen
te
No

Sim

Sim

Sim
No

Sim
No

No
No

No
Sim

No

(2)

III. SISTEMAS COLABORATIVOS E MODELAGEM


A Fig. 1 apresenta um modelo bsico de uma rede local de
uso genrico.

Figura 1. Duplicao de Download.

Em uma extremidade da rede se encontram os usurios


que neste contexto so os responsveis pelos downloads.
Entende-se neste modelo que os usurios utilizam de diversos
tipos de equipamentos (computador, notebook, smartphones e
outros) para realizar o download. As redes locais (LAN) no

A Frmula 2 apresenta a somatria total de tempo gasto


na rede com todas as transmisses:
So variveis da Frmula 2:
t denota o tamanho do arquivo;
0 e n limites, 0 instante inicial e n tempo final;
t denota o tamanho do arquivo.
Existem vrias tcnicas de suprir a demanda por banda
em uma rede de computadores. Uma viso mais simples e
esttica o aumento de recursos de rede, como p. ex.: enlaces
mais velozes. Porm esta medida gera um ciclo vicioso, uma
vez que o aumento de largura de banda provoca
proporcionalmente o aumento na demanda gerando um crculo
vicioso, mais banda mais consumo.
Neste campo de estudo, nas ltimas dcadas pesquisaramse vrias maneiras de gerenciar os enlaces de rede. Dentre
diversas abordagens a Arquitetura DiffServ se destaca.
Arquitetura dos Servios Diferenciados (DiffServ) [18,19,20]
posiciona entre o servio padro da Internet (BestEffort Servio de Melhor Esforo) e a Arquitetura IntServ (Servios
Integrados) [21]. DiffServ e IntServ so arquiteturas baseadas
no conceito de QoS (Quality of Service) e so abordagens
fundamentadas no controle do uso da rede baseadas na
sinalizao do trfego para prover garantias na rede, dentre ela
a largura de banda.
Merece destaque que a proposta deste trabalho
diferentemente das Arquiteturas IntServ e DiffServ est
baseada na colaborao invs da concorrncia que as outras

146

ANAIS ELETRNICOS V ENUCOMP


arquiteturas promovem. Neste contexto o projeto adota o
paradigma da colaborao.
Existem vrias teorias e modelos de colaborao, entre elas
Teorias dos Jogos, a Teoria da Atividade, o Modelo 3C de
colaborao, Padres de Colaborao e o Modelo Tuckman.
Teorias e modelos so utilizadas para entender, comparar,
abstrair e generalizar o ambiente e os cenrios nos quais
elementos colaborativos esto inseridos [22]. Dentre os vrios
modelos, este projeto alinha-se a ideia do Modelo 3C. O
Modelo 3C esquematizado na relao entre as aes de:
comunicar, cooperar e coordenar. A seguir, estas trs aes
so identificadas no Modelo Conceitual do Projeto Ourdown.

Figura 2. Cooperao entre os componentes.

Segundo a Fig. 2, nota-se que a rede adicionada com


novas funcionalidades incorporadas na mquina do usurio
para o gerenciamento de downloads. A dinmica da rede
alterada para que antes do incio do download haja uma
interao entre os componentes distribudos. Cada
componente construdo de vrias funcionalidades sendo
realizadas em paralelo e em comum dentre todos.
Uma grande diferena entre as Fig. 1 e a Fig. 2 est na
quantidade de arquivos Arquivo A transmitida da rede
externa (Internet) para a rede local (LAN). Uma vez que o
novo ambiente proposto neste projeto comporta-se como
esperado as requisies duplicadas de um mesmo arquivo
sero canceladas e o requisitante aguardar o download de
quem iniciou primeiramente o arquivo. Importante ressaltar
que no mercado atual, a largura de banda comum entre o
Gateway e a rede externa da grandeza dos kilobits por
segundo (Kbps) ou megabits por segundo (Mbps), enquanto as
redes locais (LAN) operam na grandeza dos gigabits (Gbps)
por segundo.
3.1 Objetos do Componente
Aps uma viso geral do projeto, onde se focou na
vantagem desta abordagem em relao ao modelo tradicional
de download, alm da demonstrao simples da modelagem
matemtica do sistema, esta seo apresenta a proposta
computacional de modelagem de objetos utilizados na
implementao dos componentes.

Figura 3. Objetos do Componente.

O componente (ver Fig. 3) atua como servente e assume os


papeis de cliente e servidor. O componente pode ser
decomposto em vrias partes, so elas: WebServer,
WaitingFile, UDPServer e o Downloader. A Fig. 3 apresenta o
componente, seus principais objetos e sua localizao no
ambiente. Na figura observa-se que o componente tem acesso
a LAN e a Internet ao mesmo tempo. Nos quatro pargrafos a
seguir so delineadas as funcionalidades de cada um.
WebServer responsvel pela captura do incio de um
download, existem vrias possibilidades tecnolgicas para esta
deteco. Na seo 4 desvendada a tcnica adotada no
desenvolvimento do componente neste projeto. Uma vez
detectado o incio de um download necessrio extrair o
nome do arquivo, sua localizao e salvar as informaes para
uso futuro.
O WaitingFile (ver Fig. 3) tem a funo de entrar em
contato com os outros componentes para descobrir se outro
componente realiza o download do arquivo requisitado pelo
usurio. A taxa de requisio pode ser maior que a taxa de
download realizado pelo sistema, assim, h necessidade de
armazenar as requisies em um buffer e trat-las
sequencialmente.
Caso nenhum componente na rede esteja realizado o
download do arquivo requisitado, o Downloader inicia o
download pela Internet. Esta tarefa implica em atualizao de
variveis locais para sinalizar esta ao.
A qualquer momento um componente pode receber uma
mensagem de outro componente questionando pela existncia
do download de um arquivo. Se o componente que recebe a
mensagem realiza o download do arquivo desejado este deve
enviar uma mensagem ao componente que fez o
questionamento. O UDPServer o responsvel por esta tarefa,
de enviar um arquivo local a outro componente na rede.
Neste contexto, h um protocolo de alto nvel e as
mensagens enviadas pelos componentes so: a) Mensagem de
Requisio e b) Mensagem de Resposta. A Mensagem de
Requisio enviada para todos os componentes contendo o
nome e a localizao do arquivo desejado, aps o envio desta
mensagem o componente aguardar um timeout, quando este
timeout esgota o prprio componente inicia o download, ou
seja, no aguarda mais nenhum tempo por espera. A
Mensagem de Resposta uma mensagem unicast enviada
diretamente para quem originou o pedido, o componente que
originou o pedido aps receber a mensagem de resposta deve
aguardar o envio do arquivo.
Alguns objetos contidos no componente (ver Fig. 3) so
assncronos e outros so sncronos.
O WEBServer
assncrono, ele intercepta uma requisio a qualquer momento,

147

ANAIS ELETRNICOS V ENUCOMP


uma vez interceptado ele armazena a requisio em um buffer,
as requisies so feitas diretamente pelo usurio e so
guardas para futuras requisies despachadas na rede local. O
WaitingFile responsvel por enviar as mensagens de
requisies na rede sncrono, ele aguarda um intervalo de
tempo e caso no receba uma reposta sinaliza ao Downloader
a realizar o download, que consequentemente tambm
sncrono.
3.2 Diagrama de Classe
Segundo os requisitos do sistema e o modelo do
componente (seo 3.1), o sistema projetado composto de
cinco classes principais e mais duas classes auxiliares. A Fig. 4
apresenta a relao entre elas.

Uma vez sinalizado o envio pelo outro componente na rede


criado um objeto da classe ReceiveFile para receber o arquivo.
Portanto, observa-se a possibilidade e a preocupao de
recebimentos simultneos na rede. A classe ReceiveFile
tambm uma generalizao da classe Thread.
Downloader a classe responsvel por realizar o download
de um arquivo da Internet. Seu mtodo principal uma rotina
circular de checagem do vetor FilaDownloads, quando o vetor
esta vazio o objeto desta classe bloqueado (Thread.wait()).
Se o vetor contiver elementos, cada elemento representa uma
requisio dispara pelo Usurio que no foi atendida pelos
outros componentes, entretanto este elemento descreve o
arquivo a ser obtido da Internet.
UDPServer a classe que modela o comportamento do
objeto responsvel por escutar da rede local pedidos de
download. Seu mtodo principal apenas abre uma porta de
comunicao UDP e aguarda a chegada de pacotes de
broadcast. Uma vez recebido um pacote a mensagem
extrada e analisada. A anlise consiste em procurar no vetor
FilaDownloads se o arquivo requisitado faz parte da lista de
arquivos obtidos pelo Downloader, se sim ento extrado do
pacote o endereo de comunicao do requerente e salvo no
vetor de FilaPedidos para futuro processamento.
3.3 Diagramas de Sequncia
A seguir so apresentados dois diagramas de sequncia
ilustrando a interao entre os objetos dos componentes.

Figura 4. Diagrama de classes.

A classe Componente a classe principal que possui o


mtodo para o incio da execuo da aplicao. Esta classe
composta por quatro objetos, cada um da classe WebServer,
WaitingFile, Downloader e UDPServe. Todos os quatro
objetos associados so nicos e executados em paralelo,
portanto as classes so especializadas da classe Thread. Por
questo de clareza da Fig. 4 a no apresenta estas
generalizaes.
A
classe
Componente
possui
dois
vetores:
FiladeDownloads e FiladePedido. O vetor FiladeDownloads
utilizado para armazenar as requisies disparadas pelo
usurio. O vetor FilaPedidos utilizado para armazenar as
requisies enviadas pelos componentes da LAN e que sero
atendidas. Os quatro pargrafos a seguir explicam a
responsabilidade de cada uma das classes (ver Fig. 4).
WebServer a classe responsvel pela implementao da
interao entre as interfaces de deteco do evento do
downnload e o componente. Sua outra funo de registrar as
requisies para futuro processamento, por fim, de sua
responsabilidade enviar uma mensagem ao usurio avisando-o
do sucesso da operao. Como h possibilidade do disparo de
vrias requisies de downloads pelos usurios a classe
WebServer cria um objeto da classe WebClientRequest .
WaitingFile a classe responsvel pela recepo de um
arquivo antes requisitado e prometido por outro componente.

Figura 5. Diagrama de sequncia de um pedido de um Arquivo.

O diagrama de sequncia (Fig. 5) apresenta a sequncia de


mensagens entre os elementos. O Navegador e o WebServer se
encontram no mesmo host. O UDPServer o objeto
pertencente a outro componente de outro host.
Entre o WebServer e o UDPServer est a LAN que neste
diagrama representa simplesmente uma rede local de
computadores. Esta figura representa a fase inicial de um
pedido e os passos at que o pedido seja enviado de um
componente para a rede e da rede para outro componente.
Aps o recebimento de um pedido pelo UDPServer outra
sequncia de mensagens realizada, ver Fig. 6.

148

ANAIS ELETRNICOS V ENUCOMP

Figura 6. Diagrama de sequncia do recebimento de um arquivo.

Aps a recepo de um pedido, o UDPServer (ver Fig. 5)


verifica se faz o download do arquivo requisitado, se sim ele
armazena o pedido e envia uma mensagem avisando que est
fazendo o download. Neste caso, o outro componente no ir
iniciar o download e aguardar o envio pela rede local. Se
nenhum UDPServer espalhado na rede local responder o
Downloader entrar em ao.
O Downloader responsvel pelo download do arquivo
pela Internet. Aps o fim do download ele deve pesquisar os
pedidos enfileirados e transmitir o arquivo para o WaitingFile
que se encontra em outro host. O WaitingFile fica aguardando
o envio e aps a conexo ele cria o objeto ReceiveFile para
cada envio, uma vez que pode existir a transmisso de vrias
fontes diferentes e de arquivos diferentes. Na Fig. 6 apresenta
o objeto Internet para ilustrar a Internet, na verdade no h um
componente de software Internet. Os diagramas de sequencia
Fig. 5 e Fig. 6 mostram a srie de mensagens e o
envolvimento de vrios objetos na rede.
Esta seo apresentou os principais aspectos funcionais do
modelo de classes e a interao entre elas, a seguir na seo 4
apresenta-se os aspectos tecnolgicos para implementao
deste modelo.
IV. TECNOLOGIAS E INFRAESTRUTURA DE REDE
Aps a modelagem do sistema, das classes e suas
respectivas funcionalidades, das relaes e dependncias, o
prximo passo do projeto consiste na implementao. Neste
ponto, vrias tecnologias foram avaliadas e nesta seo
apresentam-se as tecnologias preteridas na fase inicial que se
encontra o trabalho. Na seo 5 apresentada a JXTA como
outra tecnologia no, sua adio s foi possvel atravs de
experimentos realizados com as ferramentas apresentadas
nesta seo.
4.1 Firefox
O navegador Web, ou browser, permite ao usurio acessar o
contedo presente em outras mquinas, o usurio requisita o
contedo atravs de um endereo e por meio deste iniciada
uma conexo com a outra mquina, alem da visualizao de
pginas utiliza-se o navegador para download de arquivos.
Existem vrias tcnicas para capturar o incio do download,
uma alternativa alterar o comportamento do Sistema
Operacional, esta alternativa envolve uma codificao
particular para cada Sistema Operacional. Afim de uma
independncia do Sistema Operacional projetou-se um
componente para o Firefox[17]. O Firefox permite adio de

complementos que alteram seu comportamento padro, alm


desta flexibilidade a vantagem dele ser gratuito foi
fundamental na escolha.
O Firefox escrito com a linguagem de marcao XUL
desenvolvida pelo prprio Mozilla. Firefox um software
livre de cdigo aberto, todavia o usurio poder alterar suas
caractersticas e funcionamento atravs de extenses.
De acordo com o Mozilla [15] as extenses do Firefox, so
pacotes contendo arquivos que podem modificar o
comportamento e a interface do Firefox. Podem ainda
monitorar eventos do browser, como por exemplo, o clique do
mouse sobre algum link. As extenses assim como o prprio
navegador so codificadas com a linguagem XUL.
A extenso um arquivo composto por documentos que
descrevem seu funcionamento e contem um arquivo manifesto
o qual o Firefox sabe sobre uma extenso e o que deve ser
instalado. Tambm uma extenso possui a pasta chrome na
qual esto inseridos os contedos que personificam a
aparncia, idioma e scripts em JavaScript que definem o
funcionamento.
Para que o WebServer (seo 3.1) identifique uma
requisio a partir do browser foi codificado um componente
para o Firefox. utilizado o AJAX para prover a comunicao
entre o browser e o objeto WebServer.
4.2 Java e Sockets
A codificao do componente foi feita por meio da
plataforma de desenvolvimento Java. A linguagem Java foi
escolhida por apresentar facilidade na programao para
Internet, suporte a Threads, controle de concorrncia e
paralelismo e suporte a Sockets TCP e UDP. Alm destas
vantagens focadas no projeto a linguagem Java se destaca por
ser robusta, flexvel, e suportar mobilidade e portabilidade.
A portabilidade de suma importncia para o projeto. A
possibilidade de construir o componente e o mesmo ser
executado em diferentes Sistemas Operacionais vai ao
encontro da natureza distribuda dos componentes.
Sockets em redes de computadores so abstraes de canais
de comunicao, todo servidor que deseja ser acessado deve
criar Socket Server.
Uma vez criado um Socket Server este pode ser acessado
por outro programa que inicie um Socket com o servidor. A
conexo formada por uma dupla de sockets, o do cliente e do
servidor. A dupla de sockets caracterizada por uma qudrupla
formada por endereo IP de origem e endereo IP de destino,
porta de origem e porta de destinos.
Neste projeto algumas portas foram pr-definidas para a
criao de sockets. A Fig. 7 incio do Arquivo Configure.java
retirado do projeto.

149

public class Configure{


static int portOurDownWebServer = 2121;
static int portOurDownWaitingFil = 2222;
static int portOurDownWaitingFil = 9000;
}
Figura 7. Arquivo Configure.java.

ANAIS ELETRNICOS V ENUCOMP


Nota-se que no arquivo definido o identificador de trs
portas de rede. A porta TCP 2121 utilizada para o Navegador
enviar uma requisio ao WebServer. A porta TCP 2222
utilizada pelo WaitingFile para receber a sinalizao do envio
de um arquivo. E por fim, a porta UDP 9000 utilizada para
envio de datagramas multicast.

desconhecido o datagrama enviado para o endereo de


broadcast da rede. O cdigo a seguir mostra esta tarefa:
ds = new DatagramSocket();
byte[] bufout = new byte[1024];
DatagramPacket dp = new DatagramPacket(bufout, bufout.length);
bufout = ("PEDIDO:" + request).getBytes();
dp.setData(bufout);
dp.setAddress(
InetAddress.getByName("255.255.255.255"));
dp.setLength(bufout.length);
dp.setPort(Configure.portOurDownUDPServer);
ds.send(dp);

V. DESENVOLVIMENTO E CODIFICAO
5.1 Componente no Firefox
Todo o processo da construo do componente para o
Firefox extenso. Abaixo apresentado o cdigo do arquivo
browser.xml responsvel pela mudana visual do Firefox
quando se clica com o boto direito encima de um link.
<overlay id="ourdown"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script src="ourdown.js" />
<popup id ="contentAreaContextMenu">
<menuitem label="OurDown" oncommand="linkTargetFinder.run()"/>
</popup>
</overlay>

A incorporao do cdigo acima no componente faz que ao


clicar com o boto direito do mouse construa um menu com
a opo Ourdown como mostrado na Fig. 8.

O cdigo acima mostra a construo de um datagrama


representado pelo objeto Java dp. O mtodo setAddress
utilizado para armazenar o endereo de destino
255.255.255.255. Este nmero representa o endereo de
broadcast numa rede local. O cdigo elucida uma parte
importante do funcionamento do componente WebServer
responsvel pelo envio do datagramas UDP em broadcast na
rede local. Esta soluo implica que o cdigo dependente da
Arquitetura TCP/IP e seu escopo de atuao restringe a uma
rede local, uma vez que os datagramas UDP de broadcast so
descartados nos roteadores.
O artifcio utilizado para enviar uma mensagem para todos
os componentes da rede uma caracterstica particular da
camada de rede da Arquitetura TCP/IP. Assim, este cdigo
depende de como a camada de rede trata os datagramas com
endereo de broadcast. O uso do UDP tambm se fundamenta
por ser um protocolo com baixo overhead de rede e prefervel
em relao ao TCP neste aspecto.
VI. NOVO CDIGO COM JXTA

Figura 8. Imagem da opo Ourdown no menu do Firefox.

O arquivo ourdown.js contido no complemento possui a


funo do envio da requisio via AJAX. O trecho abaixo
mostra este processo.
...
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
...
xmlHttp.open("GET","http://localhost:2121?="+arquivo,true);
xmlHttp.send(null);
...

O mtodo open do objeto xmlHttp faz uma conexo para a


porta 2121 cujo destino a prpria mquina. Antes do uso do
componente do Firefox necessria a instalao da outra parte
do sistema responsvel pela recepo destas conexes. A
conexo mostrada no cdigo acima um recurso do Javascript
muito utilizado em requisies AJAX.
5.2 Componente UDPServer
A mensagem
destinada a todos os componentes
encapsulada por um datagrama UDP, como o destino a priori

Toda codificao do componente, incluindo as classes


WebServer, WaitingFile, UDPServer e Downloader est em
processo de alterao para funcionar segundo a plataforma
JXTA. O objetivo aprimorar o projeto com novos recursos
providos por esta plataforma [24].
JXTA cujo significado juxtapose (unidos), um conjunto
aberto de protocolos especficos para construo de redes
Peer-to-Peer que permite qualquer dispositivo de rede, tais
como: sensores, smartphones, notebooks e servidores,
comunicarem-se mutuamente como seus parceiros. O
protocolo JXTA independente de linguagem de
programao, porm Java possui pacotes para suporte ao
JXTA.
A substituio da API Socket Java por JXTA foi orientada
ao desejo de tornar o projeto mais interopervel, independente
de plataforma, independe de arquitetura de rede e a
possibilidade de construir servios mais ubquos. Vrias
funes implementadas neste projeto, tais como: descoberta de
componentes, organizao em grupo, aviso e descoberta de
recursos (neste caso arquivos compartilhados), comunicao
entre eles, e monitorao da rede ser suprida pelo JXTA,
resultando na diminuio da codificao.
VII. CONSIDERAES FINAIS E TRABALHOS FUTUROS
Ourdown um sistema distribudo cuja funo exercida
cooperativamente por componentes constitudos de objetos

150

ANAIS ELETRNICOS V ENUCOMP


com funes bem definidas. Seu propsito geral torna a rede
local de computadores conscientes da dinmica de download
de forma descentralizadas. A descentralizao est em
consonncia com o novo modo de utilizao pelos os novos
usurios acostumados com o compartilhamento e a
descentralizao de servios.
Este artigo apresenta um novo modelo de gerncia de
download cuja sua vantagem foi formalmente apresentada. O
projeto apresenta um paradigma que rompe com o modelo
tradicional de download. A forma tradicional de downloads
no tira aproveito da grande diferena entre a largura de banda
das redes LAN em relao s WANS e no preocupam com o
download enquanto esto ocorrendo.
Este artigo relata a fase inicial do projeto desenvolvido
sobre o aval do programa de Iniciao Cientfica da
Universidade
Federal
do
Piau
(ICV 2012/2013
UFPI/CSNHB). Descreve vrias etapas do projeto ressaltando
a concepo, a modelagem, e a codificao. Quanto
codificao destacaram-se algumas partes cruciais do cdigo
para execuo do sistema, entre elas a componentizao para o
Firefox, a interceptao de downloads e a comunicao em
broadcast via UDP.
Durante o desenvolvimento do cdigo novos requisitos
surgiram e sero implementados no decorrer do perodo do
ICV 2012/2013. Dentre os principais requisitos levantados
so: a) adicionar aspectos de segurana na comunicao entre
os componentes; b) estabelecer o conceito de grupos para
restringir as mensagens na rede; c) permitir a busca de
downloads ativos atravs de coringas de pesquisa de nomes,
endereos e estados; d) implementar um sistema de cache
local nos componente para que os mesmos executassem o
papel de proxy de cache; d) adicionar a possibilidade de
cooperao para downloads simultneos de um mesmo
arquivo, pois a atual codificao implica que um componente
deve aguardar o encerramento do download para que o mesmo
seja retransmitido na LAN; e) Atualmente existe apenas o
componente Ourdown para o Firefox, almeja-se desenvolver
para outros navegadores, especialmente o Google Chrome.
A plataforma JXTA foi escolhida em substituio de API
Socket do Java por permitir que as novas funcionalidades
segundo os requisitos levantados possam ser implementados
com maior agilidade, pois muitas das funcionalidades j esto
embutidas no JXTA, entre elas: agrupamento de componentes,
segurana e comunicao em grupo.
Assim que o sistema adquirir maior estabilidade, robustez e
interfaces mais amigveis deseja-se sua distribuio
gratuitamente. O intuito a divulgao do curso de Sistema de
Informao da Universidade Federal do Piau como produtora
de softwares inovadores e assim fomentar o interesse na rea
de pesquisa, desenvolvimento e empreendedorismo na regio.

REFERNCIAS
[1]
[2]
[3]

VEJA. Abril, 2011, ISBN 2221, Ano 44, publicada em 15 jun.


2011.
IWS.
Internet
World
Stats,
Disponvel
em:
http://www.internetworldstats.com, acessado em 10 ago 2012.
SOARES, Luiz Fernando G. Redes de Computadores: Das

[4]
[5]
[6]

[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]

[15]
[16]

[17]

[18]

[19]

[20]

[21]

[22]
[23]
[24]

LANs,MANs e WANs s Redes ATM. 2 Edio. Rio de Janeiro:


Elsevier, 1995.
TANENBAUM, A. S. Sistemas Distribudos: princpios e
paradigmas. 2 Edio. So Paulo: Pearson Prentice Hall, 2007.
IDM, Disponvel em http://www.internetdownloadmanager.com.
ORBIT,
Disponvel
em
acessado
em
01/08/2012.
http://www.orbitdownloader.com/br/index.htm, aces. em 10 ago.
2011.
JDOWNLOAD, Disponvel em http://jdownloader.org/ , acessado
em 10 ago. 2011.
DEITEL, H. M. Java TM: como programar. 6 Edio. So Paulo,
Pearson Prentice Hall, 2005.
FUNDAO MOZILLA. Disponvel em: http://www.mozilla.org
Acesso em: 10 out. 2011.
OAKS SCOTT, Travaset Bernard, Gong Li, JXTA in a Nutshell,
O'Reilly, 2002.
TANENBAUM, A. S. Redes de Computadores. 4 Edio. Rio de
Janeiro: Elsevier, 2003
POSTEL. J e REYNOLDS J. File Transfer Protocol (FTP), RFC
977, fev. 1986. http://www.rfc-editor.org/rfc/rfc977.txt.
KUROSE J. F. e Ross K. W. Redes de Computadores e a Internet,
Pearson: So Paulo: 2004.
CLAFFY K., MILLER G. E THOMPSON K. The Nature of the
Beast: Recent Traffic Meassurement from an Internet Backbone.
Proceedings
of
Inet`98.
Geneva,
jul.
1998.
http://www.caida.org/outreach/resources/papers/Inet98/.
Squid Web Proxy. Disponvel em: http://www.squid-cache.org.
Acessado em: 04 nov 2012.
Sitaram Iyer, Antony Rowstron, and Peter Druschel. 2002.
Squirrel: a decentralized peer-to-peer web cache. In Proceedings of
the twenty-first annual symposium on Principles of distributed
computing (PODC '02). ACM, New York, NY, USA, 213-222.
DOI=10.1145/571825.571861
http://doi.acm.org/10.1145/571825.571861
Hari Balakrishnan, M. Frans Kaashoek, David Karger, Robert
Morris, and Ion Stoica. 2003. Looking up data in P2P systems.
Commun.
ACM
46,
2
(February
2003),
43-48.
DOI=10.1145/606272.606299
http://doi.acm.org/10.1145/606272.606299
Almesberger, W., Salim, J., Kuznetsov, A., and Knuth, D. (1999).
Differentiated Services on Linux. Tecnical Report ietf internet
draft,
Internet
Enginnering
Task
Force.
URL
at
http://www.almesberger.net/cv/papers/18270721.pdf.
Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z., and Weiss,
W. (1998). An architecture for Differentiated Services .
Tecnhinal Report RFC 2475, Internet Engineering Task Force.
URL at http://www.ietf.org.
Nichols, K., Blanke, S., Baker, F., and Black, D. (1998).
Definition of the Differentiated Services Field (DS Fiel d) in the
IPv4 and IPv6 Headers. Tecnhinal Report RFC 2474, Internet
Engineering Task Force. URL at http://www.ietf.org.
Braden, R., Clack, D., and Shenker, S. (1994). Integrated Services
in the Internet Architecture: an Overview. Tecnhinal Report RFC
1633, Internet Engineering Task Force. URL at http://www.ietf.org.
Pimental M, Fuks H, et al, Sistemas Colaborativos, Rio de Janeiro:
Elsevier, 2011.
MDN. Disponvel em: <https://developer.mozilla.org/pt-BR/>
Acesso em: 10 out. 2011
http://www.jxta.org

Rayner Gomes Sousa possui graduao em Cincia da


Computao pela Fundao Integrada Municipal de Ensino
Superior (1998) e mestrado em Cincia da Computao pela
Universidade Federal de Uberlndia (2005). Atualmente
Professor Titular da Universidade Federal do Piau e
Professor Contratado da Universidade Aberta do Piau. Tem
experincia na rea de Cincia da Computao. Atuando
principalmente nos seguintes temas: Internet, Qualidade de Servio, CORBA,
DiffServ, JXTA e Android.

151

ANAIS ELETRNICOS V ENUCOMP

SenseRDF: Towards a Linked Data Conversion


Tool
B. Communications Modeling

A. Silva, N. Frana, B. Paulino, D. Souza and W. Travassos, Member, Instituto Federal de


Educao, Cincias e Teconologia da Paraba - IFPB
leitura dos dados conectados semanticamente, de forma
automtica, por agentes de software.
Para aplicar essas prticas e alcanar a viso da Web de
Dados, necessrio trabalhar com algumas etapas
bsicas: (i) converso de dados disponveis em formatos
diversos, como, por exemplo, PDF, XML e HTML, em
modelo de representao padro RDF; (ii) associao dos
objetos presentes nos diversos conjuntos de dados por
meio de links; (iii) publicao dos conjuntos de dados na
nuvem (Linked Data Cloud) [4] e o (iv) consumo dos
dados publicados por meio de aplicaes construdas para
este fim.
Este trabalho abrange a primeira etapa do processo.
Para viabilizar a publicao de dados no padro Linked
Data, a ferramenta SenseRDF vem sendo desenvolvida
com o objetivo de converter dados atualmente em
formatos PDF e XML em modelos RDF, seguindo os
princpios propostos [4]. Para escolher os formatos a
serem contemplados na primeira verso da ferramenta,
fizemos um estudo dos dados atualmente disponibilizados
no portal do governo brasileiro1. Constatamos que boa
parte deles se encontra em XML e PDF e que existem
ainda poucas ferramentas que contemplam os mesmos [5].
Diante disso, a SenseRDF vem sendo implementada e,
neste artigo, apresentamos a verso que converte arquivos
PDF (seus metadados) em RDF. A ferramenta oferece um
ambiente simples de ser utilizado e permite atualizao
dos metadados PDF, caso seja de interesse do usurio. Os
dados (metadados) convertidos atendem aos princpios
formulados no projeto Linked Data: (i) usa URIs para
nomear recursos; (ii) utiliza vocabulrios recomendados
para identificar os recursos e (iii) permite que as URIs
sejam acessadas atravs do protocolo HTTP.
Este trabalho est organizado da seguinte forma: a
Seo 2 introduz a abordagem SenseRDF; a Seo 3
apresenta a ferramenta na prtica por meio de exemplos; a
Seo 4 descreve os trabalhos relacionados, e a Seo 5
tece algumas consideraes e indica trabalhos futuros.

Abstract Underlying the development of the Semantic


Web, the project Linked Data aims to define a set of best
practices for publishing and connecting structured data on
the Web with the purpose of creating a Web of Data. To this
end, at first, existing data should be converted to a standard
model in such a way that they can be understood by software
agents and be used by diverse applications. In this light, the
tool named SenseRDF has been developed to allow the
conversion of data in formats such as PDF and XML to a
representation model in RDF. The generated data (in RDF)
follow the Linked Data principles and adhere to commonly
accepted vocabularies.
Keywords data conversion, Linked Data, vocabularies,
RDF.

I.

INTRODUO

Internet contempornea, nos moldes da World Wide


Web (ou simplesmente Web), vive um constante
processo de evoluo e tem revolucionado a forma como
criamos contedo e trocamos informaes. A Web
organizou as informaes na Internet por meio de
hipertexto e tornou a interao do usurio com a rede
mundial mais amigvel. Entretanto, esses contedos
publicados normalmente seguem regras apenas sintticas,
com objetivos de apresentao, no permitindo que se
consiga extrair semntica dos mesmos, nem lig-los, sem
que para isso seja feito um grande esforo de
implementao. Considerando isso, a Web atual pode ser
classificada ainda como sinttica e o processo de
interpretao dos contedos disponibilizados fica a cargo
dos usurios [1]. Diante dessa constatao, uma nova
viso da Web vem sendo buscada e tem sido denominada
de Web Semntica (Semantic Web) [2]. Os documentos na
Web Semntica possuiriam, alm das informaes que
descrevem a estrutura sinttica do seu contedo, outras
informaes que dariam o entendimento semntico a esse
contedo.
Como base ao desenvolvimento da Web Semntica,
surgiu o projeto Linked Data que delimita um conjunto de
prticas para publicar e conectar dados estruturados na
Web, com o intuito de criar um espao global de dados ou
uma Web de Dados [3]. Estas prticas so
fundamentadas em tecnologias Web, como HTTP
(Hypertext Transfer Protocol) e URI (Uniform Resource
Identier), e no uso do modelo RDF (Resource
Description Framework), com o objetivo de permitir a

II.

A ABORDAGEM SENSERDF

A sistemtica para disponibilizar dados na Web, segundo o


padro Linked Data, envolve um processo no qual os dados de
diferentes fontes so selecionados e depois convertidos
1

152

http://dados.gov.br/

ANAIS ELETRNICOS V ENUCOMP

para representaes em um modelo padro. Esta


converso segue o conjunto de princpios estabelecidos,
descritos resumidamente a seguir [4]: (i) o uso de URIs
para identificao dos objetos/recursos; (ii) a utilizao de
tecnologias, como RDF2 e SPARQL3, para descrio e
consulta a estes recursos, respectivamente e (iii) o
reaproveitamento de URIs, de forma que seja possvel
estabelecer ligaes entre os dados disponveis, com a
finalidade de possibilitar a navegao por meio destas
ligaes.
Um desses princpios defende o uso de RDF como
modelo de representao de dados estruturados na Web
[6]. O RDF um modelo de dados que descreve recursos
ou objetos, ou seja, entidades que possuem uma
identidade na web [6, 7]. Os recursos so descritos como
uma tripla (S, P, O), interpretada como S possui P com
valor O, onde S o sujeito da tripla, designado por um
recurso, P o predicado da afirmao, designado por um
recurso e O o objeto da afirmao, designado tambm
por um recurso ou por um literal [7, 8]. Com o RDF, o
uso de links e de vocabulrios recomendados, possvel
descrever significado sobre os objetos ou recursos. Mais
especificamente, um link RDF pode ser uma tripla RDF
em que o sujeito da tripla uma referncia URI no
namespace de um conjunto de dados, enquanto o
predicado e/ou objeto da tripla so referncias URI
apontando para o namespace de outro conjunto de dados.
Derreferenciando essas URIs, produzimos uma
descrio do recurso vinculado fornecido pelo servidor
remoto. Essa descrio ir geralmente conter um link
RDF adicional que aponta para outra URI que, por sua
vez, pode ser tambm derreferenciada. Isto como a
descrio de recursos individuais tecida dentro da Web
de Dados. Isto tambm como a Web de Dados pode ser
navegada usando um navegador Linked Data ou rastreado
por um rob de um engenho de busca.
Dentro desse panorama, o objetivo da SenseRDF
permitir converter dados, a princpio PDF e XML, em
modelo RDF, fazendo uso de informaes do domnio dos
dados e referenciando os termos dos vocabulrios
pertinentes a este domnio. A Figura 1 apresenta uma
viso geral da arquitetura da ferramenta SenseRDF.

http://www.w3.org/RDF/

http://www.w3.org/TR/rdf-sparql-query/

Extraode
Metadados

Extraode
PDF

Instncias

RDF

GeradorRDF
XML
Identificaode
Termos
Identificaode
Correspondncias
FOAF

Arquivo de
Correspondncias
SKOS

Ontologia

Res
DC

Repositrio de Vocabulrios

Figura 1. Arquitetura da Ferramenta SenseRDF

A ferramenta SenseRDF permite a converso de dados


em formato PDF e XML. Como forma de prover a
semntica do domnio a partir de terminologias
recomendadas (vocabulrios), a ferramenta mantm um
repositrio de vocabulrios, como, por exemplo, o FOAF 4
e o DC5, alm de ontologias de domnio que possam ser
usadas como referncia de termos.
Para a converso, inicialmente a ferramenta identifica
os metadados existentes na fonte de dados de entrada,
metadados estes que podem ser de arquivos PDF ou
XML. Um arquivo PDF contm metadados como Author
e Title, j o XML pode conter diversos tipos que
dependem do criador da fonte. Em seguida, a ferramenta
gera um alinhamento de correspondncias entre estes
metadados e os termos (conceitos) existentes nos
vocabulrios recomendados. O objetivo do alinhamento
explicitar relaes de similaridade entre os metadados da
fonte de dados e os termos dos vocabulrios existentes.
Para os objetivos da ferramenta, estamos buscando
relaes de igualdade entre esses termos, para identificar
o que pode ser referenciado dos vocabulrios existentes.
O alinhamento persistido e, a cada novo arquivo a ser
convertido, verificado se a correspondncia entre o
metadado e o termo do vocabulrio j existe. Caso no
exista, ela inserida neste arquivo de correspondncias.
Considerando arquivos PDF como fontes de dados,
exemplos de correspondncias de igualdade presentes no
alinhamento so:
Criador dc:creator
Autor res:author
Onde Criador e Autor so metadados de um arquivo
PDF, o prefixo dc referente ao vocabulrio DC (Dublin
Core) e o prefixo res referente a uma ontologia de
domnio sobre autores de publicaes.
Caso no haja nenhum termo de vocabulrio
equivalente a um metadado, este poder ser adicionado a
4
5

153

http://www.foaf-project.org/
http://dublincore.org/documents/dcmi-terms/

ANAIS ELETRNICOS V ENUCOMP

uma ontologia existente no repositrio. Caso esta


ontologia no exista, ela ser criada e armazenada no
repositrio para ser utilizada na gerao/atualizao de
futuros alinhamentos e nas converses subsequentes.
Depois de extrados os metadados, as instncias
(indivduos), no caso de arquivos XML, so tambm
extradas. A ferramenta, ento, gera um arquivo RDF que
contm os metadados referenciados por meio dos termos
dos vocabulrios e os objetos identificados provenientes
das instncias extradas.
Um resumo dos componentes que fazem parte da
arquitetura do SenseRDF apresentado a seguir:
Repositrio de Vocabulrios: repositrio onde se
encontram armazenados os vocabulrios e
ontologias de domnio que so utilizados pela
ferramenta. Caso seja necessrio, o usurio pode
adicionar uma ontologia ou vocabulrio
especfico de seu domnio.

Arquivo de Correspondncias: armazena o


alinhamento obtido no processo de matching
entre os metadados da fonte de dados e os termos
dos vocabulrios existentes.

Extrao de Metadados: extrai os metadados da


fonte de dados escolhida pelo usurio.

Extrao de Instncias: usado no caso do


usurio escolher uma fonte de dados XML. Este
mdulo extrai os dados (instncias ou
indivduos) existentes na fonte de dados.

Identificao de Correspondncias: gera ou


atualiza um alinhamento de correspondncias
entre os metadados da fonte de dados e os termos
existentes nos vocabulrios recomendados.

Identificao de Termo do Vocabulrio: usando


as correspondncias identificadas, este mdulo
referencia um metadado da fonte quanto ao seu
termo correspondente no momento da gerao do
RDF.

Gerao RDF: mdulo principal que recebe os


termos identificados nas correspondncias, os
metadados e as instncias da fonte de dados,
gerando assim um RDF final.

III.

A FERRAMENTA SENSERDF NA PRTICA

SenseRDF contempla todo o processo de converso para


arquivos PDF. A converso realizada sobre seus
metadados e um link para o arquivo mantido. Como
nem sempre um arquivo PDF criado definindo os seus
metadados (isso no uma prtica comum), a ferramenta
permite que o usurio defina um conjunto mnimo de
metadados para o arquivo em questo. O usurio pode
atualizar os mesmos tambm. Nesta seo, apresentamos
a ferramenta, de forma prtica, por meio de exemplos,
considerando arquivos PDF.
A Figura 2 apresenta a interface da SenseRDF que
mostra algumas de suas opes: (I) campo para
identificao do arquivo (pode ser um arquivo em disco
ou uma URL indicando o mesmo); (II) rea de exibio
dos metadados do arquivo, que podem ser alterados no
caso de arquivos PDF (como mencionado, nem sempre os
arquivos PDF originais possuem metadados); (III) opo
de gerao de RDF - o usurio pode escolher entre gerar o
RDF em sintaxe XML ou em N3 e (IV) rea onde ser
exibido o RDF gerado.

A ferramenta SenseRDF foi implementada em


linguagem Java, utilizando as APIs Jena6, JDOM7, Itext8,
Alignment API9 e OWL API10. A primeira verso da
6

http://jena.apache.org/
http://www.jdom.org/
8
http://api.itextpdf.com/
9
http://alignapi.gforge.inria.fr/align.html
10
http://owlapi.sourceforge.net/
7

154

ANAIS ELETRNICOS V ENUCOMP

Figura 2. Interface da SenseRDF com algumas Opes

Dessa forma, quando um alinhamento gerado ou


atualizado, obtemos correspondncias com diferentes
nveis de similaridade. Isso reportado atravs de uma
medida de confiana. Neste exemplo, temos uma
correspondncia com medida igual a 1.0 que indica, com
preciso, uma equivalncia entre o metadado e o termo. A
medida 0.86 indica um grau de similaridade muito alto.
Realizando testes, percebemos que asjk correspondncias
com medida acima de 0.8 indicam equivalncia entre os
termos. Utilizamos ento este threshold, para limiar a
identificao das correspondncias de equivalncia.
Assim, nesta verso, aquelas correspondncias com

Como a ferramenta precisa das correspondncias entre


os metadados e os termos dos vocabulrios, antes de gerar
o RDF, ela cria ou atualiza o alinhamento existente.
Para isso, ela usa um processo de matching que faz
uma anlise lingustica [9] e verifica a proximidade dos
nomes dos metadados do arquivo PDF e os nomes dos
termos dos vocabulrios (diferena de apenas alguns
caracteres, anlise de possveis radicais, etc). O
alinhamento gerado 1:1 e indica um grau de
similaridade (medida de confiana) entre os elementos
associados. Um fragmento do alinhamento de
correspondncias mostrado como exemplo na Figura 3.

Figura 3. Fragmento do Alinhamento obtido entre os Metadados e os Construtores dos Vocabulrios.

155

ANAIS ELETRNICOS V ENUCOMP

threshold acima de 0.8 so definidas como equivalncia


entre o metadado e o termo.
Caso algum metadado no possua termo equivalente, a
ferramenta solicita do usurio que selecione nos
vocabulrios existentes algum termo que possa ser usado
(Figura 4). Se no existir um compatvel, a ferramenta
gera este novo termo adicionando o mesmo a uma
ontologia no repositrio. Para isso, o usurio marca que
no encontrou nenhum termo correspondente ao
metadado exibido. Este novo termo ser adicionado a uma
ontologia othersTerms, que incorpora os termos que
no pertencem aos vocabulrios existentes. O usurio
indica a que superclasse deve ser vinculada este novo
termo ou conceito (subclasse).

Figura 5. Exemplo de RDF gerado em Sintaxe XML.

Figura 4. Seleo de Termos de Vocabulrios para Correspondncia com


Metadados.

Para gerao do RDF, a ferramenta l o alinhamento


de correspondncias, para que sejam identificados os
termos dos metadados da fonte. Com os metadados e
termos de referncia em mos, de acordo com a opo de
sintaxe RDF escolhida pelo usurio (RDF/XML ou N3), a
ferramenta gera o RDF final, como mostrado na Figura 5
(em XML) e na Figura 6 (em N3).

Figura 6. Exemplo de RDF Gerado em sintaxe N3.

IV.

TRABALHOS RELACIONADOS

Para a publicao de dados RDF, podem ser usadas


ferramentas especficas de converso. Atualmente,
existem ferramentas para converso de planilhas, arquivos
CSV, dados relacionais e outros documentos [10]. Um
exemplo a ferramenta ConvertToRDF [11],
desenvolvida pela MINDSWAP (Maryland Information
and Network Dynamics Lab Semantic Web Agents
Project) que tem como principal objetivo converter
arquivos em formato XLS para RDF. A aplicao permite
ao usurio executar o mapeamento atravs de uma
ontologia prpria da ferramenta, mas tambm permite o
uso de outras ontologias para utilizao nos
mapeamentos. A ferramenta demonstra ser limitada na
156

ANAIS ELETRNICOS V ENUCOMP

automao, uma vez que exige que o usurio faa todo o


mapeamento manualmente, sem possuir um repositrio
que armazene estes mapeamentos manuais, para que
possa reutiliz-los mais tarde. Outro exemplo de
ferramenta A TopBraid Composer [5] que oferece
editores grficos visuais para RDF e diagramas de classe,
incluindo a capacidade de gerar consultas SPARQL. Ela
tambm permite a converso automtica de XML, XSD,
Excel, UML e outras fontes de dados.
H tambm o DBpedia [12], um projeto colaborativo
que extrai dados do Wikipedia e os converte em dados
estruturados usando o padro RDF. O DBpedia est
disponvel, permitindo aos usurios utilizar e colaborar
com o enriquecimento de seu repositrio de datasets. A
TripFS [13] uma ferramenta que representa os diretrios
e arquivos como recursos RDF. TripFS extrai metadados
e cria links para outros conjuntos de dados e fornece um
end-point SPARQL que permite aos clientes executar
consultas sobre o sistema de arquivo inteiro. A Bio2RDF
por outro lado converte documentos da rea de
biomedicina [14]. Visa tambm criar uma nuvem de
dados sobre medicina. Lebo e Williams [15] apresentam
uma abordagem para converter os dados CSV em Padro
Linked Data, de forma que permita melhoramentos
incrementais. Aplicando esta abordagem, eles foram
responsveis por converter uma grande quantidade de
dados governamentais dos EUA em RDF.
Apesar dos esforos e das ferramentas existentes, ainda
existe uma demanda no atendida por servios que
facilitem o processo de converso de dados,
especialmente aqueles em formato PDF e XML. Em
geral, as ferramentas se concentram no aspecto sinttico
da gerao RDF, enquanto que a questo semntica,
referente ao uso de anotaes ou referncias a
mecanismos de controle terminolgico (vocabulrios), se
torna incompleta. Diante disso, como forma de facilitar a
converso de dados no contexto brasileiro e buscando
desenvolver uma soluo que faa uso da semntica do
domnio dos dados e dos padres existentes, a ferramenta
SenseRDF foi especificada e vem sendo desenvolvida.
Analisando nosso trabalho e comparando com os
demais, destacamos que, ao converter os metadados PDF
para RDF, nossa ferramenta, com o auxlio do usurio,
identifica termos dos vocabulrios existentes no
repositrio ou pode tambm criar novos termos, caso faa
sentido ao domnio dos dados e no exista uma ontologia
ainda para este domnio. Esta nova ontologia persistida
no repositrio e ser reutilizada em futuras converses de
arquivos que pertenam quele domnio. O conjunto de
ontologias e vocabulrios existentes no repositrio,
juntamente com as correspondncias j identificadas,
automatiza futuras converses e evita que o usurio tenha
que fazer as correspondncias entre metadados e termos
de vocabulrios manualmente. Assim, novas converses

sero mais rpidas e precisas. Nossa ferramenta tambm


se diferencia por estar sendo desenvolvida de modo a
permitir a converso de dados disponibilizados pelo
governo brasileiro em seu portal.
V.

CONSIDERAES E TRABALHOS
FUTUROS

Este trabalho apresentou a ferramenta de converso de


dados denominada SenseRDF. A SenseRDF prov um
ambiente intuitivo e transparente onde o usurio escolhe
formatos de fontes de dados que deseja converter para o
modelo RDF segundo o padro Linked Data. Para isso, a
ferramenta utiliza um processo de matching que gera um
alinhamento de correspondncias entre os metadados da
fonte e os termos existentes nos vocabulrios do domnio
dos dados. Utilizando estas correspondncias, a
SenseRDF gera o RDF, referenciando os termos
identificados. O resultado pode ser obtido tanto em
RDF/XML quanto no formato N3.
Nesta primeira verso, a ferramenta trabalha com
dados no formato PDF, gerando o modelo RDF apenas
com seus metadados. Encontra-se em andamento a
implementao da opo de arquivos XML, que ir gerar
o modelo RDF tanto para os metadados identificados
quanto para as instncias (indivduos). Como trabalho
futuro, a ferramenta ser estendida para permitir a
identificao de links entre dois conjuntos de dados RDF
diferentes.
REFERNCIAS
[1] Costa A., Yamate F. 2009. Semantic Lattes: uma ferramenta de
consulta baseada em ontologias. Trabalho de Graduao em
Engenharia de Computao - Escola Politcnica. IME/USP.

[2] Berners-Lee T., Hendler J., Lassilia O. 2001. The semantic web.
Scientific American. 284(5):3444, Mai 2001.

[3] Bizer C., Heath T., Berners-Lee T. 2009. Linked data - the story so
far. Int. J. Semantic Web Inf. Syst. 5(3):122, 2009.

[4] Heath, T., Bizer, C. 2011. Linked Data: Evolving the Web into a
Global Data Space (1st edition). Synthesis Lectures on the
Semantic Web: Theory and Technology, 1:1, 1-136. Morgan &
Claypool, 2011.

[5] TopBraid Documentation. Available at


http://www.topquadrant.com/products/TB_Composer.html.
[6] Klyne, G., Carroll, J. J., McBride, B. 2004. Resource description
framework (RDF): Concepts and abstract syntax. DOI=
http://www.w3.org/TR/rdf-concepts/

[7] Lscio, B., Cunha, D.; Souza, D. 2011. Linked Data: da Web de
Documentos para a Web de Dados. Escola Regional Cear,
Maranho e Piau 2011. Teresina: ERCEMAPI. 2011, v. 1, p. 7999.

[8] Travassos W., Silva A., Frana N., Dantas R., Souza D. 2011.
RDF, RDF(S) e OWL: Uma Anlise Comparativa Visando Atingir
o Padro Linked Data. In: Anais Cincias Exatas e da Terra do VI
Congresso de Pesquisa e Inovao da Rede Norte e Nordeste de
Educao Tecnolgica CONNEPI. Pg. 413-423. Natal, RN.

157

ANAIS ELETRNICOS V ENUCOMP


[9] Euzenat J., 2004. An API for ontology alignment. Proceedings of

of some research projects at UFPE and at the Federal Institute of


Education, Science and Technology of Paraba (IFPB), Brazil.
His main research interests are concerned with Semantic Web,
Data Quality and Data Conversion.

the International Semantic Web Conference (ISWC), pages 698


712, 2004.
[10] Auer, S., Dietzold, S., Lehmann, J., Hellmann, S., and Aumueller,
D. 2009 Triplify: Light-weight linked data publication from
relational databases. In Quemada, J., Len, G., Maarek, Y. S., and
Nejdl, W., editors, Proceedings of the 18th international
Conference on World Wide Web, WWW 2009, Madrid, Spain,
April 20-24, 2009, pages 621630. ACM.
[11] ConvertertoRDF Documentation. Available at
http://www.w3.org/wiki/ConverterToRdf.
[12] Kobilarov G., Bizer C., Auer S., Lehmann J. 2009. DBpedia - A
Linked Data Hub and Data Source for Web and Enterprise
Applications. Web Semantics Science Services and Agents on the
World Wide Web. Volume: 7, Issue: 3, Publisher: Elsevier, Pages:
154-165.

[13] Schandl, B., & Popitsch, N. 2010. Lifting File Systems into the
Linked Data Cloud with TripFS. 3 International Workshop on
Linked Data on the Web, Raleigh, North Carolina, USA. DOI=
http://eprints.cs.univie.ac.at/69/

[14] Bio2RDF Documentation. Available at http://bio2rdf.org/


[15] Ding, L., Lebo, T., Erickson, J. S., DiFranzo, D., Williams, G. T.,
Li, X., Michaelis, J., Graves, A., Zheng, J. G., Shangguan, Z.,
Flores, J., McGuinness, D. L., and Hendler, J. 2010. TWC LOGD:
A Portal for Linked Open Government Data Ecosystems. In JWS
special issue on semantic web challenge10.

Ayrton Ndgel is an undergraduate student at


the Federal Institute of Education, Science and
Technology of Paraba (IFPB), Brazil. He is
also a member of a research project at IFPB.
His main research interests regard Semantic
Web and Linked Data.
Naftali Frana is an undergraduate student at
the Federal Institute of Education, Science and
Technology of Paraba (IFPB), Brazil. He is
also a member of a research project at IFPB.
His main research interests regard Semantic
Web and Linked Data.
Bruno Paulino is an undergraduate student at
the Federal Institute of Education, Science and
Technology of Paraba (IFPB), Brazil. He is
also a member of a research project at IFPB.
His main research interests regard Semantic
Web and Linked Data.
Damires Souza obtained her PhD (doctorate)
in Computer Science from the Federal
University of Pernambuco (UFPE), Brazil. She
is currently an Associate Professor at the
Federal Institute of Education, Science and
Technology of Paraiba (IFPB), Brazil. She is
also the coordinator of some research projects
at IFPB. Her main research interests are concerned with the
areas of databases and semantic web.
Walter Travassos is a master student in
Computer Science at the Federal University of
Pernambuco (UFPE), Brazil. He is a member
158

ANAIS ELETRNICOS V ENUCOMP

Utilizao de Realidade Aumentada e Dispositivos


Mveis para Auxiliar na Manuteno de Instrumentos
de Medio de Barragens
T.A.Nardi; F. F. F. Peres
Abstract This paper presents a prototype for a solution using
Augmented Reality (AR) and mobile devices technologies to resolve
a problem occurred in Itaipu, where new employers has no
knowledge about how to do maintenance in old measuring
instruments. The goal is present the system that was proposed, and
show the reported difficulties found in development by the tests in
laboratory,and defining a proposal of how to resolve this
difficulties with the help of knowhow from the technical engineers
ifItaipu.

formas de realizar a identificao de objetos reais (tracker) por


meio desta ferramenta. Por fim a seo VI e VII apresentam
respectivamente as informaes sobre o sistema proposto
atravs da identificao das principais consideraes da
construo do mesmo e dos principais aspectos de arquitetura
definidos para construo do mesmo e os resultados obtidos
at o momento. A seoVIII apresenta as concluses obtidas.
II. REALIDADE AUMENTADA

KeywordsAugmented Reality, Mobile Devices, Measuring


Instruments.

I. INTRODUO

M canteiros de obras e construes de barragens de


concreto e enrocamento existe uma preocupao constante
com o estado do solo, de sua fundao principalmente por
questes de segurana. Para isto a engenharia utiliza de
diversos recursos para realizar monitoramento constante do
solo atravs de instrumentos que medem vibraes,
deslocamentos, densidade, etc[1]. Em Itaipu, funcionrios
necessitam realizar manutenes em diversos instrumentos de
medionecessitando de conhecimento para tal. Estas
manutenes so, muitas vezes, com periodicidade longa e
podem envolver a troca de peas caras, sendo que seu
manuseio correto muito importante para no danificar a pea
e encarecer a manuteno. Para diminuir tal problema Itaipu,
atravs da gesto de conhecimento, procura formas para
disseminaro conhecimento aos novos funcionrios.
Este artigo apresenta estudos realizados sobre a tecnologia
de realidade aumentada e dispositivos mveispara elaborao
de sistemas para auxiliar a manuteno de extensmetros de
haste mltipla, um dos instrumentos utilizados para medio
em barragens.
Sendo assim este artigo apresenta na seo II, informaes
sobre a tecnologia de realidade aumentada, informando seus
principais elementos e aplicaes. A seo III apresenta
informaes de uso dos extensmetros de haste mltipla, em
Itaipu, alvo do estudo de casos deste artigo. A seguinte (seo
IV) diz a respeito da construo de sistemas de realidade
aumentada em dispositivos mveis, trazendo informaes
sobreo Android e sobre sua arquitetura em camadas para
construo de aplicativos. A seo V apresenta informaes
sobre o ncleo da SDK QualcommVuforia, ferramenta
escolhida para implementar este sistema, e sobre as possveis

T. A.Nardi, Acadmico da Universidade Estadual do Oeste do Paran


(Unioeste), Foz do Iguau, Paran.
F. F. F. Peres, Docente da Universidade Estadual do Oeste do Paran
(Unioeste), Foz do Iguau, Paran.

A realidade aumentadapode ser entendida como uma


tecnologia que realiza o meio campo entre a realidade virtual e
a telepresena (totalmente real). Para considerarmos um
sistema como sendo de realidade aumentada o mesmo deve
conter trs elementos chave: combinar real e virtual, ser
interativo em tempo real e deve ser registrado em 3D [2].
As principais reas potenciais para criao de aplicaes
usando esta tecnologia segundo Azuma so [2]:
Medicina:suporte para visualizao mdica em geral na
sala de cirurgia. Realidade aumentada pode ser usada para
reduzir o tamanho das incises mdicas geradas em
pequenas cirurgias, atravs do mapeamento 3D dos
rgos e partes afetadas do paciente;
Manufatura e reparo:teis em atividades de fabricao
de peas e materiais, alm de reparo nos mesmos atravs
da criao de tutoriais interativos.Esta a rea onde
aplica-se a realidade aumentada neste artigo;
Anotaes e Visualizao: compartilha informaes em
ambientes pblicos, por exemplo,um sistema de realidade
aumentada pode apresentar informaes sobre livros de
uma biblioteca;
Planejamento de trajetria de Robs: existem casos no
qual existem atrasos considerveis de tempos e consumo
de recursos no controle de robs a distncia. Neste caso
utiliza-se a realidade aumentada para realizar simulaes
e analisar o ambiente antes de se efetuar o comando. Por
exemplo: robs em expedies espaciais no planeta
Marte;
Entretenimento: exemplo clssico de aplicao da
realidade aumentada. Como grande ponto de estimulo
para o seu uso tem-se o fato de que a indstria de cinema
considera em determinados casos mais barato construir
objetos de cenrio em 3D e mistura-los a uma cena real do
que construir de fato o objeto;
Aviao Militar: arealidade aumentada auxilia o piloto
em clculos de trajetrias de msseis e colises.

159

ANAIS ELETRNICOS V ENUCOMP


A. Principais elementos de um sistema de RA
A construo de sistemas de realidade aumentada requer trs
principais subsistemas. O primeiro subsistema o gerador de
cenas, responsvel por misturar elementos reais e virtuais e
gerar a cena de realidade aumentada. O segundo subsistema
o display, estes por sua vez dividido em display tico e
display de vdeo. A diferena destes displays est no fato de
que atravs do display tico o usurio pode ver o mundo real
diretamente e no display de vdeo o usurio v o mundo
atravs de um monitor. E por fim, o rastreamento e deteco,
tambm denominados trackers, so utilizados pelos sistemas
de realidade aumentada paramapear posies no mundo real,
definindo informaes como ngulo, campo de viso, etc [3].
III. EXTENSMETRO DE HASTE MLTIPLA
Extensmetros de haste so instrumentos utilizados pela
engenharia para auxiliar de forma geral em medies do solo
em fundao de barragens. So compostos por uma cabea que
fixada sob a superfcie e hastes metlicas de diversos
comprimentos chumbadas na rocha. Atravs da cabea medese a tenso aplicada pelo solo haste, possibilitando a
medio de deslocamentos. Extensmetros podem ser
demedio manual ou automtica. Quando automtica, sua
cabea composta por um conjunto de transdutores (um para
cada haste), que so dispositivos que convertem os sinais da
tenso para o formato digital, permitindo o armazenamento em
intervalos de tempos.
Em Itaipu, existem 146extensmetros instalados em sua
fundao, barragens de concreto e enrocamento, auxiliando no
monitoramento de deslocamentos verticais (medio de
recalques do solo) e deslocamentos horizontais (cisalhantes).
O sistema proposto pelo artigo pretende ser usado por
profissionais
para
auxiliar
na
manuteno
destesextensmetros, ajudando no processo de substituio
detransdutores.
Segundo levantado por Moreira [7], para realizao da
manuteno nos extensmetros de Itaipu, os tcnicos realizam
os seguintes passos:
1. Remover a tampa protetora;
2. Realizar leitura manual e automtica do extensmetro para
servir como base para comparao com a leitura realizada
no final da troca do transdutor;
3. Retirar circulo protetor;
4. Retirar o parafuso lateral que regula a altura utilizando uma
chave Allen de 5,5mm (7/32);
5. Retirar a porta de suporte do Transdutor, utilizando uma
chave de boca;
6. Rotacionar o transdutor para ambos os lados
simultaneamente at encontrar o ponto de encaixe. Obs.: o
transdutor deve estar travado neste momento e caso o
mesmo no esteja travado, pode romper a corda vibrante
que realiza as medies no extensmetro;
7. Remover o cabo que contecta o transdutor;
8. Remover o transdutor;
9. Inserir novo transdutor no local do antigo.Obs:deve-se
remover o lacre do novo Transdutor antes da instalao;

10. Travar transdutor na base, rotacionando em sentido


horrio;
11. Passar o cabo pelo anel protetor da base;
12. Travar a porca de suporte;
13. Regular a altura;
14. Realocar parte protetora;
15. Realizar nova leitura e comparar com a anterior para
verificar a calibragem do equipamento.
IV. DESENVOLVIMENTO DE SISTEMAS DE RAEMDISPOSITIVOS
MVEIS

Para que sistemas de realidade aumentada possam ser


construdos necessrio hardware capaz de capturar: vdeo,
realizar processamento de dados e que possua alguma forma
de exibir informaes, como um display. Azuma[2] apresenta
sistemas de realidade aumentada concebidos sob Head
mounted Displays (HMDs), por serem na poca os
dispositivos que preenchiam estes requisitos e permitiam a
mobilidade requerida pelos tecnologia. Atualmente os
celulares evoluram de forma que se tornou possvel a
construo de sistemas de realidade aumentada nos mesmos.
Atualmente existem basicamente quatro plataformas que
dominam o mercado de dispositivos mveis: Android, Black
Barry, Symbian OS e IOS. O artigo foca na construo de
aplicativos para Android, que est entre as plataformas mais
populares atuais e possui desenvolvimento livre de custo com
licenas[3].
Viso geral da Arquitetura Android
Android um Sistema Operacional (SO) desenvolvido pelo
Google. organizado em camadas (figura 1). Cada camada
agrupa um conjunto de programas com objetivos e
funcionalidades em comum. Estas camadas so organizadas
como uma pilha e sua base o Kernel. Para construo deste
Kernel baseou-se na verso 2.6 do Kernel do Linux. O
conjunto de programas do prximo nvel contm as bibliotecas
bsicas do SO (exemplo: gravao e reproduo de udio,
acelerao tridimensional, vdeo, etc.). A prxima camada
contm frameworks de aplicaes.Inclui programas que
gerenciam funes bsicas do telefone e do suporte
aplicaes de forma geral. E por fim, est a camada de
aplicativos, onde esto todos os aplicativos que o usurio final
pode acessar [6].
Estrutura bsica de aplicativos
Os aplicativos construdos para Android devem levar em
considerao quatro tipos bsicos de estruturas: Atividades,
toda tela que a aplicao exibe ao usurio; Objetivos, eventos
disparados dentro da aplicao para troca de Ativiades; caso o
programa tenha tenha alguma estrutura de Servio associada, o
mesmo pode continuar sendo executado mesmo tendo sua
Atividade fechada pelo usurio; por fim, temos o Provedor de
Contedo, responsvel por compartilhamento de contedo
entre as aplicaes.

160

ANAIS ELETRNICOS V ENUCOMP


ImageTracker: Cada novo marcador deste tipo ranqueado
de zero a cinco pontos pela ferramenta, dependendo da
complexidade dos elementos contidos na imagem. O website
de ferramenta destaca uma nota de instruo informando que
no aconselhvel o uso de imagens que apresentam
ranqueamento inferior a trs. Para uma imagem ser
considerada boa ela deve possuir: alto nmero de elementos ao
longo de toda a imagem e bem distribudos (sem espaos em
branco), forte contraste entre os mesmos e os padres contidos
na imagem devem ser variados. A figura 2 apresenta uma
imagem em sua verso original e sua verso aps o
mapeamento da ferramenta, apresentando um ranking cinco.

Figura1. Organizao da pilha de programas do SO Android.

V. QUALCOMMVUFORIA
A Qualcomm um instituto de pesquisa que atua
desenvolvendo solues paradiversos tipos de tecnologias
voltadas a informao. [4]. Dentre suas reas de atuao est
a RA, atravs do projeto denominado Vuforia. Esta sesso
dedica-se em apresentar os principais aspectos desta SDK
disponibilizada pela Qualcomm.
A. Elementos do ncleo Vuforia
Este tpico apresenta todos os elementos que caracterizam o
ncleo de elementos da Vuforia [4]:
Cmera: Comunica com hardware de cmera e assegura
que as imagens capturadas foram transferidas eficientemente
ao tracker. O desenvolvedor apenas tem controle de informar
quando iniciar e quando pausar a captura de vdeo.
Image Converter: Converte a imagem obtida pela cmera
em um formato padronizado que seja compatvel com o render
utilizado.
Tracker: Algoritmos de viso computacional que detectam
objetos do mundo real analisando os frames da cmera. Podem
ser dos tipos Target, Markers ou Buttons.
Vdeo Background Render:Renderiza a imagem da
cmera.
Cdigo da Aplicao: Deve instanciar e inicializar todos os
elementos bsicos do ncleo (descritos nesta sesso) alm de
manipular os marcadores, a lgica da aplicao e atualizar o
render da camada grfica (virtual) do sistema.
Target Resources: Criados utilizando uma plataforma
online disponvel no site da Qualcomm. So estruturas
utilizadas para representar os marcadores dentro do sistema.
Trackables: Classe base que representa todo objeto do
mundo real que a Vuforia pode rastrear. Todo marcador
suportado pela SDK origina desta classe.
B. Tipos de Trackers
A SDK Vuforia permite desenvolver sistemas de realidade
aumentada utilizando trs tipos de marcadores: ImageTargets,
Frame Markers e Buttons. O primeiro tipo de tracker
reconhece qualquer imagem fornecida ao mesmo. O Segundo
tipo reconhece marcadores fiduciais com cdigos e o terceiro
reconhece formas dentro de ImageTargets como botes de
interao virtual com o usurio. A seguir apresentamos cada
tipo de tracker.

(a): Imagem original

(b): Resultado do algoritmo para gerar o ImageTracker da Vuforia.


Figura 2.Rankeamento da vufria com nvel 5. Imagem apresenta todas as
caractersticas consideradas fortes para reconhecimento pela ferramenta.
Fonte: Qualcomm [8].

FrameMarker:Este tipo de tracker no gerado online. A


SDK disponibiliza 512 padres diferentes de marcadores
organizados de 0 511. A Figura 3 apresenta o padro de
design de todos os FrameMarkets, o ID deste exemplo 0. A
parte de cor laranjada da figura representa informaes que
podem ser customizadas no marcador e todo o resto deve ter o
mesmo formato do original para que possa ser reconhecido.
Buttons:Desenho de botes que podem ser adicionados em
ImageTrackers e reconhecidos individualmente pela SDK.

161

ANAIS ELETRNICOS V ENUCOMP


criada uma biblioteca compartilhada contento todas as
funcionalidades necessrias utilizadas pelo sistema. Estas
bibliotecas so carregadas na aplicao e acessadas via Java
Native Interface (JNI). O JNI um padro de programao
que permite com que a mquina virtual do Java (JVM)
manipule cdigos nativos de outros sistemas [5]. Para criar
estas bibliotecas compartilhadas est sendo utilizado o
AndroidNativeDevelopment Kit (NDK)[3], que fornece um
conjunto de ferramentas para compilao independentes de
plataforma (Windows, Linux, etc).

Figura 3. Exemplo de FrameMarker padro da ferramenta QualcommVuforia.


Fonte [8].

VI. SISTEMA PROPOSTO


Esta sesso dedica-se em apresentar o sistema proposto para
auxiliar na manuteno do instrumento de medio
Extensmetro de Haste Mltipla de Itaipu e suas principais
caractersticas em termos de tecnologia utilizada para
construo.
Princpios da construo do sistema
Para que este sistema possa ser utilizado de fato pelo tcnico
que realiza manuteno em extensmetros ele deve idealmente
levar os seguintes fatores em considerao em sua construo:
Tutorial passo a passo que auxilia no processo de
manuteno do extensmetro;
O extensmetro deve ser reconhecido in-situ;
O extensmentro deve ser reconhecido preferencialmente
sem adio de marcadores fiduciais;
Como visto anteriormente, o cdigo da aplicao de RA
deve ter 3 preocupaes bsicas: manipular os marcadores,
lgica particular da aplicao e manipular o render grfico. Os
tpicos a seguir descrevem a soluo considerada para
desenvolver cada parte do trabalho.

Descrio das configuraes de trabalho com a OpenGl ES


OpenGL ES a verso da OpenGL (API multiplataforma
padro da indstria de computao grfica), especializada em
aplicaes embarcadas (EmbeddedSystems). Ela fornece
funes na linguagem C/C++ e para sua utilizao no sistema
proposto foi adotada a mesma estratgia proposta para uso dos
elementos da QualcommVuforia, que a criao de uma
biblioteca compartilhada atravs da Android NDK, utilizando
JNI como padro de comunicao.
Objetos 3D:Os objetos 3D carregados no sistema (tais como
setas indicadoras, ferramentas e o prprio extensometro 3D),
so provenientes das ferramentas Blender 3D e SolidWorks. A
biblioteca OpenGL gerada para realizar animaes erenderizar
os grficos da cena do sistema utilizam Array com
coordenadas para representar cada objeto, estas coordenadas
representam os vrtices, as normais, a coordenada das texturas
e os ndices do objeto.
Construo dos marcadores
Para construo de marcadores foi optado inicialmente
pelos ImageTargets. A figura 4 apresenta o resultado do
processo de deteco dos marcadores ImageTargets gerados
pela ferramenta da Vuforia para deteco do extensmetro
exemplo utilizado na aplicao. Para ambas as imagens o
ranking do sistema foi zero.

Descrio do ambiente de trabalho para desenvolvimento de


aplicaes Android
Para desenvolvimento de sistemas para a plataforma
Android utilizado por padro a linguagem de programao
Java. Para construo deste sistema foi configurado o
ambiente de desenvolvimento utilizando a ferramenta Eclipse,
onde foi instalado oAndroidDevelopment Tools (ADT), que
permite configurao de mquinas virtuais de teste e gerao
de aplicativos para Android e instalado o Android SDK, para
suporte s funcionalidades bsicas da plataforma. Para testes
unitrios na criao do sistema est sendo utilizado um
dispositivo Galaxy Y Samsung, com Android 2.3.6 instalado.
A API disponibilizada para programaoAndroid
contabilizada em nveis conforme atualizao da mesma. Para
a construo deste sistema est sendo utilizada como base a
API nvel 10, suportada porAndroid 2.3 e superiores.
Descrio das configuraes para trabalho com a SDK
QualcommVuforia
A SDK da Vuforia escrita nas linguagens C/C++. Para ter
acesso as suas funes na aplicao escrita em Java est sendo
162

(a)

ANAIS ELETRNICOS V ENUCOMP

(b)
Figura 4.Imagens (a) superior e (b) lateral da cabea do extensmetro de
haste mltipla utilizado para realizar os testes.
Figura 5.Screenshoot da aplicao rodando em sistema Android,
reconhecendo o marcador FrameMarker.

VII. RESULTADOS OBTIDOS


O sistema est em fase final de desenvolvimento, onde
esto sendo finalizadas animaes 3D e implementados os
passos do tutorial de acordo com levantado por Moreira [7]
junto
a
especializas.Os
marcadores
estiloImageTargetsutilizados na construo de um prottipo
inicial de teste da SDK apresentou baixo desempenho em
testes de uso em laboratrio devido a simplicidade das
imagens (o algoritmo da Vuforia reconhece melhor imagens
complexas) e devido ao fato de que utilizar imagens slidas
(fotografia 2D) limitam fortemente a faixa de angulao na
qual o dispositivos de vdeo reconhece o objeto 3D. Estes
problemas aconteceram por que a tecnologia ImageTargets da
QualcommVuforia

fortemente
voltada
para
o
reconhecimento do ambiente via marcadores, ou seja,
necessrio que o ambiente seja modificado com a adio de
marcadores para que o mesmo possua desempenho relevante.
Para correo deste problema e dar continuidade ao
desenvolvimento do sistema, optou-se por utilizar os
marcadores do estilo Frame Markers. Tal deciso ir
introduzir os benefcios de apresentar melhor desempenho em
laboratrio e consequentemente in-situ (ambientes externos ao
laboratrio possuem maior nmero de condies adversas
como, por exemplo, iluminao e clima, que dificultam a
deteco da imagem) e ir introduzir como ponto negativo a
necessidade de adicionar ao extensmetro um marcador
fiducial padronizado para reconhecimento pelo sistema. A
figura 5 apresenta telas de uso do sistema em testes de
laboratrio.

VIII. CONCLUSO
Os esforos realizados para o desenvolvimento do trabalho
at ento identificaram que necessrio um entendimento
maior sobre a diferena de uso pelo tcnico de Itaipudo
sistemas utilizandomarcadores fiduciais e os que no
necessitam.
Foi descoberto que a SDK da QualcommVuforia em sua atual
verso no suporta reconhecimento sem marcadores,
denominados pelo mercado marklesstracking, que permitem
reconhecimento de objetos 3D do mundo real. Durante todo o
processo tentamos utiliza a soluo ImageTargets como
tecnologia para substituir o uso de marcadoresmarcadores, o
que resultou em um sistema que no reconhecia o aparelho,
obrigando a mudana para FrameMarkers, que so marcadores
fiduciais tradicionais.
Como proposta para evoluo est sendo proposto o estudo
da diferena das abordagens, algoritmos envolvidos e casos de
uso.
O resultado final tambm possibilitou constatar que a
ferramenta QualcommVuforia no implementa algoritmos de
ocluso de objetos, fazendo com que no efeito final o objeto
3D sempre aparea sob a imagem real, neste caso, prope-se o
estudo de algoritmos de ocluso para adio futura na
ferramenta.
A maior dificuldade encontrada durante a produo foi
definir de forma sistemtica a posio relativa do objeto 3D
com o objeto real. Atravs da Vuforia o programador apenas
tem acesso a posio no espao 3D do marcador e pode
posicionar objetos 3D partindo desta posio relativa, no
levando em considerao particularidades do extensmetro.
Neste caso foi posicionado atravs de tentativa e erro os
objetos no espao 3D at se alcanar uma posio relativa
aceitvel pelo usurio. Esta questo pode ser foco de
desenvolvimento de novas tecnologias pois uma demanda de
incremento que se fosse implementada pouparia grande
esforo no desenvolvimento (cerca de 30% do tempo gasto no

163

ANAIS ELETRNICOS V ENUCOMP


desenvolvimento da ferramenta foi sob o posicionamento de
forma aceitvel pelo usurio final).
REFERNCIAS
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]

J. F. A. Silveira,Instrumentao e Segurana de Barragens de Terra e


Enrocamento,Oficina de Textos, 2006.
R. Azuma, A Survey of Augmented Reality, Teleoperators and
Virtual Enviroments, Vol. 6, 1997.
Google,Android Website,Disponvel em: www.android.com, 2012.
Qualcomm,
QualcommVuforia
Website,Disponvel
em:
www.qdev.net.
Sun Microsys, Java Website, Disponvel em: www.java.com.
J. Strickland. A Arquitetura do Android. Disponvel em:
http://informatica.hsw.uol.com.br/google-phone2.htm,.2012.
T. Moreira, Auxlio na Manuteno de um Extensmetro Utilizando
Realidade Aumentada,Unioeste, 2011.
Qualcomm,
QualcommVuforia
Website,
Disponvel
em:
https://ar.qualcomm.at/qdevnet/developer_guide/Target%20Manageme
nt%20System, 2012.

164

ANAIS ELETRNICOS V ENUCOMP

QoSTVApp:Uma Aplicao Semntica para o


SBTVD
M. S. Couto, V. L. da Silva, C. M F. A. Ribeiro
Abstract The warranty of a certain level of Quality of
Service (QoS) is a key requirement in many interactive
applications used in Brazilian Digital TV System (SBTVD). This
study aims to analyze the QoS requirements, and for this, we
created a semantic model for knowledge representation through
an ontology covering the various elements that can impact on the
quality levels set by interactive applications. The created model
focuses on SBTVD, and we believe it can help in the automated
reasoning on the feasibility of tasks and interactive applications,
considering the work on different technological circumstances.
Keywords Digital Television, Interaction, Quality of Service.

I. INTRODUO

modelo da TV Digital oferece aos usurios a


oportunidade de novas experincias relacionadas troca
de informaes, principalmente por meio da
interatividade, o que possibilita o desenvolvimento de novos
aplicativos e servios.
De acordo com [1], para prover comunicao atravs do
canal de retorno necessria a escolha de algum meio de
transmisso (fibra ptica, rdio, satlite entre outros),
considerando as caractersticas especficas de cada tecnologia
e parmetros limitantes do canal de comunicao (vazo,
atraso e perda de pacotes). A seleo desses parmetros em
detrimento de outros, pode variar de um lado pela aplicao e,
por outro lado, pelas tecnologias de comunicao disponveis
e seus fatores limitantes.
No Brasil, dada as suas caractersticas de disperso
geogrfica e assimetria na oferta de servios de
telecomunicao, fundamental avaliar previamente o nvel
de interatividade que uma determinada aplicao pode
proporcionar aos seus usurios. Concebido dentro de uma
poltica nacional de oferta de servios ao cidado, o Sistema
Brasileiro de TV Digital (SBTVD) precisa disponibilizar
meios de validao prvia da exequibilidade de aplicaes
interativas enquanto instrumento essencial de polticas sociais
nacionais.
Para a validao do modelo QoSTVModel utilizado neste
trabalho, foram consideradas duas estratgias complementares.
A primeira baseia-se nos dados apurados pelo simulador de
rede, para identificar valores limitantes na utilizao de
tecnologias de retorno em cenrios bem definidos. Esta
estratgia esbarra na baixa escalabilidade e baixo desempenho
para simulao de cenrios mais realistas, que consideram, por
exemplo, a quantidade provvel de usurios em um bairro ou

cidade. Para enfrentar este desafio, foram utilizados mtodos


estatsticos para anlise e projeo de valores para cenrios
reais, de forma a permitir a avaliao do impacto da
degradao do nvel de qualidade de servio (QoS) sobre as
aplicaes, mais especificamente sobre a interatividade.
Considerando-se a heterogeneidade dos elementos
envolvidos e a complexidade e dinamismo das relaes entre
os mesmos, optou-se por representar este conhecimento por
meio de ontologias de domnio com a aplicao QoSTVApp.
Tal tecnologia possibilitar, dentre outros benefcios, o
raciocnio automatizado para verificao da exequibilidade de
aplicaes interativas em um dado contexto. Estes e outros
conceitos que fundamentam a proposta esto descritos nas
sees a seguir.
II. CONTEXTO DO TRABALHO
A evoluo trazida pela TV Digital substitui o antigo
modelo unidirecional e oferece ao telespectador um canal de
interatividade para sua comunicao, possibilitando, desta
forma, a troca de informaes. O canal de interatividade ou
canal de retorno o meio atravs do qual os usurios
conseguem interagir com o sistema.
Os aplicativos interativos com recursos multimdia ainda
esto em processo de desenvolvimento, com o surgimento de
novos contedos e a construo de novos modelos e
linguagens [2]. Portanto, preciso gerenciar esse tipo de
aplicativo em relao aos parmetros necessrios para a
sincronizao entre diferentes mdias e limites tecnolgicos da
comunicao.
De acordo com [3], os aplicativos interativos que so
disponibilizados na TV Digital precisam atender algumas
caractersticas como usabilidade e aplicabilidade, para a
aceitao dos usurios. A avaliao desta aceitao envolve
questes subjetivas de difcil validao, tais como interesse
pelo assunto. Contudo, a aplicao um elemento importante
que deve ser considerado para validao do modelo utilizado.
III. SOLUO

Com base neste cenrio e nos desafios que o mesmo


apresenta, foi utilizado o modelo denominado QoSTVModel,
que conjuga os requisitos de QoS da aplicao interativa com
os requisitos da tecnologia de acesso [4]. Os diversos
elementos envolvidos no modelo so apresentados
graficamente na Figura 1.
No modelo QoSTVModel so explicitados os componentes
________________________
diretamente envolvidos com a interatividade, suas
M. S. Couto, Instituto Federal do Serto Pernambucano (IF Serto),
propriedades ou funes especficas e o relacionamento entre
Ouricuri, Pernambuco, Brasil, mailsoncouto@gmail.com
V. L. da Silva, Universidade do Estado do Rio Grande do Norte (UERN), os mesmos.
Natal, Brasil, clecio.de@gmail.com
A dinmica entre os elementos sugere o envio do aplicativo
C. M F. A. Ribeiro, Universidade do Estado do Rio Grande do Norte pela Estao de TV Digital, responsvel pela difuso da
(UERN), Natal, Brasil, claudiaribeiro@uern.br
programao. O receptor, que possui propriedades especficas,
165

ANAIS ELETRNICOS V ENUCOMP


tais como poder de processamento, capacidade de memria e
portas de comunicao, o equipamento que recebe e
armazena o aplicativo que ser disponibilizado ao usurio.
Conforme [5], o usurio pode interagir com o aplicativo de
forma local, intermitente ou permanente. Para a troca de
informaes, o receptor precisa estar conectado a uma
determinada tecnologia de acesso, que restringe os requisitos
de QoS (vazo, atraso e perda de pacotes) e possui
caractersticas que a diferencia de outra, tais como: alcance,
largura de banda, disponibilidade da rede e custo da
infraestrutura. O provedor de canal de retorno o responsvel
pela tecnologia de acesso a ser utilizada na ltima milha para o
canal de retorno, e o provedor de contedo oferece acesso a
servios e contedos especializados aos usurios, por meio do
provedor de canal de retorno.
O termo ontologia passou a ser adotado por grupos de
pesquisas para referenciar os conceitos e termos que podem
ser utilizados para apresentar alguma rea do conhecimento ou
desenvolver uma representao. Uma ontologia determina um
domnio, ou, mais formalmente, define uma conceitualizao
acerca dele [6].
Para o desenvolvimento da ontologia em relao aos
conhecimentos sobre QoS em TV Digital, utilizou-se a
ferramenta Protg1. Essa ferramenta open source baseada
em Java e integrada ao framework Jena2, para construir
aplicaes da Web Semntica. O modelo criado representado
por meio de classes, apresentadas na Figura 2.

Fig. 3. Representao das Classes e suas Relaes

IV. ESTUDO DE CASO E RESULTADOS


Como estratgia de validao do modelo proposto, foram
realizadas simulaes por meio do Network Simulator-2 [7],
para analisar os parmetros da rede no cenrio descrito. O NS2 uma ferramenta poderosa para simulao de redes que
cobre um grande nmero de aplicaes, protocolos, tipos de
redes, elementos de rede e modelos de trfego.
A noo de tempo no NS-2 obtida atravs de unidades de
simulao que podem ser associadas, para efeitos didticos, a
segundos. A rede construda usando ns os quais so
conectados por meio de enlaces. Quando simulada uma rede
cabeada, como o caso deste trabalho, os parmetros de um
enlace precisam ser ajustados.
Os agentes utilizados podem ser associados aos ns e eles
so responsveis pela gerao de diferentes pacotes. A fonte
de trfego uma aplicao qual associado um agente
particular. Os agentes precisam de um receptor que receber
seus pacotes. A Figura 4 mostra a estrutura padro dos objetos
de simulao.

Fig. 2. Representao das Classes

O modelo tambm foi formalizado em uma ontologia de


domnio, sendo este, representado por meio de classes e
propriedades. A representao das classes da ontologia e as
suas relaes so vistas na Figura 3.
Para representar o papel de cada componente do modelo de
QoS utilizado na ontologia, foram utilizadas as propriedades
de objetos, onde cada propriedade possui um domnio e uma
imagem que so as classes que representam os componentes
aos quais cada propriedade est relacionada.

1
2

http://protege.stanford.edu/
http://protege.stanford.edu/plugins/owl/jena-integration.html

Fig. 4. Objetos de Simulao do NS-2

Neste trabalho, o cenrio que serviu de base para as


simulaes representa o bairro Nepolis, na cidade de Natal,
Rio Grande do Norte, a menor cidade em termos
populacionais, dentre as sedes da Copa 2014. Nepolis possui
aproximadamente 6481 residncias, segundo os dados da
Prefeitura do Natal [8]. A tecnologia escolhida foi a ADSL,
uma das mais usadas para o acesso Internet. O trfego foi
gerado entre os receptores e o provedor de canal de retorno,
composto pelo link de dados do tipo assimtrico. Segundo [9],
foi adotado um link de 1 Mbps para download e 300 Kbps
para upload, valores geralmente ofertados pelas operadoras. A
166

ANAIS ELETRNICOS V ENUCOMP


partir dessa transferncia de dados, foi realizada a anlise dos
parmetros de QoS: vazo, atraso e perda de pacotes.
Foi gerado um trfego entre os receptores e o provedor de
canal de retorno, sendo que os dados como o tamanho dos
pacotes e atraso do link para aplicaes multimdia foram
definidos como mostrado na Tabela I, para obter os dados
mais prximos de uma aplicao interativa da TV Digital [10].
A partir dessa transferncia de dados, foi realizada a anlise
dos parmetros de QoS.
TABELA I
VARIVEIS CONSIDERADAS NA AVALIAO DE TCNICAS DE INTERAO

DESCRIO

VALORES

N de ns

At 1000

Tamanho do Pacote

1500 bytes

Atraso

20ms

Taxa de Transmisso (download)

1 Mbps

Taxa de Transmisso (upload)

300 Kbps

O objetivo principal deste trabalho , portanto, investigar e


analisar requisitos de QoS no SBTVD por meio da aplicao
semntica QoSTVApp, com a nfase nos aplicativos e nas
tecnologias de acesso para o canal de retorno.
A. RESULTADOS
Foi desenvolvida uma aplicao semntica, denominada
QoSTVApp, que utiliza ontologia como base para o raciocnio
automatizado. Esse aplicativo busca responder aos
questionamentos de viabilidade tcnica para provimento da
interatividade, tanto por parte dos provedores quanto dos
desenvolvedores de aplicaes, como mostrada na Figura 5.
A aplicao QoSTVApp utiliza as informaes do
QoSTVModel para definir a rota de comunicao dos
elementos que compem o SBTVD.

Conforme previsto, o NS-2 apresentou queda progressiva de


desempenho, a partir de 1000 aparelhos receptores. A partir de
ento, foi utilizada a tcnica estatstica da Regresso Linear
Simples [11], que pode prever valores futuros de uma varivel,
para estimar um nmero maior de receptores utilizados para o
clculo das mdias dos parmetros de QoS em um cenrio real
utilizado na simulao.
Por meio dos resultados obtidos nas simulaes para a
tecnologia ADSL, a anlise de cada um dos parmetros de
QoS indica que aps um determinado nmero de receptores
no mais possvel garantir a entrega do servio com
qualidade. Mais especificamente, a interatividade do aplicativo
tem o seu desempenho afetado quando a vazo da rede fica
abaixo dos 100 Kbps [4].
De acordo com [12], em relao ao atraso, quanto maior for
o seu valor, maior dever ser o tamanho do buffer para
garantir uma determinada reserva de dados. O valor desse
parmetro comea a prejudicar a aplicao quando fica
superior a 0,5s, ou seja, em torno de 330 usurios conectados.
Na Figura 6, a aplicao semntica apresenta os resultados
para 200 receptores, sendo possvel perceber que cada
parmetro de QoS est relacionado diretamente ao nmero de
receptores conectados a tecnologia ADSL, utilizando o
aplicativo interativo.
De acordo com esse cenrio, o provedor de acesso s
poderia disponibilizar essa conexo para aproximadamente
330 receptores, sendo este, o nmero mximo de conexes
com a garantia de que esse servio no comprometeria os
parmetros de QoS, j que o atraso foi o maior limitador do
nmero de receptores.

Fig. 6. Resultados dos Parmetros do QoSTVApp

Fig. 5. Tela Inicial do Aplicativo QoSTVApp

Estes resultados parciais, embora caream de maior


investigao, apontam claramente para a existncia de um
gargalo tecnolgico. Tal fato pode limitar seriamente a adoo
deste tipo de tecnologia em novos modelos de negcios e para
o suporte s polticas pblicas, indicando a necessidade de
investimento na rea. Se for considerada a assimetria na oferta
de servios de comunicao nas vrias regies do Brasil,
correto afirmar que este fato pode aprofundar o problema de
excluso digital existente atualmente.
167

ANAIS ELETRNICOS V ENUCOMP


[6]

V. CONCLUSO
As mudanas trazidas pela TV Digital no se resumem
apenas aos ganhos em relao qualidade de udio e vdeo.
As aplicaes interativas j esto sendo trabalhadas dentro do
novo padro de TV, associada s tecnologias de acesso, que
criam um caminho para a troca de informaes suscitando
maior participao do telespectador.
A aplicao semntica QoSTVApp, permite inferir sobre a
exequibilidade da interatividade considerando requisitos da
aplicao e do ambiente de execuo. Utilizou-se o
conhecimento representado no modelo e os dados obtidos na
fase de validao para a construo de uma ontologia de
domnio, a partir da qual os desenvolvedores de aplicativos
interativos ou provedores de servios podem usar os
resultados do QoSTVApp para avaliar os parmetros de QoS
da comunicao.
Como trabalho futuro pretende-se fazer a incluso de regras
de inferncia para ampliar o raciocnio e a preciso das
informaes apresentadas pela aplicao semntica.
REFERNCIAS
[1]

[2]
[3]

[4]

[5]

Campista, Miguel Elias M.; Moraes, Igor M.; Esposito, Pedro Miguel;
Amodei Jr., Aurlio; Cunha, Daniel de O.; Costa, Lus Henrique M. K.;
Duarte, Otto Carlos M. B.The Ad Hoc Return Channel: a Low-Cost
Solution for Brazilian Interactive Digital TV. Grupo de Teleinformtica
e Automao, PEE/COPPE DEL/POLI. Universidade Federal do Rio
de Janeiro, Brasil. 2006.
Gosciola, V. Roteiro para as novas mdias: do game TV Interativa.
So Paulo: Editora Senac, 2003.
Margalho, M., Frances, R. and Wely, J. Return path in Brazilian digital
television with interactivity based on continuous signalization
mechanism and qos bandwidth control, Latin America Transactions,
IEEE (Revista IEEE America Latina), 5(5):367 372, Sep. 2007.
Couto, M.S.; da Silva, V.L.; da Rocha, B.G.; Ribeiro, C.M.F.A.
QoSTVModel: A semantic model for analysis of QoS in interactive
applications for SBTVD. Information Systems and Technologies
(CISTI), 2012 7th Iberian Conference on Publication 2012.
Montez, C.; Becker, V. TV Digital Interativa: conceitos, desafios e
perspectivas para o Brasil. Florianpolis: Ed. Da UFSC, 2005. 2 edio.

Gruber, T. R. Towards Principles for the Design of Ontologies Used


for Knowledge Sharing. International Journal of Human and Computer
Studies, v. 43, p. 907-928, 1995.
[7] Issariyakul, T; Hossain, E. Introduction to Network Simulator NS2.
Springer Publishing Company, 2008. ISBN: 0387717595.
[8] Natal. Bairros de Natal / Secretaria Municipal de Meio Ambiente e
Urbanismo. 2 ed. SEMURB. Natal, 2010.
[9] Caires, G. O. J. Explorando a Tecnologia ADSL: Uma Ferramenta de
Suporte ao Ensino Presencial e a Distncia. In Dissertao (Engenharia
Eltrica). Universidade Salvador, Bahia. 2003.
[10] Couto, M. S.; Costa, F. S.; Ribeiro, C. M. F. R. Simulao do Canal de
Retorno na TV Digital via Network Simulator: uma proposta com a
tecnologia ADSL. II Workshop Tcnico Cientfico de Computao
(WTCC), Mossor - RN, p. 127 - 133, jun. 2011.
[11] Charnet, R.;Charnet, E.M.R.; Freire, C.A.F.; Bovino, H. Anlise de
modelos de regresso linear com aplicaes. Campinas, Editora da
Unicamp, 1999.
[12] Guojun, LU. Communication and Computing for Distributed
Multimedia Systems. Artech House. 1996.
Mailson Sousa Couto graduado em Cincia da Computao pela
Universidade Estadual do Sudoeste da Bahia (UESB), Vitria da
Conquista, Bahia, Brasil, em 2009. Obteve o ttulo de mestre em
Cincia da Computao pela Universidade do Estado do Rio
Grande do Norte (UERN), Natal, Rio Grande do Norte, em 2012.
Atualmente professor do Instituto Federal de Educao, Cincia
e Tecnologia do Serto Pernambucano (IF Serto) e suas pesquisas se
concentram na rea de Qualidade de Servio, Geoprocessamento e TV Digital.
Vandeclcio Lira da Silva estudante do curso de Cincia da Computao
na Universidade do Estado do Rio Grande do Norte (UERN),
integrante do Laboratrio LUMEN trabalhando em projetos de
TV Digital. Atualmente estagiando na SEPLAN-RN como
programador. Suas reas de interesse so: ASP, VB, SQL
Server e TV Digital.
Cludia M Fernandes Arajo Ribeiro possui graduao em Cincia da
Computao pela Universidade Estadual do Cear (1987),
mestrado em Sistemas e Computao pela Universidade
Federal do Rio Grande do Norte (1999) e doutorado em
Cincia da Computao pela Universidade Federal de
Pernambuco (2004). Atualmente professora adjunta da
Universidade do Estado do Rio Grande do Norte (UERN) e do Instituto
Federal do Rio Grande do Norte (IFRN). Tem experincia na rea de Cincia
da Computao, com nfase em Sistemas Distribudos, atuando nos seguintes
temas: SOA, Web Semntica e Especificao Formal de Sistemas.

Fig. 1. Modelo de Interatividade - QoSTVModel

168

S-ar putea să vă placă și