Content uploaded by Vinicius Cardoso Garcia
Author content
All content in this area was uploaded by Vinicius Cardoso Garcia on Jul 20, 2015
Content may be subject to copyright.
Desenvolvendo aplicativos peer-to-peer (p2p) no contexto de
data storage para ambientes de Cloud Computing
Anderson Fonseca e Silva1, Marco Andr´
e Santos Machado1,
Paulo Fernando A. Soares1, Vinicius Cardoso Garcia1,
Thiago Vieira1, Thiago Silva1
Frederico Dur˜
ao2, Rodrigo Elia Assad3
1CIn - Universidade Federal de Pernambuco (UFPE)
2Instituto de Matem´
atica, Departamento de Ciˆ
encias da Computac¸˜
ao (UFBA)
3Universidade Federal Rural de Pernambuco (UFRPE)
{afs8, masm, pfas, vcg, tpbv, tjs}@cin.ufpe.br, freddurao@dcc.ufba.br, assad@deinfo.ufrpe.br
Abstract. This course aims to present in a theoretical way, the cloud compu-
ting concepts (features, deployment model and services), along the peer-to-peer
network related technologies (features, architecture and design), as well its fea-
sibility, applied to the approach known as p2p-storage in the STaS (Storage as a
Service) and DaaS (Data as a Service) context. This course will to present p2p
technologies related to build, its market trends and applications. Finally, will
be presented an industrial case study, that architecture and its main challenges
encountered along the way.
Resumo. O objetivo deste minicurso ´
e abordar de forma te´
orica, o conceito
da computac¸ ˜
ao em nuvens (caracter´
ısticas, modelos de implantac¸ ˜
ao, servic¸os),
em conjunto com as tecnologias relacionadas `
as redes peer-to-peer (carac-
ter´
ısticas, arquitetura e funcionamento), exemplificando sua aplicabilidade `
a
abordagem p2p-storage cloud no contexto de STaS (Storage a Service) e DaaS
(Data as Service). O curso apresentar´
a tecnologias relacionadas `
a construc¸ ˜
ao
de redes peer-to-peer, apresentando tendˆ
encias e aplicac¸ ˜
oes de mercado. Por
fim, ser´
a apresentado um caso real de implementac¸ ˜
ao de p2p-storage cloud na
ind´
ustria, detalhando sua arquitetura, bem como, a resoluc¸˜
ao de requisitos n˜
ao-
funcionais e desafios encontrados na construc¸ ˜
ao deste.
1. Introduc¸ ˜
ao
Atualmente a Computac¸˜
ao em Nuvens (Cloud Computing) tem sido um dos temas mais
discutidos na ´
area da Ciˆ
encia da Computac¸˜
ao, tanto como t´
opico de pesquisa, como de
interesse de investimento para as empresas. Como fatores que impulsionaram a dis-
seminac¸˜
ao do uso destas tecnologias temos a crise econˆ
omica e a necessidade de raci-
onalizac¸˜
ao dos custos de tecnologia da informac¸˜
ao e comunicac¸˜
ao (TIC). Computac¸˜
ao
nas nuvens pode ser vista como uma plataforma de suporte a sistemas de software que
provˆ
e aos seus usu´
arios: gerenciamento, uso sob demanda, adequac¸ ˜
ao `
as necessidades,
racionalizac¸˜
ao do uso de recursos e automac¸˜
ao dos processos relacionados `
a criac¸˜
ao de
infra-estruturas de suporte.
7
O paradigma da Cloud Computing permite que os usu´
arios/clientes paguem pelo
recursos que consumirem, de acordo com suas necessidades, obtendo um r´
apido provi-
sionamento destes. Em pesquisas de mercado, vˆ
e-se que o fornecimento de servic¸os no
modelo de PaaS (Plataforma como Servic¸o) para Big Data deve prover recursos que mini-
mizem necessidades como: a habilidade de extrair, transformar e carregar dados para um
sistema central; interpretar resultados e alocac¸ ˜
ao de experts em Hadoop, Map-Reduce,
Pig, hive, Hbase, etc1. Neste contexto, existe a necessidade no fornecimento de platafor-
mas e soluc¸ ˜
oes de armazenamento de dados em nuvem, seja elas privadas ou p´
ublicas,
permitindo o fornecimento de conectores para os mais diversos tipos de banco de dados,
Excel, Access, Log de servidores web, Twitter, Facebook, Linkedin, etc.
Ap´
os os modelos clientes/servidores dominarem por anos a Internet, novos siste-
mas distribu´
ıdos, utilizando-se de estruturas peer-to-peer (p2p), ganharam popularidade
rapidamente. Esses sistemas se apresentaram principalmente em duas categorias: file sha-
ring (ex. Napster, Gnutella ou Morpheus) e instant messaging (ex. ICQ , AOL Instant
Messenger ou Jabber).
O aumento da popularidade de redes peer-to-peer, est´
a relacionado com o com-
partilhamento de recursos descentralizado, onde os pares podem trocar mensagens entre
si. Atrav´
es de t´
ecnicas de agregac¸˜
ao e de replicac˜
ao, este modelo oferece mais robustez e
desempenho quando comparado ao modelo cliente-servidor.
Seguindo esta tendˆ
encia, uma maneira de viabilizar a abordagem PaaS-Big Data
´
e a utilizac¸˜
ao de redes p2p, onde usu´
arios podem contribuir com espac¸os ociosos em seus
discos r´
ıgidos, formando uma ampla unidade de storage compartilhada. Empresas como
Symform2, Wuala3, Spacemonkey4e Ustore5, direcionam seus projetos para este modelo,
fornecendo soluc¸ ˜
oes tanto para public quanto para private cloud data storage, reduzindo
desta forma, o TCO (Total Cost Ownership) [Ellram 1994] das empresas.
2. Cloud computing
Conforme [Program 2011], o termo Cloud Computing adv´
em da convergˆ
encia entre
v´
arias tecnologias, algumas com padr˜
oes pr´
oprios e que, combinadas com um modelo
de implantac¸˜
ao altamente escal´
avel, representam um modelo revolucion´
ario no provisio-
namento e uso de recursos computacionais.
•Caracter´
ısticas
–Provisionar capacidade unilateralmente;
–Acessado por mecanismos de forma heterogˆ
enea;
–Os recursos fornecidos s˜
ao mantidos em um pool pelo provedor utilizando
um modelo multi-tenant;
–Recursos podem ser provisionadas elasticamente.
–Permitem o controle de alocac¸˜
ao/liberac¸˜
ao de recursos atrav´
es de monito-
ramento.
1http://java.dzone.com/articles/big-data-apps-and-big-data
2http://www.symform.com/
3http://www.wuala.com/
4http://www.spacemonkey.com/
5http://usto.re/
8
•Modelos de Servic¸os
–Software as service (SaaS) - fornecer aplicativos hospedados em um infra-
estrutura de nuvem.
–Plataform as service (PaaS) - permitir o deployment de aplicativos em um
infraestrutura de nuvem.
–Insfrastructure as service (IaaS) - Provisiona processamento, storage, re-
cursos de rede e recursos computacionais fundamentais.
–Storage as service (StaS) - Grandes empresas alugam espac¸os em sua in-
fraestrutura de storage para empresas menores.
•Modelos de Implantac¸˜
ao
–Private Clouds - Provisionada para uso exclusivo por uma ´
unica
organizac¸˜
ao(ex. Unidade de neg ´
ocios).
–Community Clouds - Infraestrutura provisionada para o uso por uma co-
munidade espec´
ıfica de consumidores e de organizac¸ ˜
oes, que comparti-
lham conceitos ou neg´
ocios (ex. Miss˜
ao, requisitos de seguranc¸a, politica)
–Public Clouds - Provisionada para o uso do p´
ublico em geral.
–Hybrid Clouds - Composic¸˜
ao de duas ou mais infraestruturas distintas.
3. Redes peer-to-peer
Um sistema puramente p2p ´
e um sistema distribu´
ıdo sem qualquer controle centralizado
[Schollmeier 2001]. Neste sistemas todos os n´
os s˜
ao nomeados como SERVENT (SER-
ver+cliENT), este termo representa a capacidade dos n´
os agirem como clientes e servi-
dores ao mesmo tempo. As vantagens relativas `
a utilizac¸˜
ao de redes p2p comparadas
com o modelo cliente/servidor tradicional est˜
ao na escalabilidade e tolerˆ
ancia a falhas
[Das et al. 2009]. Neste contexto, as redes p2p podem ser definidas como estruturadas e
n˜
ao-estruturadas, e, puras ou h´
ıbridas.
3.1. Redes estruturadas
Empregam um protocolo consistente para o roteamento de forma eficiente, na busca de
algum recurso/arquivo em algum peer, mesmo quando o recurso se torna raro. ´
E comum
a implementac¸˜
ao do conceito de DHT (Distribute Hash Table) que define o propriet´
ario
de cada arquivo em uma determinada rede.
3.2. Redes n˜
ao-estruturadas
Formada quando as ligac¸ ˜
oes s˜
ao executadas de maneira arbitr´
aria. Neste formato quando
um peer deseja encontrar um determinado dado na rede, a busca tem que ser atrav´
es de
flooding, procurando cada peer que possui o dado compartilhado.
Desvantagens:
•Consultas n˜
ao resolvidas;
•Conte´
udos com maior grau de popularidade s˜
ao encontrados em diversos peers;
•Sem correlac¸˜
ao entre o peer e o conte´
udo gerenciado por ele.
•Flooding aumenta significativamente o tr´
afego na rede.
9
3.3. Redes p2p puras e h´
ıbridas
Nas redes puras (Figura 1a), os peers agem com clientes e servidores, n˜
ao existindo o
papel do servidor e nem de um roteador central para o gerenciamento da rede. Alguns
exemplos de redes p2p puras s˜
ao aplicativos voltados para o compartilhamento de arqui-
vos como o Gnutella e o Freenet.
Nas Redes h´
ıbridas (Figura 1b.), os clientes s˜
ao divididos em 2 grupos: n ´
os cli-
entes e n´
os overlays, desta forma, os peers agem de acordo com a necessidade da rede,
ajudando na coordenac¸˜
ao e em quest˜
oes de escalabilidade.
Figura 1. Rede p2p pura (a). Rede p2p h´ıbrida (b)
4. P2P Overlay network
De acordo com [Buford 2009], se apresenta como uma camada virtual de aplicac¸ ˜
ao ou
l´
ogica da rede, na qual os peers possuem capacidade de conectividade, roteamento e troca
de mensagens entre si.
S˜
ao frequentemente utilizadas como um substrato, ou seja, uma camada servindo
de base para a implantac¸ ˜
ao de novos servic¸os de rede ou para fornecer uma topologia de
roteamento, n˜
ao dispon´
ıvel na camada f´
ısica da rede. V´
arios sistemas p2p s˜
ao Overlay
Networks executadas na internet.
4.1. JXTA
O JXTA [Wilson 2002] ´
e uma especificac¸˜
ao para a plataforma p2p desenvolvida pela Sun
Microsystems sob a direc¸˜
ao de Bill Joy e Mark Clary. Uma das principais funcionali-
dades da plataforma ´
e fornecer um padr˜
ao, permitindo que desenvolvedores comerciais
e de c´
odigo-aberto criem servic¸os interoper´
aveis e aplicac¸ ˜
oes. O JXTA foi modelado
utilizando um pequeno n´
umero de protocolos para o tratamento de servic¸os.
A Figura 2 apresenta uma vis˜
ao da arquitetura JXTA dividida em trˆ
es cama-
das: Application Layer (implementada sobre a camada de servic¸os, fornecendo os re-
cursos para a construc¸˜
ao de aplicativos como instant messaging), Services Layer (im-
plementa servic¸os como: busca de recursos em n´
os, compartilhamento de documentos e
autenticac¸˜
ao) e Core Layer.
4.2. FreePastry6
O Pastry que se constitui de um gen´
erico, escal´
avel e eficiente substrato para aplicac¸ ˜
oes
p2p. No Pastry os n´
os formam um overlay network descentralizado, auto-organizado e
6http://www.freepastry.org/FreePastry/
10
Figura 2. Arquitetura do JXTA [Brookshier et al. 2002]
tolerante a falhas na Internet.
5. A aplicabilidade do modelo p2p para ambientes de cloud computing
Como produtos aplicados ao contexto de storage voltados para ambientes em cloud, po-
demos destacar: o Google File System publicado em 2003, constituindo-se em um sis-
tema de arquivo distribu´
ıdo para armazenar grande quantidade de dados em computado-
res comuns, provendo desempenho e confiabilidade. Sua arquitetura se baseia no modelo
mestre/escravo utilizando chunkservers [Ghemawat et al. 2003]; e o Amazon Dynamo
que se apresenta como um sistema de storage baseado em chave-valor, escal´
avel atrav´
es
da adic¸˜
ao de peers, visando o armazenamento de objetos pequenos, em torno de 1MB
[Decandia et al. 2007].
6. USTO.RE - A Private Data Cloud Storage7
O USTO.RE ´
e uma soluc¸˜
ao de data cloud desenvolvida desde o in´
ıcio focada na seguranc¸a
dos arquivo dos seus usu´
arios. Cada usu´
ario do USTO.RE possui uma chave que ´
e utili-
zada para cifrar os dados antes de serem salvos. Ainda como adicional de seguranc¸a cada
arquivo antes de ser salvo ´
e dividido em pedac¸os e cada pedac¸o espalhado nos compu-
tadores que comp˜
oem a nuvem de dados (data cloud), a l´
ogica de reconstruc¸˜
ao de cada
pedac¸o ´
e privada da soluc¸˜
ao USTO.RE. Neste minicurso ser´
a apresentada a arquitetura
deste projeto.
7. Estudo de Caso
O EUBrazilOpenBio8tem por objetivo combinar a Ciˆ
encia da Biodiversidade e o Mo-
vimento de Acesso Livre, promovendo o conceito de abertura para pesquisa cient´
ıfica.
O projeto ir´
a implantar uma plataforma de acesso aberto integrando as infra-estruturas e
recursos Europeus e Brasileiros, dando passos significativos no sentido de apoiar plena-
mente as necessidades e exigˆ
encias da comunidade cient´
ıfica em biodiversidade.
Neste contexto, o USTO.RE atua junto ao projeto como um repositorio de dados
descentralizado e de baixo custo, permitindo atrav´
es do uso de um conjunto de servic¸os
web, ou por meio de uma interface para dispositivos m´
oveis, o backup e a recuperac¸˜
ao de
informac¸ ˜
oes,
7http://usto.re/
8http://www.eubrazilopenbio.eu/Pages/Home.aspx
11
8. Conclus˜
ao
Ap´
os o minicurso, espera-se que os participantes entendam os conceitos principais sobre
computac¸˜
ao em nuvem, redes p2p, bem como, o funcionamento de um sistema de storage
utilizando as abordagens beaseada em uma implementac¸˜
ao de redes p2p overlay.
9. Agradecimentos
Este trabalho ´
e financiado parcialmente pelo (INES9) e CNPq processo numero
590052/2011-0 - EU-Brazil Open Data and Cloud Computing e-Infrastructure for Bio-
diversity - BR.
Referˆ
encias
Brookshier, D., Govoni, D., Krishnan, N., and Soto, J. C. (2002). JXTA: Java P2P Pro-
gramming. Sams, Indianapolis, IN, USA.
Buford, J. (2009). P2P networking and applications. Elsevier/Morgan Kaufmann, Ams-
terdam Boston.
Das, S., Agrawal, D., and Abbadi, A. E. (2009). Elastras: An elastic transactional data
store in the cloud.
Decandia, G., Hastorun, D., Jampani, M., Kakulapati, G., Lakshman, A., Pilchin, A.,
Sivasubramanian, S., Vosshall, P., and Vogels, W. (2007). Dynamo : Amazon ? s
highly available key-value store. October, 41(6):205–220.
Ellram, L. M. (1994). A taxonomy of total cost of ownership models. Journal of Business
Logistics, 15(1):171–191.
Ghemawat, S., Gobioff, H., and Leung, S.-T. (2003). The google file system. ACM
SIGOPS Operating Systems Review, 37(5):29.
Program, C. (2011). Nist cloud computing reference architecture. Provider, 500-292:1–
26.
Schollmeier, R. (2001). A definition of peer-to-peer networking for the classification of
peer-to-peer architectures and applications.
Wilson, B. (2002). JXTA. New Riders, Indianapolis, Ind.
9http://www.ines.org.br
12