Академический Документы
Профессиональный Документы
Культура Документы
Palmas
2013
para
obteno
do
ttulo
de
Palmas
2013
para
obteno
do
ttulo
de
BANCA EXAMINADORA
___________________________________________________
Prof. M.Sc. Madianita Bogo Marioti
Centro Universitrio Luterano de Palmas
___________________________________________________
Prof. M.Sc. Jackson Gomes de Souza
Centro Universitrio Luterano de Palmas
___________________________________________________
Prof. M.Sc. Edeilson Milhomem Silva
Centro Universitrio Luterano de Palmas
Palmas
2013
SUMRIO
1
INTRODUO ................................................................................................... 10
2.1.1
2.1.2
2.1.3
2.2
Aplicaes P2P...................................................................................... 22
2.2.2
2.2.3
2.2.4
2.2.5
Arquitetura Descentralizada................................................................... 28
2.2.6
Segurana P2P...................................................................................... 31
2.3.1
2.3.2
2.4
2.2.1
2.3
2.4.1
2.4.2
MATERIAIS .................................................................................................. 44
3.2
Metodologia .................................................................................................. 45
4.2
4.3
4.4
Cenrios de Uso........................................................................................... 61
4.5
4.6
RESUMO
As redes de computadores tm se tornado comum entre usurios e organizaes e,
consequentemente, a utilizao de dados digitais tem crescido. Com isso,
importante criar novas formas de armazenar esses dados com intuito de manter
cpias de segurana de arquivos para evitar possveis perdas. Assim, o objetivo
deste trabalho foi desenvolver uma soluo de backup P2P, utilizando JXTA, que
possibilita o compartilhamento de arquivos disponveis nas mquinas dos usurios.
A aplicao oferece funcionalidades para o usurio enviar, buscar e recuperar seus
arquivos, que so criptografados e armazenados em diversas mquinas de rede afim
de criar cpias de segurana. Os arquivos enviados podem ser recuperados
somente por quem possui a chave de criptografia, utilizada para garantir a
privacidade dos arquivos.
LISTA DE ILUSTRAES
10
INTRODUO
11
denominada
Peer
Backup.
A aplicao,
em conjunto
com as
12
13
REFERENCIAL TERICO
2.1
Sistemas Distribudos
14
15
Transparncia;
Flexibilidade;
Escalabilidade;
Confiabilidade;
Tolerncia a falhas;
Desempenho.
Transparncia
Um sistema distribudo deve ocultar de seus usurios que os processos executados
e os componentes utilizados esto separados fisicamente, mesmo quando esto
separados por localidade, com sistemas operacionais diferentes etc.. Existem vrios
tipos de transparncia, sendo que cada aplicao pode exigir conceitos diferentes
(TANEMBAUM, 2007, p. 3). So elas:
Acesso: ocultar como os dados so representados e como os recursos so
acessados. Caso o usurio faa uma requisio de download, por exemplo, o
usurio no deve perceber como este dado est armazenado no sistema;
Localizao: ocultar do usurio a localizao dos recursos, sendo que
recursos locais e remotos, para o usurio, so vistos da mesma forma. Por
exemplo, ao acessar uma pgina o usurio no quer saber se ela est no
Brasil ou na China, apenas necessita que pgina seja exibida.
Migrao: ocultar que um recurso possa ter sido movido de um local para
outro. Por exemplo, se um arquivo foi movido de um servidor para outro, o
sistema deve retornar as informaes para o usurio sem que este perceba
ou se preocupe com a nova localizao;
Performance: melhorar a capacidade (desempenho) do sistema caso seja
necessrio sem que o usurio perceba. Mesmo com o aumento da carga,
devido ao aumento da quantidade de usurios, o sistema deve garantir que o
tempo de acesso a um recurso no sofra alterao;
Replicao: ocultar que existem cpias de um recurso. Um exemplo de
replicao um sistema que, para evitar perda de dados, faz cpias de dados
que usurios enviam em outro local, mas, no informa isto ao usurio. Caso
16
Flexibilidade
Segundo Dettenborn (2008, p. 19) um projeto de sistemas distribudos deve ser
flexvel com a capacidade de suportar alteraes que no foram previstas. Deste
modo, a flexibilidade de um sistema est ligada a capacidade de realizar
modificaes futuras com mais facilidade. Nessas modificaes podem ser includas
funcionalidades como segurana, desempenho etc.. Assim, situaes imprevistas
devem ser contornadas de forma simples. Por exemplo, se o firewall utilizado de
baixa confiabilidade ele pode ser trocado por outro sem precisar alterar o sistema
que protegido por ele.
Escalabilidade
Um sistema descrito como escalvel se permanece eficiente quando h um
aumento significativo no nmero de recursos e no nmero de usurios
(COULOURIS, 2007, p.31). Ou seja, preciso que um sistema continue funcionando
adequadamente caso a demanda aumente. Por exemplo, se um site da internet
ganha novos usurios de forma progressiva e de diversos locais do mundo, deve
permanecer funcionando normalmente e fornecer respostas s solicitaes dos
usurios em tempo adequado. Esta escalabilidade pode ser dividida em trs nveis:
Tamanho: capacidade de atender uma demanda maior de usurios.
Distncia geogrfica:capacidade de atender usurios mesmo ele estando
longe dos recursos.
17
18
Complexidade
de
software:
implementar
softwares
para
sistemas
19
Apesar das dificuldades o uso de sistemas distribudos costuma ser uma boa
soluo para resolver determinados problemas, como o acesso informao em
localidades distintas. No seu desenvolvimento deve ser levada em considerao a
necessidade, a dificuldade e o benefcio que trar quando concludo. De toda forma
existem vrias solues parao problema da segurana e das redes de comunicao.
20
21
2.2
22
Comunicao
colaborao:
esto
presentes
nesta
classificao
23
Computao
distribuda:
so
sistemas
que
utilizam
poder
de
24
Estruturadas
So redes com alto controle no qual o contedo colocado em locais especficos,
para que consultas sejam feitas de forma mais eficiente (LUA et al, 2004, p. 2). A
25
rede define chaves nicas para os dados, organiza os pares e atribui a chave para
um ponto, isto permite que sejam realizadas consultas mais eficientes. Geralmente
redes estruturadas so baseadas em DHT (Distributed Hash Tables), no qual so
utilizadas para organizar os processos (ex. localizao). Segundo Vestola (2010, p.
2) DHT so sistemas descentralizados e distribudos de prestao de servios de
pesquisa semelhante a uma tabela hash.
Em redes baseadas em DHT os pares e objetos possuem identificadores
nicos, conhecidos como chave. As DHTs armazenam a chave e valor de um item
nos pares da rede, no qual a chave utilizada para identificar o objeto, e o valor o
identificador do n que responsvel pelo item. Exemplos de arquiteturas
estruturadas so: Freenet, Chord, CAN.
Desestruturadas
Nas redes P2P no estruturadas a ligao entre os pares estabelecida de forma
facultativa e no existe correlao entre um par e o contedo administrado por ele
(LUA et al, 2004, p. 2). Deste modo um par pode se conectar a outro utilizando
somente seu endereo fsico. Os itens podem ser disponibilizados em qualquer
ponto da rede e para encontr-los necessrio utilizar a busca por inundao, que
consiste em difundir a requisio entre os pares. Exemplos de arquiteturas no
estruturadas so: Napster, Gnutella.
arquiteturas
desestruturadas
podem
ser
classificadas
em:
hibrida
26
Parcialmente centralizada
Esta arquitetura caracterizada pela existncia de super-ns, que so definidos de
acordo com as caractersticas definidas pela rede (ANDROUTSELLIS-THEOTOKIS,
SPINELLIS, 2004, p. 346). Os super-ns possuem funes semelhantes de um
servidor, como exemplo indexao, cache e proxy para as requisies. Caso um
27
28
exemplo
de
arquitetura
descentraliza
rede
Gnutella
29
30
Existem mensagens de controle como, por exemplo, para ingressar na rede, verificar
status etc.; e para troca de dados, que so os arquivos. So definidos quatro tipos
de mensagens, que so:
localizao
de
dados
encontrados
da
pesquisa
correspondente.
Para obter um determinado dado na rede, um par deve seguir alguns passos,
como mostrado na Figura 10, na qual a linha tracejada representa a ligao dos
pares e as setas indicam o caminho percorrido das mensagens. O peer A envia
uma mensagem de Query para seu vizinho peer B, que consequentemente distribui
31
a requisio com seu vizinho peer C, que repassa a mensagem aos vizinhos peer
D e peer E. Ao encontrar o arquivo no peer C, uma mensagem de QueryHit
retornada ao peer A, que originou a mensagem, contendo as informaes de
localizao do arquivo.
Em qualquer arquitetura P2P, as mensagens trocadas devem ser vistas e
modificadas somente por usurios autorizados, aumentando a segurana da rede, o
que discorrido na prxima seo.
2.2.6 Segurana P2P
Para garantir a segurana de uma rede algumas caractersticas devem ser levadas
em considerao (ANDROUTSELLIS-THEOTOKIS E SPINELLIS, 2004), entre elas
esto:
Public Key.
32
momento que o arquivo postado e quando ele recuperado (ANDROUTSELLISTHEOTOKIS E SPINELLIS, 2004).
Esquema de Shamir Secret Sharing
Consistem em uma forma de criptografia, que gera uma chave para o arquivo
(ANDROUTSELLIS-THEOTOKIS E SPINELLIS, 2004). Esta chave dividida em
vrias partes e distribuda entre os pares da rede. Para recuperar o arquivo
necessrio unir todas as partes, afim de obter a original.
Public Key
Mecanismo de criptografia que gerar duas chaves, chave pblica e chave privada,
no qual so relacionadas (MIZANI, 2005, p. 21-22). As informaes criptografadas
pelo mecanismo so recuperadas utilizando as duas chaves correspondentes. Em
uma rede P2P a chave pblica armazena junto ao arquivo, e somente um par que
possuir a chave privada pode decodificar e recuperar a informao, na Figura 11
mostra essa comunicao.
33
2.3
Tecnologia JXTA
O JXTA uma tecnologia de cdigo aberto, projetada para redes P2P, desenvolvida
pela Sun Microsystems, com a participao de empresas, universidades, entre
outros colaboradores. Segundo Gong (2001, p. 88) a tecnologia JXTA uma
plataforma de desenvolvimento computacional e de redes que foi projetada para
34
ganhado
afinidade
entre
os
desenvolvedores,
isto
porque
oferece
Identifiers
(ID):
JXTA
utiliza
identificadores
de
128
bits,
35
Pipes:
so
canais
virtuais
de
comunicao
unidirecionais
36
37
correspondentes.
Cada
consulta
ou
resposta
possui
um
Peer Discovery Protocol: este protocolo permite que um par encontre recursos
anunciados na rede.
pares e anncios emitidos por estes. Pares que implementam esse protocolo
podem, ainda, ajudar outros na busca de recursos na rede (SUN, 2007, p.
32);
Pipe Binding Protocol: esta funcionalidade permite que sejam criados canais
virtuais de comunicao entre pares. Estes canais virtuais permitem criar,
abrir/resolver, fechar, excluir, enviar e receber operaes (SUN, 2007, p. 44);
38
39
2.4
Backup Cooperativo
As
cpias evitam problema com a perda de dados no futuro. Deste modo necessrio
que o usurio determine estratgias para realizar estas cpias, pois de forma
aleatria, os dados ou modificaes, poderiam ser ignorados (JUNIOR, 2010, p. 13).
Para auxiliar os usurios a criarem suas estratgias foram definidos alguns tipos de
backup, que os mais comuns so: Completo Full, Incremental e Diferencial.
40
Completo - Full
Os dados so copiados de todos os arquivos ignorando se foram modificados ou
no. Esse tipo geralmente executado em intervalos de tempo maiores do que os
outros, pois o tempo de cpia pode ser muito grande dependendo do volume de
dados a ser gravado. Caso seja necessria uma restaurao dos dados, basta
executar a ltima cpia gravada.
Incremental
Nesse modelo de backup so realizadas cpias dos arquivos modificados desde a
ltima cpia completa ou cpia incremental. Na Figura 14 apresentado como os
dados de um backup incremental crescem durante um perodo de tempo.
41
42
Backup centralizado
Em um ambiente no qual empregado o backup centralizado, os usurios utilizam
uma mquina central para armazenar as cpias de segurana de seus arquivos
(JUNIOR, 2010, p. 18). O computador que armazena esses backups, geralmente,
so servidores com grandes capacidades de armazenamento e, normalmente, so
utilizados em corporaes. Na Figura 16 mostrado um exemplo de funcionamento
do backup centralizado.
Backup descentralizado
Um ambiente descentralizado quando as mquinas da rede guardam cpias de
seus arquivos em mais de um local como forma de minimizar perdas em caso de
falhas (JUNIOR, 2010, p. 17). Deste modo, se ocorrer problemas em um dos locais
no qual o backup foi armazenado, a restaurao pode ser feita em outro local no
43
MATERIAIS E MTODOS
3.1
MATERIAIS
45
JXTA
2.5
verso
Java:
utilizada
para
desenvolvimento
das
3.2
Metodologia
46
47
envio dos arquivos completos para as mquinas da rede P2P, isto porque
as cpias ficaro em computadores pessoais dos usurios que decidirem
entrar na rede e no momento da restaurao pode ser que nem todos os
usurios estejam conectados, e caso os dados fossem separados em
partes ocasionaria problema na recuperao do arquivo;
uso
de
criptografia
simtrica
para
garantir
privacidade
Por meio dos requisitos definidos, foi possvel ter uma base das necessidades
do software, e a partir da foi iniciado o processo de desenvolvimento da aplicao,
que consistiu em:
48
49
50
RESULTADOS E DISCUSSES
O presente trabalho consistiu no desenvolvimento de uma aplicao de
backup P2P utilizando a plataforma JXTA, denominada Peer Backup. Essa aplicao
fornece ao usurio funcionalidades para a criao de cpias de segurana em
computadores de uma rede local, utilizando uma rede lgica P2P sobreposta a rede
fsica. Com isso, permite que os usurios se comuniquem diretamente e que
compartilhem dados e recursos como memria ram, espao em disco, ciclos de cpu.
Os pares da rede P2P so os usurios que esto utilizando a aplicao nos
computadores da rede. A comunicao entre os pares pode ser referente a busca
por pares e anncios e manipulao de arquivos. Cada par utiliza uma chave de
segurana que serve para cifrar arquivos e conectar-se aplicao.
Antes de serem enviados aos outros pares, os arquivos so cifrados com a
chave do usurio e os nomes so alterados e codificados utilizando o algoritmo
base64, com intuito de que outros usurios no tenham acesso ao nome e formato
de arquivo. Os dados so enviados integralmente para os pares, desta forma, para a
recuperao preciso da chave do usurio e um membro da rede possuir o arquivo.
importante ressaltar que as informaes enviadas aos outros pares devem
ser lidas e modificadas apenas por usurio que possui a chave de criptografia
referente ao arquivo. Para garantir a privacidade dos dados contidos nos arquivos,
utilizada a criptografia simtrica, na qual o usurio fornece uma chave que aplicada
na cifragem dos dados.
Os critrios e requisitos da aplicao so apresentados na metodologia, e
foram a base para o seu desenvolvimento. A partir dessas definies foram gerados
os artefatos de software que so apresentados no decorrer desta seo na seguinte
ordem:
Arquitetura da aplicao;
Testes.
51
4.1
par
que
est atuando
como
servidor se
desconecte da rede,
52
autenticao de usurios e
53
4.2
Diagrama de classes
O diagrama de classes representa a estrutura da aplicao, como as classes
54
Classe::ListRequestor
-Resultado_Busca : ContentAdvertisement[]
-Opcao : int
-Thread_Manager : ThreadPoolExecutor
-Grupo_Backup : PeerGroup
-Arquivos : ArrayList<Arquivo>
+notifyMoreResults()()
Classe::Arquivo_Buscar_Thread
Classe::Arquivo
-id : String
-nome : String
-tamanho : long
-data_envio : calendar
-caminho_original : String
+toString()()
+getId()()
+setId(id)()
+getNome()()
+setNome(String nome)()
+getTamanho()()
+setTamanho(long tamanho)()
+Cifrar_Nome(String nome)()
+Decifrar_Nome(String nome)()
+Criptografar(String chave,Peer p)()
+getDataEnvio()()
+setDataEnvio(Calendar data)()
-Grupo_Backup
-Query_Busca
-List_Requestor
-Tempo_Inicio_Thread
-Opcao
-Arquivos
+run()()
Classe::JXTA_Service
-GrupoGlobal : PeerGroup
-Grupo_Backup : PeerGroup
-DS_Padrao : DiscoveryService
-DS_Backup : DiscoveryService
-PGA_Backup : PeerGroupAdvertisement
-Grupo_Backup_ID : String
-Auth : Authenticator
+Comecar()()
+Iniciar_Rede()()
+Force_Iniciar_Grupo()()
+Pesquisar_Grupo_Existente()()
+Ingressar_Grupo(PeerGroup grupo)()
+Log(String texto)()
+Criar_Novo_Grupo()()
+getGrupo()()
Classe:Interface
Classe::Download
-Objetos : Object []
+Download(PeerGroup g, ContentAdvertisement c, File f, Object [] o)()
+notifyUpdate()()
+notifyDone()()
+notifyFailure()()
Classe::Download_Thread
-Grupo_Backup : PeerGroup
-Anuncio : ContentAdvertisement
-Arquivo : File
-Objetos : Object []
+run()()
Classe::Share
-Grupo_Backup : PeerGroup
-Pasta_Shared : File
-cms : CMS
+Iniciar_CMS()()
+run()()
-Peer : Peer
-Arquivos : ArrayList<Arquivo>
-Rede : JXTA_Service
-Pares_Thread : Peer_Thread
-Arquivo_Enviar : Arquivo
-Compartilhar : Share
-Logado : boolean
-inDownload : boolean
-Arquivos_Busca : ArrayList<Arquivo>
+Atualizar_Lista_Arquivos()()
+to16bytes(senha)()
+Login()()
+Verifica_Base()()
+Atualizar_Lista_Pares()()
+Carregar_Base()()
+Buscar_Meus_Arquivos()()
+main()()
Classe::Peer_Thread
-Grupo_Backup : PeerGroup
-DS_Padrao : DiscoveryService
-Lista_Pares : JList
-Tempo_Inicio_Thread : long
+discoveryEvent(DiscoveryEvent d)()
+Gerar_Lista_Pares(Enumeration e)()
+sets()()
+run()()
Classe:Peer
-id : String
-nome : String
-password : String
+gets()()
+sets()()
+verifyPassword(senha)()
Classe: Interface
55
Mtodos:
56
Classe: JXTA_Service
Contm as funcionalidades de iniciar e controlar a rede P2P.
Atributos:
Mtodos:
57
Peer: contm informaes sobre o par ativo na aplicao, como senha, nome
e identificao;
pela aplicao, que no param ou bloqueiam a aplicao para executar uma tarefa.
58
4.3
Modelo de dados
59
linha 7 elemento Name, que representa o nome do par que utilizado pela
aplicao para localizar arquivos e identificar o usurio na rede; e
da rede JXTA e so gerados pela prpria tecnologia. Alm dos arquivos gerados
pelo JXTA, so criados arquivos pela aplicao, que so o banco de dados da
aplicao e diretrios de compartilhamento e download de arquivos. A Figura 23
mostra as pastas criadas pela aplicao.
60
61
4.4
Cenrios de Uso
62
Passo 2 o sistema realiza uma busca por redes P2P ativas; se nenhuma for
encontrada, ento uma criada;
O usurio precisa configurar o sistema apenas uma vez em cada mquina que
utilizar, pois criada uma base de dados contendo seu nome de usurio e seus
arquivos enviados. A base de dados, que fica armazenada em arquivo no formato
XML no diretrio Config que se encontra junto com a aplicao, acessada
63
quando o usurio precisa saber quais arquivos foram guardados. O arquivo possui a
identificao dos arquivos enviados, nome, tamanho, data de envio etc.. Aps o
envio dos arquivos, o usurio pode recuper-lo de qualquer outro par da rede,
necessitando configurar apenas o login e senha novamente.
Na Figura 27 mostrado o cenrio de uso que representa o processo de
recuperao de arquivos.
64
65
4.5
Inicializao da aplicao:
o Verificao de dados (banco de dados e pastas);
o Criao e autenticao da rede;
o Conexo do usurio com o sistema;
Interface grfica:
o Acesso tela inicial;
o Envio de arquivos;
o Recuperao de arquivos
o Verificao de pares conectados;
o Acesso aos Logs de eventos.
Iniciando aplicao
A fase de inicializao da aplicao funciona como um modelo de dependncias, na
qual uma ao s pode ser executada se a anterior tiver sido iniciada ou
completada. A Figura 29 mostra a sequncia de aes referentes inicializao da
aplicao.
66
67
68
69
duas possibilidades quando se verifica a existncia de uma rede P2P, a rede estar
ativa ou a rede no existir.
Quando a rede encontrada, o sistema cria uma cpia do objeto de
referncia da rede, que inclui localizao, nome de grupos, pares ingressos e
anncios transmitidos. Caso o par servidor se desconecte, o objeto copiado
utilizado para iniciar uma nova rede contendo os pares existentes. Por fim o sistema
autentica o usurio na rede e realiza o procedimento para incluir o par no grupo e
anunci-lo para os outros pares.
Ao buscar e no encontrar um servio de rede disponvel, o prprio par
eleito como servidor. Para isso, necessrio somente autenticar o usurio na rede,
proceder com o ingresso do par no grupo criado e aguardar que novos pares se
conectem.
Para encontrar redes disponveis a aplicao utiliza o nome definido para a
rede P2P. Para a aplicao Peer Backup, foi definido o nome PeerBackup para
qualquer rede criada a partir dela, sendo que sistema busca por esta referncia. A
Listagem 2 mostra o trecho de cdigo que implementa as buscas por redes P2P.
70
que
recebe
como
atributos
Como mostrado na Figura 31 uma rede criada antes mesmo da busca por
outras existente, sendo utilizado apenas os servios de localizao. Quando no
encontra uma rede ativa, automaticamente criado um grupo P2P, no qual o usurio
conectado. Esse grupo anunciado como uma rede P2P para que novos pares
consigam conectar. O cdigo utilizado para criar o grupo mostrado na Listagem 3.
71
linha 157 - criado um novo grupo criado que recebe como parmetros no
construtor do mtodo a identificao do grupo, os servios disponveis de
grupo, o nome do grupo e a descrio. Aps a criao do grupo criado um
anncio para public-lo na rede;
72
73
dados existente, que so dados referentes a nome do usurio, arquivos etc. Quando
no encontra a base o sistema exibe primeiramente a tela do JXTA para cadastro de
usurio e senha, que mostrada na Figura 33.
74
Log;
Proxy;
Protocolo TCP;
Protocolo HTTP.
75
76
Envio de arquivos
Os arquivos do usurio so enviados para os outros pares por meio da aba Enviar
Arquivos e so criptografados com a chave do usurio utilizando a tecnologia de
criptografia AES, antes de serem compartilhados na rede. A cifragem do arquivo a
forma de garantir a confidencialidade da informao, na Listagem 4 mostra o cdigo
que cifra os arquivos.
77
linha 197 - criada uma instncia OutputStream, objeto utilizado para auxiliar
na escrita dos bytes, que recebe como parmetro o arquivo que ser
criptografado.
linhas 209 a 211 feita a leitura dos dados a cada 64 bytes, que depois so
escrito em arquivo fsico e colocado na pasta Share.
NOMEDOUSUARIO__DIA-MS-ANOHORAMINUTO__NOMEDOARQUIVO;
Exemplo: TARIK__13-06-2013-1510__FOTOS.ZIP.
78
Recuperao de arquivos
Quando um usurio da aplicao deseja recuperar um arquivo necessrio utilizar a
aba Buscar Arquivo. No momento que for feita a requisio, a aplicao faz uma
requisio classe Arquivo_Buscar_Thread, que o servio responsvel por
iniciar uma instncia da classe ListRequestor, como mostrado na Listagem 5.
79
classe
ListRequestor
herda
as
caractersticas
da
classe
80
que por fim retorna a lista de arquivos encontrados disponveis para download na
aba Buscar Arquivos da interface, como mostrado na Figura 37.
ListRequestor,
no
atributo
Query_Buscar
passado
valor
NOMEDOPAR*, sendo que qualquer valor que possua o nome do par no incio do
arquivo considerado dele. A query de busca feita deste modo porque os arquivos
so renomeados antes de serem compartilhados com intuito de facilitar no momento
da busca.
Aps o retorno da lista de arquivos, o usurio pode escolher e recuperar um
arquivo, utilizando o boto Download da tela. A requisio de download inicia um
servio da classe Download_Thread, que responsvel por invocar os mtodos da
classe Download, tendo como objetivo de recuperar o arquivo.
A classe Download herda os mtodos da classe GetContentRequest do
JXTA, que responsvel pelo download de arquivos presentes na rede. A classe
Download recebe como parmetro no construtor: o grupo ativo, o anncio de
contedo, o local que o arquivo deve ser salvo na mquina e o objeto que deve ser
manipulado para exibir informaes de status do download. Para informar sobre a
situao do download, existem trs mtodos que so sobrescritos da classe
superior, que so:
81
82
83
4.6
84
Login/Nome do Par
Lord
Senha/Chave de criptografia
1234567890
1 arquivo de imagem tipo JPG
Arquivos
85
Ao
Captura de tela
Definindo
chave
de
criptografia e login.
Interface
da
aplicao
aps configurao.
86
somente quando a rede P2P est ativa e quando os arquivos de dados esto
criados, confirmando ento a funcionalidade da rede.
Para ser possvel criar a rede e realizar os prximos testes, foi necessrio
criar mais dois usurios fictcios para simular um ambiente de rede real. Para cada
usurio foi criada uma mquina virtual e foram definidos usurios e senhas,
mostrados na Tabela 5.
Tabela 5 - Usurios de teste
Login/Nome do Par
Senha/Chave de criptografia
Linus
abc112233
Raider
02201001
Envio de arquivo
O usurio Lord enviou os trs arquivos mostrados na Tabela 6 e obteve sucesso.
Sendo que o tamanho dos arquivos no foram alterados pela criptografia.
Tabela 6 - Arquivos enviados pelo usurio Lord
Arquivo
Desktop.zip
Resposta do sistema
Compartilhado
com
sucesso!
IMG_20121208_18
Compartilhado
2054.jpg
sucesso!
concurso.txt
Compartilhado
sucesso!
TG9yZA==#3#2__MTUtNS0yMD
EzLTgzM19EZXNrdG9wLnppcA
==#3#2
com
TG9yZA==#3#2__MTUtNS0yMD
EzLTgzNF9JTUdfMjAxMjEyMDhf
MTgyMDU0LmpwZw==#3#2
com TG9yZA==#3#2__MTUtNS0yMD
EzLTgzMl9jb25jdXJzby50eHQ=#
87
3#2
Depois de confirmar o envio dos arquivos por meio, como exibido na Figura
41, foi necessrio verificar se os demais pares da rede realizaram armazenaram os
arquivos do par Lord. Para confirmar foi verificada a pasta Share dos pares Linus e
Raider. Na verificao constatou-se que a pasta Share dos dois ns possua os
trs arquivos gerados mostrados na Tabela 6. Os arquivos so mostrados na Figura
42.
88
O prximo passo dos testes foi verificar se existem pares conectados na rede para
que seja feita uma busca dos arquivos enviados. A verificao de pares serve para o
usurio no executar aes sem necessidade, pois se no tem pares conectados,
no tem arquivos disponveis para serem recuperados.
A verificao dos pares da rede foi feita pela interface do usurio Lord, que
retornou uma lista contendo os pares Linus e Raider, que mostrado na Figura 43.
A existncia dos pares conectados mostrado na Figura 43, a partir disso foi
feita uma busca pelos arquivos de Lord, utilizando a aba Buscar Arquivos. Ao fazer a
requisio de busca, ento o sistema retornou uma lista com os arquivos
disponveis, que mostrado na Figura 44.
89
Teste de confidencialidade
O teste tem o objetivo de verificar se um usurio no possa visualizar os dados
enviados por outro, mesmo utilizando seu login. Como a rede no tem controle de
login, ento foi criado uma nova mquina virtual e realizada uma nova configurao
no Peer Backup, que mostrado na Tabela 7.
Tabela 7 - Configuraes de usurio falso
Login/Nome do Par
Lord
Senha/Chave de criptografia
00000000
90
91
CONSIDERAES FINAIS
A utilizao de dados digitais tem aumentado com o passar dos anos, principalmente
pela expanso da internet. Dentre estes dados esto documentos, fotos, msicas e
outros objetos digitais que um usurio pode possuir no seu computador. Muitas
pessoas, e at empresas, esto se desfazendo das cpias fsicas e substituindo-as
por cpias digitais, visando, entre outras coisas, a economia de espao fsico e a
facilidade de busca.
O foco desse trabalho foi o compartilhamento de espao em disco disponvel
nas mquinas de uma rede de computadores, por meio de uma arquitetura Peer-toPeer descentralizada. Para isso, foi desenvolvida a aplicao Peer Backup, que
possui os mtodos necessrios para envio, busca e recuperao de arquivos em
uma rede P2P. Para acessar as funcionalidades foi implementada uma interface em
que o usurio conseguisse executar as aes de backup.
Para realizar a manipulao da rede P2P foi utilizada a tecnologia JXTA, uma
ferramenta de cdigo aberto e disponvel em vrias linguagens de programao, foi
um dos pontos definidos no objetivo do trabalho, pois fornece os mtodos
necessrios para implementar a rede P2P e realizar a comunicao entre os pares
da rede.
Para verificar se a aplicao oferecia as funcionalidades definidas e no
apresentava problemas na utilizao, foram realizados testes de interface e
funcionamento, isto em um ambiente virtual, devido as dificuldades de se montar um
ambiente real. Foram realizados testes de interface para verificar o funcionamento
da aplicao simulando usurios de uma rede e teste de confidencialidade para
garantir que somente o proprietrio dos arquivos possa recuper-lo. Nos resultados
dos testes foi demostrado o funcionamento real da aplicao e as sadas obtidas
durante sua execuo, que ao final foi comprovado seu funcionamento.
Alm
dos
testes
bsicos
de
funcionamento,
foi
realizado
de
92
93
REFERNCIAS BIBLIOGRFICAS
94
95
guide/sources/svn/content/trunk/src/guide_v2.5/JXSE_ProgGuide_v2.5.pdf> .Acesso
em 15 novembro 2012.
TANENBAUM, A. S. Sistemas Distribudos Princpios e Paradigmas.2. Ed. So
Paulo: Person. 2007.