Conference PaperPDF Available

Desenvolvendo aplicativos peer-to-peer (p2p) no contexto de data storage para ambientes de Cloud Computing

Authors:

Abstract and Figures

This course aims to present in a theoretical way, the cloud computing concepts (features, deployment model and services), along the peer-to-peer network related technologies (features, architecture and design), as well its feasibility , 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.
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
... Foram implementados, os critérios propostos no modelo RecCloud e o cálculo de recomendação. O Ustore,é uma ferramenta de armazenamento em nuvem baseada em uma arquitetura P2P híbrida que tem como objetivo armazenar dados com baixo custo e de forma que os mesmos não se tornem indisponíveis com eventuais problemas na rede [13] [29]. ...
Conference Paper
Full-text available
O desenvolvimento tecnológico vivenciado nos últimos anos proporcionou o crescimento do universo digital de forma exponencial, parte desse universo digital encontra-se armazenado em sistemas de armazenamento em nuvem. A cada dia surgem mais destes sistemas, que oferecem o armazenamento de dados de forma distribuída com alta taxa de disponibilidade, o que tem impulsionado cada vez mais usuários a migrarem seus dados para a nuvem. No entanto, a grande quantidade de arquivos armazenada nestes sistemas dificulta a filtragem de conteúdo relevante, demandando tempo e trabalho por parte do usuário na busca por arquivos com conteúdo similar as suas preferências. Diante deste cenário, esta pesquisa propõe um modelo de recomendação para sistemas de armazenamento em nuvem, que tem como objetivo utilizar características da nuvem associadas à técnica de recomendação baseada em conteúdo.
Conference Paper
Full-text available
Reliability at massive scale is one of the biggest challenges we face at Amazon.com, one of the largest e-commerce operations in the world; even the slightest outage has significant financial consequences and impacts customer trust. The Amazon.com platform, which provides services for many web sites worldwide, is implemented on top of an infrastructure of tens of thousands of servers and network components located in many datacenters around the world. At this scale, small and large components fail continuously and the way persistent state is managed in the face of these failures drives the reliability and scalability of the software systems. This paper presents the design and implementation of Dynamo, a highly available key-value storage system that some of Amazon's core services use to provide an "always-on" experience. To achieve this level of availability, Dynamo sacrifices consistency under certain failure scenarios. It makes extensive use of object versioning and application-assisted conflict resolution in a manner that provides a novel interface for developers to use.
Conference Paper
Full-text available
This paper offers a definition for peer-to-peer networking and makes the differences to common so called client server-architectures clear. With this definition we are able to classifiy currently existing networking concepts in the Internet either as "pure" peer-to-peer, or "hybrid" peer-to-peer or client server architecture
Article
Peer-to-Peer (P2P) networks enable users to directly share digital content (such as audio, video, and text files) as well as real-time data (such as telephony traffic) with other users without depending on a central server. Although originally popularized by unlicensed online music services such as Napster, P2P networking has recently emerged as a viable multimillion dollar business model for the distribution of academic and clinical information, telecommunications, and social networking. Written at an accessible level for any reader familiar with fundamental Internet protocols, Peer-to-Peer Networking and Applications explains the conceptual operations and architecture underlying basic P2P systems using well-known commercial systems as models. The book also delineates the latest research directions, thereby providing not only a sophisticated understanding of current systems, but also the means to improve upon these systems with innovations that will better performance, security, and flexibility. Peer-to-Peer Networking and Applications is thus both a valuable starting point and an important reference to those practioners employed by any of the 200 companies with approximately $400 million invested in this new and lucrative technology. * Uses well-known commercial P2P systems as models, thus demonstrating real-world applicability. * Discusses how current research trends in wireless networking, high-def content, DRM, etc. will intersect with P2P, allowing readers to account for future developments in their designs. * Provides online access to the Overlay Weaver P2P emulator, an open source tool that supports a number of peer-to-peer applications with which readers can practice.
Conference Paper
We have designed and implemented the Google File Sys- tem, a scalable distributed file system for large distributed data-intensive applications. It provides fault tolerance while running on inexpensive commodity hardware, and it delivers high aggregate performance to a large number of clients. While sharing many of the same goals as previous dis- tributed file systems, our design has been driven by obser- vations of our application workloads and technological envi- ronment, both current and anticipated, that reflect a marked departure from some earlier file system assumptions. This has led us to reexamine traditional choices and explore rad- ically different design points. The file system has successfully met our storage needs. It is widely deployed within Google as the storage platform for the generation and processing of data used by our ser- vice as well as research and development efforts that require large data sets. The largest cluster to date provides hun- dreds of terabytes of storage across thousands of disks on over a thousand machines, and it is concurrently accessed by hundreds of clients. In this paper, we present file system interface extensions designed to support distributed applications, discuss many aspects of our design, and report measurements from both micro-benchmarks and real world use.
Article
Over the last couple of years, "Cloud Computing" or "Elastic Computing" has emerged as a compelling and successful paradigm for internet scale computing. One of the major contributing factors to this success is the elasticity of resources. In spite of the elasticity provided by the infrastructure and the scalable design of the applications, the elephant (or the underlying database), which drives most of these web-based applications, is not very elastic and scalable, and hence limits scalability. In this paper, we propose ElasTraS which addresses this issue of scalability and elasticity of the data store in a cloud computing environment to leverage from the elastic nature of the underlying infrastructure, while providing scalable transactional data access. This paper aims at providing the design of a system in progress, highlighting the major design choices, analyzing the different guarantees provided by the system, and identifying several important challenges for the research community striving for computing in the cloud. Comment: 5 Pages, In Proc. of USENIX HotCloud 2009
Nist cloud computing reference architecture. Provider
  • C Program
Program, C. (2011). Nist cloud computing reference architecture. Provider, 500-292:1-26.
espera-se que os participantes entendam os conceitos principais sobre computaçcomputaç˜computação em nuvem, redes p2p, bem como, o funcionamento de um sistema de storage utilizando as abordagens beaseada em uma
  • Após O Minicurso
Após o minicurso, espera-se que os participantes entendam os conceitos principais sobre computaçcomputaç˜computação em nuvem, redes p2p, bem como, o funcionamento de um sistema de storage utilizando as abordagens beaseada em uma implementaçimplementaç˜implementação de redes p2p overlay.