Anais - SBRC 2014 - Universidade Federal de Santa Catarina
Transcrição
Anais - SBRC 2014 - Universidade Federal de Santa Catarina
Anais IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo Wp2p+ 2014 XXXII Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos 5 a 9 de Maio de 2014 Florianópolis - SC Anais IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo (Wp2p+) Editora Sociedade Brasileira de Computação (SBC) Organizadores Rodolfo da Silva Villaça (UFES) Rafael Pasquini (UFU) Carlos André Guimarães Ferraz (UFPE) Joni da Silva Fraga (UFSC) Frank Siqueira (UFSC) Realização Universidade Federal de Santa Catarina (UFSC) Promoção Sociedade Brasileira de Computação (SBC) Laboratório Nacional de Redes de Computadores (LARC) Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Copyright ©2014 da Sociedade Brasileira de Computação Todos os direitos reservados Capa: Vanessa Umbelino (PostMix) Produção Editorial: Roberto Willrich (UFSC) Cópias Adicionais: Sociedade Brasileira de Computação (SBC) Av. Bento Gonçalves, 9500- Setor 4 - Prédio 43.412 - Sala 219 Bairro Agronomia - CEP 91.509-900 -Porto Alegre- RS Fone: (51) 3308-6835 E-mail: [email protected] Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo (9: 2014: Florianópolis, SC) Anais / Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo; organizado por Rodolfo da Silva Villaça... [et al.] - Porto Alegre: SBC, c2014 166 p. Wp2p+ 2014 Realização: Universidade Federal de Santa Catarina ISSN: 2177-496X 1. Redes de Computadores - Congressos. 2. Sistemas Distribuídos- Congressos. I. Villaça, Rodolfo da Silva. II. Sociedade Brasileira de Computação. III. Título. i Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Promoção Sociedade Brasileira de Computação (SBC) Diretoria Presidente Paulo Roberto Freire Cunha (UFPE) Vice-Presidente Lisandro Zambenedetti Granville (UFRGS) Diretora Administrativa Renata de Matos Galante (UFRGS) Diretor de Finanças Carlos André Guimarães Ferraz (UFPE) Diretor de Eventos e Comissões Especiais Altigran Soares da Silva (UFAM) Diretora de Educação Mirella Moura Moro (UFMG) Diretor de Publicações José Viterbo Filho (UFF) Diretora de Planejamento e Programas Especiais Claudia Lage Rebello da Motta (UFRJ) Diretor de Secretarias Regionais Marcelo Duduchi Feitosa (CEETEPS) Diretor de Divulgação e Marketing Edson Norberto Caceres (UFMS) Diretor de Relações Profissionais Roberto da Silva Bigonha (UFMG) Diretor de Competições Científicas Ricardo de Oliveira Anido (UNICAMP) Diretor de Cooperação com Sociedades Científicas Raimundo José de Araujo Macêdo (UFBA) Diretor de Articulação de Empresas Avelino Francisco Zorzo (PUC-RS) ii Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Promoção Sociedade Brasileira de Computação (SBC) Conselho Mandato 2013-2017 Alfredo Goldman (IME/USP) José Palazzo Moreira de Oliveira (UFRGS) Maria Cristina Ferreira de Oliveira (ICMC/USP) Thais Vasconcelos Batista (UFRN) Wagner Meira Junior (UFMG) Mandato 2011-2015 Ariadne Carvalho (UNICAMP) Carlos Eduardo Ferreira (IME - USP) Jose Carlos Maldonado (ICMC - USP) Luiz Fernando Gomes Soares (PUC-Rio) Marcelo Walter (UFRGS) Suplentes - 2013-2015 Alessandro Fabrício Garcia (PUC-Rio) Aline Maria Santos Andrade (UFBA) Daltro José Nunes (UFRGS) Karin Koogan Breitman (PUC-Rio) Rodolfo Jardim de Azevedo (UNICAMP-IC) iii Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Promoção Laboratório Nacional de Redes de Computadores (LARC) Diretoria 2012-2014 Diretor do Conselho Técnico-Científico Elias P. Duarte Jr. (UFPR) Diretor Executivo Luciano Paschoal Gaspary (UFRGS) Vice-Diretora do Conselho Técnico-Científico Rossana Maria de C. Andrade (UFC) Vice-Diretor Executivo Paulo André da Silva Gonçalves (UFPE) Membros Institucionais SESU/MEC, INPE/MCT, UFRGS, UFMG, UFPE, UFCG (ex-UFPB Campus Campina Grande), UFRJ, USP, PUC-Rio, UNICAMP, LNCC, IME, UFSC, UTFPR, UFC, UFF, UFSCar, CEFET-CE, UFRN, UFES, UFBA, UNIFACS, UECE, UFPR, UFPA, UFAM, UFABC, PUCPR, UFMS, UnB, PUC-RS, UNIRIO, UFS e UFU. iv Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Realização Comitê de Organização Coordenação Geral Joni da Silva Fraga (UFSC) Frank Augusto Siqueira (UFSC) Coordenação do Wp2p+ Rodolfo da Silva Villaça (UFES) Rafael Pasquini (UFU) Coordenação de Workshops Carlos André Guimarães Ferraz (UFPE) v Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Realização Organização Local Carlos Barros Montez (UFSC) Edison Tadeu Lopes Melo (UFSC) Guilherme Eliseu Rhoden (PoP-SC) Leandro Becker (UFSC) Mário A. R. Dantas (UFSC) Michelle Wangham (Univali) Ricardo Felipe Custódio (UFSC) Roberto Willrich (UFSC) Rodrigo Pescador (PoP-SC) Rômulo Silva de Oliveira (UFSC) Secretaria do SBRC 2014 Juliana Clasen (UFSC) Jade Zart (UFSC) vi Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Mensagem do Coordenador de Workshops do SBRC 2014 Confirmando a consolidação nos últimos anos, este ano o Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos (SBRC 2014) apresenta mais uma série de workshops, visando a discussão de temas novos e/ou específicos, como Internet do Futuro e Tolerância a Falhas. Os workshops envolvem comunidades focadas e oferecem oportunidades para discussões mais profundas e ampliação de conhecimentos, envolvendo pesquisadores e muitos estudantes em fase de desenvolvimento de seus trabalhos em andamento. Neste ano tivemos novas submissões, além dos workshops já considerados tradicionais parceiros do SBRC, o que representa o dinamismo da comunidade de Redes de Computadores e Sistemas Distribuídos no Brasil. Infelizmente, estas novas submissões não puderam ainda ser acomodadas, mas certamente serão consideradas para próximas edições do SBRC. Neste SBRC 2014, temos a realização de workshops já consolidados no circuito nacional de divulgação científica nas várias subáreas de Redes de Computadores e Sistemas Distribuídos, como o WGRS (Workshop de Gerência e Operação de Redes e Serviços), o WTF (Workshop de Testes e Tolerância a Falhas), o WCGA (Workshop de Computação em Clouds e Aplicações), o WP2P+ (Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo), o WRA (Workshop de Redes de Acesso em Banda Larga), o WoCCES (Workshop of Communication in Critical Embedded Systems), o WoSiDA (Workshop on Autonomic Distributed Systems) e o WPEIF (Workshop de Pesquisa Experimental da Internet do Futuro). Há que se mencionar a importante parceria com o WRNP (Workshop da Rede Nacional de Ensino e Pesquisa), que em sua 15a edição, cumpre o importante papel de fazer a ponte entre as comunidades técnica e científica da área. Não tenho dúvida que a qualidade técnica e científica dos workshops se manterá em alta compatível com o SBRC. Agradeço aos Coordenadores Gerais, Joni da Silva Fraga e Frank Siqueira (UFSC), pelo convite para coordenar os workshops do SBRC 2014 e por todo o apoio recebido. Desejo muito sucesso e excelente participação nos Workshops do SBRC 2014! Carlos André Guimarães Ferraz (UFPE) Coordenador de Workshops do SBRC 2014 vii Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Mensagem dos Coordenadores do WP2P+ O Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo (WP2P+ 2014), realizado em conjunto com o 32º Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos (SBRC 2014) em Florianópolis/SC, tem por objetivo atuar como um fórum para apresentações técnicas de pesquisas em andamento e atividades relevantes na área de disseminação de conteúdo cooperativo. Desde 2013 o escopo do WP2P foi ampliado, com a criação do WP2P+, abrindo espaço para trabalhos que apresentem novas metodologias ou que apliquem de forma inovadora métodos existentes para projetar, avaliar e compreender a dinâmica de sistemas essencialmente decentralizados, que agregam grandes quantidades de recursos computacionais distribuídos, dinâmicos ou sociais para a disseminação de conteúdo na Internet. O workshop também procura estabelecer colaborações multi-institucionais e grupos de competência técnico-científica, bem como fortalecer atividades em andamento. O WP2P+ promove a discussão em torno da pesquisa sobre Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo, combinando a apresentação de artigos científicos completos e artigos curtos envolvendo trabalhos possivelmente em andamento (“positioning paper”) centrados nos temas de pesquisa de grupos brasileiros atuantes na área. Este ano foram feitas 16 submissões, sendo 3 artigos curtos e 13 artigos completos. Após um criterioso processo de seleção, realizado por 18 membros no comitê de programa, cada artigo recebeu 3 revisões e os 3 artigos curtos foram aceitos. Dentre os 13 artigos completos, 9 foram aceitos para apresentação. A coordenação do workshop gostaria de agradecer a todos os autores pela apresentação dos trabalhos e contribuições de pesquisa em sistemas de distribuição de conteúdo. Gostaríamos de agradecer, também, todos os revisores e membros do comitê de programa. Adicionalmente gostaríamos de agradecer os apoios da UFES, UFU e SBC. Rodolfo da Silva Villaça (UFES) Rafael Pasquini (UFU) Coordenadores do Wp2p+ 2014 viii Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Comitê de Programa do Wp2p+ Alex Borges Vieira (UFJF) Ana Paula Couto e Silva (UFMG) Antonio Augusto de Aragão Rocha (UFF) Artur Ziviani (LNCC) Carlos Kamienski (UFABC) Christian Esteve Rothemberg (Unicamp) Daniel Figueiredo (UFRJ) Daniel Sadoc Menasche (UFRJ) Fábio Luciano Verdi (UFSCar) Humberto Marques (PUC Minas) Italo Cunha (UFMG) Jussara Almeida (UFMG) Lasaro Jonas Camargo (UFU) Lisandro Z. Granville (UFRGS) Luciano Bernardes de Paula (IFSP) Luis Carlos De Bona (UFPR) Magnos Martinello (UFES) Sidney Lucena (UNIRIO) ix Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Sumário Sessão Técnica 1.......................................................................................................... 1 Análise da Topologia Social do Dropbox Eduardo C. Costa (UFJF), Leonardo C. Costa, Idilio Drago, Alex B. Vieira, Artur Ziviani, Ana Paula C. da Silva e Jussara M. Almeida............................... 3 SimilarityFace: Proposta de Integração entre Redes Sociais e Redes P2P de Compartilhamento de Conteúdo (Artigo Curto) Pablo B. dos Santos (UFES), Rodolfo S. Villaça e Luciano B. de Paula............17 Spammers no Twitter: Quando Contatos Deixam de ser Bem-vindos Hugo F. S. S. M. Barreto (UFRJ), Miguel Elias M. Campista, e Luis Henrique M. K. Costa..................................................................................23 Sessão Técnica 2.......................................................................................................... 37 Extração de Propriedades Sociais em Redes Veiculares Felipe D. da Cunha (UFMG, INRIA), Aline Viana, Thiago Rodrigues, Raquel Mini e Antonio A. F. Loureiro................................................................ 39 Uma Abordagem Multicriterial Utilizando o Método ANP para Análise de Centralidade em Redes Sociais Online Fernanda S. B. de Lemos (UDESC), Rafael G. Vieira e Janine Kniess..............53 Análise de Risco em Redes P2P baseada em KPIs de Colaboração e de Infraestrutura Rafael G. Vieira (UDESC), Omir C. Alves Junior e Adriano Fiorese................ 67 Sessão Técnica 3.......................................................................................................... 81 SNMP Proxy CCN: Uma proposta de arquitetura para gerência de redes orientadas a conteúdo interoperável com sistemas legados Marciel L. Oliveira (UNICAMP) e Christian E. Rothenberg..............................83 Cloud Disk Drive - Uma Abordagem para a Criação de Discos Virtuais de Baixo Custo Utilizando Redes p2p (Artigo Curto) Anderson F. Silva (UFPE), Vinicius C. Garcia, Rodrigo E. Assad e Frederico Durão...................................................................................................97 x Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Sumário HyperDHT - DHT de Um Salto Baseada em Hipercubo Virtual Distribuído Jefferson P. Koppe (UFPR), Luis C. E. de Bona e Elias P. Duarte Jr................ 103 Sessão Técnica 4.......................................................................................................... 117 Towards the Application of WebRTC Peer-to-Peer to Scale Live Video Streaming over the Internet (Artigo Curto) Flávio N. B. Ribeiro (PUC-Rio) e Luiz Fernando G. Soares.............................. 119 S4Q: Um Algoritmo para Seleção de Vizinhos Baseada em QoE para Sistemas P2P de Transmissão de Vídeo Peron R. de Sousa (UFF), Sidney C. de Lucena, Morganna C. Diniz, Antonio A. A. Rocha e Daniel S. Menasche....................................................... 125 Predição de Fluxos em Redes de Computadores Orlando Silva Junior (UFABC), Carlos A. Kamienski e Ana C. Lorena............139 Índice por Autor..........................................................................................................153 xi 32º Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos Florianópolis - SC IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo (Wp2p+) Sessão Técnica 1 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Análise da Topologia Social do Dropbox Eduardo Chinelate Costa1 , Leonardo Chinelate Costa1 , Idilio Drago4 , Alex Borges Vieira1 , Artur Ziviani2 , Ana Paula Couto da Silva3 , Jussara M. Almeida3 ∗ 1 Departamento de Ciência da Computação Universidade Federal de Juiz de Fora (UFJF) – Juiz de Fora – MG 2 Laboratório Nacional de Computação Cientı́fica (LNCC) – Petrópolis – RJ 3 Departamento de Ciência da Computação Universidade Federal de Minas Gerais (UFMG) – Belo Horizonte – MG 4 Politecnico di Torino – Italy {eduardo,leonardocosta}@ice.ufjf.br, [email protected], [email protected] [email protected], {jussara,ana.coutosilva}@dcc.ufmg.br Resumo. Entender a dinâmica do compartilhamento de arquivos em aplicações de armazenamento de dados nas nuvens (cloud storage) é essencial para projetar sistemas que se adequem a diferentes perfis de usuários. Este artigo analisa os padrões de compartilhamento de conteúdo no Dropbox. Considerando os dados fornecidos por mais de 300 voluntários, apresentamos uma análise do comportamento de usuários do Dropbox sob duas novas perspectivas. Por um lado, são analisados os padrões de armazenamento de diferentes tipos de arquivos por cada usuário; por outro, são analisados os padrões de compartilhamento de arquivos por múltiplos usuários e o processo de formação de comunidades em nossa base de dados. Nossos resultados mostram que existem usuários com um grande número de parcerias e que compartilham um grande volume de dados em suas comunidades. Estes resultados representam um primeiro passo na caracterização da rede de compartilhamento do Dropbox, e podem auxiliar no desenvolvimento de soluções de armazenamento em nuvem mais eficazes, como, por exemplo, através da polı́ticas mais eficientes de cache. Abstract. The growing usage of cloud storage on the Internet makes the understanding of file sharing behavior in such applications of prime importance to drive new system developments. This paper presents a first step towards understanding content sharing patterns on Dropbox. By means of a crowd-sourcing experiment that includes more than 300 volunteering users, we analyze the behavior of Dropbox users under two new perspectives. Firstly, we investigate storage patterns of different file types by unique users; secondly, we evaluate how different users share content and how communities are built in our data sample. Our results show that some users build a large number of partnerships, sharing a significant volume of data within their communities. Our results can be exploit in the design of effective cloud storage applications, such as for the definition of more effective cache policies. ∗ Este trabalho é financiado pela CAPES, CNPq, Instituto Nacional de Ciência e Tecnologia para Web (InWeb),FAPERJ, FAPEMIG, e PRPq/UFMG (Auxı́lio a Pesquisa de Doutores Recém-Contratados). 3 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 1. Introdução e Trabalhos Relacionados Compreender o comportamento, o perfil e como os usuários se relacionam entre si em diferentes sistemas e aplicações é importante para definir e projetar novos sistemas capazes de melhor adequar suas funcionalidades a diferentes perfis e às necessidades de seus usuários. Em muitos casos, dada a complexidade do processo de formação de relacionamentos e dos perfis dos usuários, caracterizar e modelar estes sistemas se torna um grande desafio [Figueiredo, 2011]. Vários trabalhos recentes na literatura analisam como os usuários de diversos tipos de aplicações formam suas parcerias e como se comportam ao longo do tempo. Como alguns exemplos, podemos citar redes sociais online [Jin et al., 2013], sistemas colaborativos [Ferreira et al., 2013] e redes Peer-to-Peer (P2P) de compartilhamento de arquivos e vı́deos [Gonçalves et al., 2012, Vieira et al., 2013, Farzad e Rabiee, 2011, Vu et al., 2010]. Considerando as aplicações P2P, que são as mais próximas da aplicação estudada neste artigo, os autores em [Gonçalves et al., 2012] caracterizam a dinâmica da aplicação de transmissão de vı́deo ao vivo SopCast, mostrando que os nodos SopCast podem ser divididos em perfis de centralidade, e que o perfil de um nodo tende a permanecer estável ao longo do tempo. Em [Vieira et al., 2013], novamente o SopCast é analisado, mostrando que a formação da topologia dos usuários é aleatória. Já em [Farzad e Rabiee, 2011], os autores apresentam um modelo analı́tico que considera métricas topológicas, como distribuição de grau, coeficiente de agrupamento e caminho médio, da rede formada pelo protocolo BitTorrent. Dentre os diversos sistemas nos quais é interessante entender o perfil dos usuários e dos relacionamentos estabelecidos entre eles, aplicações de armazenamento em nuvem (cloud storage) vem ganhando grande atenção nos últimos anos. A atenção a esse tipo de aplicação se deve à sua crescente popularidade entre empresas, usuários domésticos e acadêmicos, por ser um mecanismo prático de armazenar e compartilhar dados de forma distribuı́da. Como consequência, o volume de tráfego gerado por essas aplicações tem crescido a uma taxa elevada, fazendo do armazenamento nas nuvens uma das principais aplicações geradoras de carga em algumas redes [Drago, 2013]. Nesse contexto, o Dropbox é atualmente a aplicação mais popular de armazenamento de arquivos em nuvem [Drago et al., 2012]. De fato, estatı́sticas recentes apontam que este sistema trata mais de bilhão de uploads de arquivos por dia.1 Esta crescente popularidade vem motivando vários estudos sobre a arquitetura e sobre a carga neste sistema [Drago et al., 2013a]. Por exemplo, os autores em [Drago et al., 2013b] apresentam uma análise do tipo de dados armazenados pelos usuários do Dropbox, sem considerar a estrutura de sua rede de compartilhamento. Em [Gonçalves et al., 2014], os autores apresentam um modelo do tráfego gerado por usuários do Dropbox. No entanto, esses artigos anteriores não abordam como usuários de aplicações de armazenamento em nuvem se relacionam e compartilham arquivos, bem como as possı́veis implicações da topologia social dos usuários na carga de trabalho desse tipo de sistema de armazenamento. Este artigo analisa os padrões de compartilhamento de conteúdo no Dropbox. A análise é feita sob duas novas perspectivas: por um lado, são analisados os padrões de armazenamento de diferentes tipos de arquivos por cada usuário; por outro, são analisados os padrões de compartilhamento de um mesmo arquivo por múltiplos usuários. Considerando os dados fornecidos por 333 usuários voluntários, os grafos de compartilhamento de 1 https://www.dropbox.com/news/company-info. 4 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ dados e tipos de arquivos são reconstruı́dos, permitindo o estudo do perfil destes usuários. A partir da reconstrução da topologia social dos usuários considerados e da aplicação de conceitos de redes complexas [Newman, 2003, Newman, 2010], observamos alguns aspectos interessantes sobre o compartilhamento de arquivos no Dropbox. Os principais resultados são: • A rede de compartilhamento do Dropbox é muito mais similar às redes sociais clássicas do que às redes P2P de compartilhamento tradicionais. A rede de compartilhamento possui alto coeficiente de clusterização, bem como alta similaridade de parceiros de compartilhamento entre grupos de usuários. Resultados obtidos na análise de redes sociais poderiam, portanto, ser aplicados também à análise do comportamento de usuários do Dropbox. • Usuários da aplicação Dropbox estão organizados em diferentes comunidades, que seguem certa localidade geográfica. Desta forma, polı́ticas de cache podem ser exploradas, diminuindo o atraso para armazenamento e modificação de arquivos nos servidores de arquivos. Nossas contribuições ajudam a entender o comportamento de usuários de aplicações de armazenamento em nuvem. Tal conhecimento pode ajudar no desenvolvimento de aplicações mais eficientes, bem como mecanismos de incentivos a usuários considerados estratégicos. Por exemplo, nossos resultados mostram que alguns usuários na rede de compartilhamento possuem um grande número de parceiros, com os quais compartilham um grande número de arquivos. Caso estes usuários estejam localizados em uma mesma região geográfica, polı́ticas de cache podem explorar estas caracterı́sticas. Adicionalmente, nossos resultados mostram que alguns tipos de arquivos estão presentes em grande número nos repositórios dos usuários. Assim, algoritmos de compressão de dados poderiam ser otimizados para estes arquivos mais populares. Finalmente, o número de usuários avaliados é admissivelmente pequeno considerada a população existente. Porém, esse número é razoável ao se considerar a necessidade de uma ação voluntária dos usuários do sistema para a coleta dos dados necessários ao estudo realizado. Ressaltamos ainda que uma monitoração tão próxima ao usuário, como a realizada em nosso estudo, torna difı́cil um estudo de larga-escala, pois muitos usuários podem hesitar a aderir ao estudo por verem a coleta como um risco de invasão a sua privacidade. De toda forma, a análise desse conjunto de usuários voluntários revela aspectos interessantes que são prováveis de emergir em populações maiores, permitindo um primeiro e original estudo da topologia social em sistemas de armazenamento de arquivos em nuvem, que abre perspectivas promissoras de pesquisa futura. O restante deste artigo está organizado da seguinte forma. A Seção 2 descreve a metodologia de coleta e os dados utilizados para a caracterização da topologia social de usuários do Dropbox. A Seção 3 apresenta os modelos matemáticos aplicados, bem como as métricas utilizadas. A Seção 4 discute os resultados obtidos, considerando a visão global em comunidades da rede de compartilhamento, bem como a visão global da rede de armazenamento. A Seção 5 apresenta as conclusões e os trabalhos futuros. 5 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 2. Base de Dados As redes de compartilhamento analisadas neste artigo foram construı́das a partir de uma coleta de dados realizada nos primeiros dois meses de 2013 com usuários voluntários do Dropbox. A chamada para participação no experimento foi enviada à comunidade acadêmica, através de listas de e-mails da Sociedade Brasileira de Computação, do IEEE, de grupos de pesquisa na União Europeia, entre outras. Ao todo, 333 usuários participaram do experimento. Esses usuários armazenavam no Dropbox, no momento da coleta, cerca de 3 milhões de arquivos, totalizando 1,38 TB. Devido à forma como a chamada para colaboração foi distribuı́da, é seguro afirmar que o perfil dos participantes é majoritariamente acadêmico (isto é, alunos, professores e pesquisadores). Os participantes estão distribuı́dos geograficamente como segue: Brasil (45%), Europa (40%), EUA (7%) e outras localidades (8%). A Figura 1 mostra a localização geográfica aproximada da maioria dos participantes do experimento.2 (a) Usuários no Brasil (b) Usuários na Europa Figura 1. Localização geográfica aproximada dos participantes. O programa de coleta de dados foi desenvolvido em versões nativas para Windows, Mac e Linux, além de uma versão em Java. O programa foi preparado para identificar automaticamente se os usuários voluntários possuem o cliente Dropbox. A partir dos arquivos de configuração do Dropbox, o sistema localiza o diretório inicial sincronizado pelo usuário e, então, o varre recursivamente, coletando caracterı́sticas básicas de todos os arquivos do usuário. Mais precisamente, são coletados de cada arquivo (i) o tamanho, (ii) a extensão, (iii) o tipo MIME, (iv) a data da última alteração e (v) um identificador composto pelos hashes MD5 do nome, dos 8 kB iniciais e dos 8 kB finais do arquivo. Desta forma, arquivos de usuários distintos que possuam o mesmo nome, e os mesmos 8 kB iniciais e finais são considerados réplicas. Uma análise preliminar apresentada em [Drago et al., 2013b] e estendida em [Drago, 2013] mostra que arquivos compartilhando esses 3 campos geralmente possuem o mesmo tamanho e a mesma extensão, o que sugere que a nossa metodologia para identificar réplicas é satisfatória. 2 A localização geográfica foi determinada através do endereço IP dos voluntários e da base de dados MaxMind, disponı́vel em http://www.maxmind.com/ 6 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ A maioria dos voluntários tem um grande volume de dados em seus repositórios, talvez devido ao seu perfil acadêmico. Mais de 70% dos voluntários armazena pelo menos 1 GB, e praticamente 9% dos voluntários armazena pelo menos 10 GB. O tamanho médio dos repositórios é 4,23 GB. A Tabela 1 mostra os tipos de arquivos encontrados em maior frequência no Dropbox dos usuários. Os formatos apresentados na Tabela 1 representam aproximadamente 80% dos dados armazenados (em Bytes). Cerca de 12% dos Bytes não tiveram os tipos identificados e são classificados como application/octet-stream. Uma versão anonimizada da base de dados usada neste artigo pode ser obtida de http:// www.simpleweb.org/wiki/Dropbox_Crawler. Tabela 1. Porcentagem de Bytes e arquivos dos tipos MIME mais frequentes no Dropbox dos voluntários. Tipo image/jpeg application/pdf application/octet-stream application/zip text/plain video/mp4 video/quicktime video/3gpp video/x-msvideo application/x-iso9660-image % Bytes 19.6 14.5 12.4 8.3 7.1 5.5 3.4 3.4 2.9 2.7 % arquivos 8.0 6.2 12.7 2.2 30.5 < 0.1 < 0.1 < 0.1 < 0.1 < 0.1 3. Modelos Nesta seção, descrevemos o modelo utilizado para representar o compartilhamento de arquivos entre usuários Dropbox em nossa base de dados. A análise realizada possui duas perspectivas, associadas às principais funcionalidades do Dropbox: armazenamento de arquivos e compartilhamento entre usuários. A partir de modelos matemáticos, queremos verificar se alguns usuários em particular compartilham mais dados entre si, e os tipos de arquivos compartilhados. Tal conhecimento pode guiar decisões de gerenciamento da rede, indicando, por exemplo, se seria viável distribuir a carga de trabalho do sistema de acordo com comunidades especı́ficas de usuários com arquivos em comum. Duas redes diferentes foram modeladas através de grafos não direcionados com pesos nas arestas [Newman, 2003]. O grafo bipartido Ga = (Ua , F, Ea ) considera todos os usuários voluntários e os respectivos dados armazenados em seus repositórios individuais. Os nodos do grafo Ga podem ser divididos em dois conjuntos disjuntos: o conjunto de todos os usuários da amostra Ua e o conjunto das extensões de arquivos armazenados e/ou compartilhados F , com |F | = 3.600 elementos.3 Cada aresta i no conjunto Ea conecta um nodo em Ua a um nodo em F e possui um peso wi . Este peso representa o total de arquivos de um determinado tipo que o usuário possui em sua conta Dropbox. Assim, um usuário Dropbox u está conectado a um tipo de arquivo f se este possui em seu Dropbox pelo menos um arquivo com a extensão f . O total de nodos em Ga é de 3.933 e o total de conexões 28.883. 3 Notar que apesar do alto número de extensões diferentes na amostra, a maior parte dos arquivos estão concentrados em alguns tipos mais frequentes, como pode ser inferido a partir da Tabela 1. 7 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Para avaliar como os usuários compartilham arquivos, o grafo Gc = (Uc , Ec ) é definido, representando a rede de compartilhamento de arquivos entre usuários distintos. O conjunto Uc ⊆ Ua é formado por usuários que compartilham pelo menos um arquivo. Ec é o conjunto de arestas entre dois usuários em Uc . Se a aresta u − v existe para um par (u, v), u e v são denominados parceiros de compartilhamento e possuem pelo menos um arquivo em comum nos seus respectivos repositórios Dropbox. Cada aresta do grafo possui um peso wj , que é o total de arquivos compartilhados entre os usuários u e v. A cardinalidade de Uc , |Uc |, é igual a 107 em nossa amostra. Ou seja, do total de 333 voluntários que participaram do experimento, 107 compartilham pelo menos um arquivo com outro usuário pertencente ao espaço amostral da coleta. O total de nodos em Gc é, portanto, igual a 107 e existem 1.665 arestas em Ec . Como esperado, o grafo Gc não é conectado, dado que o compartilhamento de arquivos acontece entre indivı́duos que possuam algum tipo relacionamento social (amizade, trabalho, etc.), ou que possuam conteúdo popular em seu Dropbox (por exemplo, o último episódio de uma série de TV, ou um clipe recém lançado de uma banda). Existem 5 componentes no total em Gc , com o componente gigante formado por 83 nodos. A Figura 2 sumariza os grafos obtidos. No grafo Ga (Figura 2(a)), o tamanho dos nodos é proporcional ao grau. Nodos da cor azul representam os tipos de arquivos encontrados nos repositórios dos usuários. Usuários são representados por nodos da cor vermelha. É possı́vel verificar, por exemplo, a existência de usuários com uma grande diversidade de arquivos em seus repositórios. Alguns nodos que representam as extensões de arquivos se destacam, mostrando que estes tipos são populares nas contas caracterizadas. A espessura das arestas é proporcional ao total de arquivos de uma extensão em particular que o usuário possui em seu repositório. No caso do grafo Gc (Figura 2(b)), o tamanho dos nodos é proporcional ao número total de parceiros de compartilhamento do usuário, enquanto a espessura das arestas é proporcional ao total de arquivos compartilhados entre dois usuários distintos. Pode-se observar a existência de usuários que compartilham um grande número de arquivos (nodos em azul) e que estes formam um cluster de compartilhamento mútuo. Além disso, alguns usuários compartilham dados com um número pequeno de parceiros, e se encontram na periferia da rede. Conforme esperado, os diferentes componentes do grafo são claramente representados. 3.1. Propriedades Avaliadas Métricas topológicas são definidas como medidas baseadas em atributos estruturais de um grafo, podendo considerar cada nodo individualmente ou o grafo completo. Nesta seção, apresentamos a definição das métricas topológicas utilizadas para caracterizar os usuários e as comunidades encontradas em nossa base de dados. Além de métricas clássicas, como o Grau, o Diâmetro e o Coeficiente de Agrupamento, foram definidas também métricas complementares especı́ficas ao problema estudado, como descrito a seguir. (1) Grau: O grau de um nodo v é definido como o total de arestas incidentes a este nodo. No caso do grafo da Figura 2(b), a distribuição do grau pode mostrar se usuários compartilham arquivos com muitos parceiros, ou se os relacionamentos são em sua maioria individualizados. Grandes comunidades compartilhando arquivos em uma região geográfica podem favorecer, por exemplo, a implantação de estratégias de cache e distribuição de conteúdo. Desta forma, a partir do grau de um nodo v, podemos definir a intensidade de 8 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ (a) Usuários e Tipos de Arquivos (b) Usuários e Compartilhamentos Figura 2. Grafos de armazenamento Ga (a) e de compartilhamento Gc (b). parceria v como o total de parceiros com os quais v compartilha um ou mais arquivos. Assim, quanto maior o grau de um nodo, maior a sua intensidade de parceria. (2) Diâmetro: Seja l(u, v) o caminho mais curto entre u e v. O diâmetro, d, é definido como o maior caminho mais curto entre qualquer par de nodos do grafo: d(G) = max∀(u,v)∈V l(u, v). Para o grafo de compartilhamento Gc , o diâmetro é calculado considerando o componente gigante. O valor do diâmetro reflete o grau de dispersão dos nodos do grafo G. O valor do diâmetro combinado ao valor do coeficiente de agrupamento (descrito a seguir) pode revelar se a rede de compartilhamento segue caracterı́sticas small-world, como diversas outras redes sociais estudas na literatura [Newman, 2003, David e Jon, 2010]. (3) Coeficiente de Agrupamento: O coeficiente de agrupamento (clustering coefficient) de um nodo v – chamado cc(v) – é definido como sendo a razão entre a quantidade de arestas existentes entre os vizinhos de v e o número máximo de arestas possı́veis entre os vizinhos de v. O coeficiente de agrupamento de um grafo é calculado como a média dos valores de cc de todos os nodos. Ou seja, esta métrica reflete a formação de triângulos na rede. No caso da rede de compartilhamento, a presença de uma grande quantidade de triângulos significa que o compartilhamento de informações é feito entre parceiros em comum. O alto nı́vel de agrupamento é uma caracterı́stica presente em redes sociais [David e Jon, 2010], onde pares de amigos tipicamente possuem amigos em comum. (4) Diversidade de Conteúdo: Esta medida está relacionada aos usuários no grafo bipartido Ga e ao grau destes nodos. A métrica indica a diversidade de tipos de arquivos na pasta dos usuários: se o grau dos nodos do conjunto Ua é elevado, a diversidade será elevada, mostrando que os usuários possuem diferentes tipos de arquivos em suas contas. Essa métrica pode indicar se o Dropbox é predominantemente usado para o compartilhamento de tipos particulares de arquivos e, portanto, poderia ser otimizado para tal. 9 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ (5) Popularidade dos Tipos de Arquivos: Para caracterização das comunidades de usuários Dropbox, é interessante verificar os tipos de arquivos que eles armazenam e compartilham. Dado o grafo bipartido Ga , a popularidade é definida como sendo a distribuição de probabilidades dos pesos das arestas que ligam os nodos usuários aos nodos que representam as extensões dos arquivos. Esta métrica permite avaliar se todos os usuários dão a mesma preferência a determinadas extensões de arquivos, como sugerido pela Tabela 1. A partir da informação das extensões mais populares, podemos definir classes de usuários que tendem a estabelecer parcerias por similaridade de conteúdo. (6) Intensidade de Compartilhamento de Arquivos: Esta métrica está relacionada aos nodos pertencentes ao grafo Gc e aos pesos das arestas que saem de cada nodo v ∈ Gc . Assim, podemos dizer que os pares de usuários que possuem pesos menores nas arestas que os ligam possuem uma baixa intensidade de compartilhamento. Similarmente, podemos dizer que os pares de usuários que possuem pesos maiores nas arestas que os ligam possuem uma alta intensidade de compartilhamento. Esta métrica captura se os usuários compartilham arquivos igualmente entre si, ou se existem usuários que tendem a compartilhar mais os seus dados com outros usuários da rede. (7) Similaridade entre Parceiros: A similaridade entre parceiros de compartilhamento pode ser definida de várias formas. Por limitações de espaço, aqui consideramos apenas duas definições: similaridade de extensões de arquivos e de parcerias. Sejam dois nodos u e v vizinhos no grafo Gc , ou seja, que compartilham entre si pelo menos um arquivo. A similaridade de extensões de arquivos entre u e v é calculada a partir da interseção dos tipos de arquivos no Dropbox de u e v. Esta medida de similaridade captura se usuários que compartilham conteúdo tendem a ter os mesmos tipos de arquivos em suas respectivas contas. A similaridade de parcerias, por outro lado, é definida a partir do total de parceiros em comum de um par de nodos em Gc . Para o cálculo destes dois tipos de similaridade, utilizamos o coeficiente de Jaccard.4 A avaliação destas métricas nos grafos definidos pode revelar o agrupamento de usuários em comunidades, refletindo interesses em comum, colaboradores, entre outras caracterı́sticas. Além disso, analisamos também essas métricas em relação à localização geográfica dos usuários que compartilham arquivos. A seguir, discutimos os resultados obtidos nessas análises. 4. Resultados 4.1. Visão Global da Rede de Armazenamento Primeiramente, avaliamos o perfil de armazenamento de todos os voluntários que participaram da coleta de dados. A Figura 3(a) apresenta a diversidade de conteúdo (Métrica 4) nos repositórios dos usuários participantes do nosso experimento. Nota-se que os usuários possuem arquivos diferenciados em suas contas. Aproximadamente 31% dos usuários possuem mais de 100 extensões diferentes de arquivos. 50% dos usuários possuem até 65 extensões de arquivos armazenados. O usuário com maior diversidade de conteúdo possui aproximadamente 500 extensões de arquivos diferentes. Em termos da popularidade dos tipos de arquivos (Métrica 5), a Figura 3(b) mostra que os pesos das arestas que ligam 4 Considerando os elementos dos conjuntos C1 e C2 , o coeficiente de Jaccard J é definido como J = (C1 ∩ C2 )/(C1 ∪ C2 ). 10 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 0 0 10 P[Popularidade >= p] P[Arquivos >= a] 10 10−1 −2 10 10−3 0 10 1 10 10 Tipos de Arquivos(a) 10−1 10−2 2 (a) Diversidade de Conteúdo 100 101 102 103 104 Popularidade(p) 105 (b) Popularidade dos Tipos de Arquivos Figura 3. Extensões e Popularidade dos Tipos de Arquivos Armazenados usuários a tipos de arquivos no grafo Ga seguem uma distribuição de lei de potência. Ou seja, existem poucas extensões de arquivos armazenadas nos repositórios dos usuários que possuem grande popularidade. As categorias com maior quantidade de arquivos são imagens (544.322 arquivos) e documentos de texto (1.386.373 arquivos). 4.2. Visão Global da Rede de Compartilhamento Nesta seção, analisamos as caracterı́sticas globais da rede de compartilhamento Gc . Descrevemos primeiramente a distribuição do grau. Como discutido na seção anterior, a distribuição do grau do grafo Gc nos fornece a intensidade de parceria entre usuários. A Figura 4(a) mostra a quantidade de parcerias em nossa base. A figura mostra que alguns usuários possuem um número elevado de parceiros de compartilhamento de arquivos. Embora a maior parte dos voluntários tenha poucos parceiros, o que é esperado dado o tamanho relativamente pequeno da amostra, um número significativo de voluntários possui mais de 10 parceiros, com alguns exemplos compartilhando arquivos com mais de 50 parceiros. Diretamente relacionada à intensidade de parceria, está a intensidade de compartilhamento de arquivos (Métrica 6), que indica se os usuários, ao compartilharem uma pasta Dropbox com um parceiro, compartilham ou não uma grande quantidade de arquivos. A Figura 4(b) mostra que 20% dos pares de usuários compartilham mais de 388 arquivos. Mais ainda, alguns usuários (aproximadamente 5%) possuem pares com os quais compartilham uma grande quantidade de dados (mais de 950 arquivos). Estes pares de usuários em nossa base podem representar, por exemplo, pesquisadores participantes de um mesmo projeto de pesquisa, ou estudantes que compartilham material didático de disciplinas.5 A seguir, avaliamos o diâmetro e o coeficiente de agrupamento (Métricas 2 e 3 na Seção 3). Com esta análise, podemos especular, por exemplo, se a rede de compartilhamento do Dropbox possui propriedades similares às de uma rede social. O diâmetro da rede de compartilhamento Gc é igual a 4 e o seu coeficiente de agrupamento é igual a 0, 79. O alto coeficiente de agrupamento indica que pares de colaboradores tendem a possuir um grande número colaboradores em comum. Esta caracterı́stica segue uma 5 Vale ressaltar que não é possı́vel obter os relacionamentos reais entre os usuários, p.ex, alunos em uma mesma disciplina, já que as identidades dos usuários estão anonimizadas nos logs. 11 P[Parceiros >= p] 10 P[Arquivos Compartilhados >= s] Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 0 −1 10 10−2 100 1 10 Parceiros(p) 2 10 (a) Intensidade de Parceria 0 10 10−1 10−2 100 101 102 Arquivos Compartilhados(s) 103 (b) Intensidade de Compartilhamento Figura 4. Perfil dos Usuários que Compartilham Arquivos. das caracterı́sticas principais de redes sociais, onde um grande número de triângulos são estabelecidos. Para fins de comparação, uma rede aleatória construı́da preservando o número total de nodos e o grau médio do grafo Gc tem coeficiente de agrupamento igual a 0,29 e diâmetro 2. Como outro exemplo, redes P2P de transmissão de vı́deo ao vivo, como o SopCast, possuem uma natureza aleatória de formação de parcerias e, logo, tem um coeficiente de agrupamento com valores entre 0,12 e 0,32, como mostrado em [Gonçalves et al., 2012]. Isso sugere que a rede de compartilhamento do Dropbox é muito mais similar às rede sociais clássicas do que às redes P2P. Resultados obtidos na análise de redes sociais poderiam, portanto, ser aplicados também à análise do comportamento de usuários do Dropbox. Em redes sociais, as ligações entre pessoas tendem a ocorrer pela propriedade de homofilia, isto é, pessoas tendem a se conectar devido a caracterı́sticas em comum, tais como gênero, faixa etária e renda [Easley e Kleinberg, 2010]. Uma maneira de estudar esta propriedade entre usuários da rede de compartilhamento é verificando a similaridade entre parceiros. Seguindo as duas versões da Métrica 7 discutidas na seção anterior, verificamos se existe similaridade (i) entre os arquivos armazenados em contas de pares de usuários que compartilham arquivos entre si; (ii) entre os parceiros desses pares de usuários. A Figura 5 mostra a similaridade de extensões de arquivos e de parcerias. Notar que apenas um número desprezı́vel (0,006%) dos valores de similaridade de extensões de arquivos estão acima de 0,6. A baixa similaridade nesta versão da métrica é esperada, dado que o armazenamento de um determinado tipo de arquivo parece não estar diretamente ligado ao perfil social dos usuários. No entanto, considerando a versão da métrica que leva em conta a similaridade de parcerias, o ı́ndice atinge nı́veis elevados, justamente devido aos relacionamentos sociais dos voluntários, com ≈ 20% dos valores de similaridades acima de 0,6. Este resultado fornece indı́cios de uma formação topológica que segue relacionamentos sociais, sejam eles baseados em parcerias acadêmicas (co-autoria de artigos, por exemplo), ou participação em projetos de pesquisa. 4.3. Comunidades da Rede de Compartilhamento A análise da existência de comunidades em redes de compartilhamento de arquivos é interessante para revelar grupos de usuários com maior interação entre si. Tal análise pode revelar também se estes grupos possuem alguma similaridade de conteúdo compartilhado, assim como outras caracterı́sticas, como a sua localização geográfica. Encontrar comu- 12 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 1 Extensões Parcerias P[Índice >= k] 0.8 0.6 0.4 0.2 0 0 0.2 0.4 0.6 0.8 Índice de Similaridade (k) 1 Figura 5. Distribuição da Similaridade de Extensões e Parcerias. nidades cujos membros tendem a compartilhar mais arquivos entre si pode auxiliar em polı́ticas de cache e distribuição geográfica do serviço, diminuindo o atraso para acessar ou enviar modificações recentes em arquivos compartilhados. A análise de comunidades foi realizada no componente gigante da rede de compartilhamento Gc (dado que ≈ 78% dos voluntários do experimento estão neste componente) aplicando o algoritmo FastGreedy [Clauset et al., 2004]. Este algoritmo permite atribuir pesos às arestas que ligam os nodos da rede, e os grupos de nodos são definidos com base nos pesos das arestas. Assim, usuários que possuem uma intensidade maior de compartilhamento de arquivos foram agrupados em uma determinada comunidade. Foram encontradas 6 comunidades, cada uma com 49, 13, 8, 5, 6 e 2 usuários, respectivamente. A Tabela 2 apresenta, detalhadamente, a localização geográfica dos usuários das comunidades (obtidas através dos respectivos endereços IP). Por exemplo, considerando a comunidade com 49 usuários, 63% de seus componentes encontram-se no Brasil. Desta forma, polı́ticas de cache podem ser exploradas, diminuindo o atraso para armazenamento e modificação de arquivos nos servidores de arquivos. No entanto, vale ressaltar que os benefı́cios das polı́ticas de cache podem ser limitados, pois também podemos notar que existem fortes ligações de compartilhamento entre usuários em diferentes paı́ses. Tabela 2. Comunidades e Localização Geográfica dos Usuários. Comunidade 1 2 3 4 5 6 Paı́ses (Número de Usuários) Bélgica (1), Alemanha (1), Croácia (1), Portugal (1), Estados Unidos (1), Áustria (2), Dinamarca (2), Holanda (3), Itália (6), Brasil (31) Finlândia (1), Itália (3), Brasil (9) Itália (2),Brasil (6) Itália (1), Brasil (5) Brasil (1), Alemanha (2), Polônia (2) Brasil (2) Total 49 13 8 6 5 2 A seguir serão analisadas as Comunidades 1 e 2, dado que elas possuem o maior número de usuários. As Figuras 6 e 7 mostram os perfis destes usuários em termos de intensidade de parceria e de compartilhamento. Seguindo a mesma tendência da rede global de compartilhamento, nas duas comunidades consideradas há um pequeno número de 13 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ usuários com maior número de parceiros e que compartilham um alto número de arquivos. É interessante notar que os usuários da Comunidade 2 tendem a compartilhar mais arquivos com outros usuários da mesma comunidade: 20% dos usuários da Comunidade 2 compartilham mais de ≈ 340 arquivos, contra ≈ 150 na Comunidade 1 (ver Figura 7). Este resultado indica que comunidades tendem a ter caracterı́sticas diferentes. Estas particularidades podem ser utilizadas para implementações de aplicações de compartilhamento e armazenamento eficientes para diferentes perfis de grupos de usuários. 0 0 10 P[Parceiros >= p] P[Parceiros >= p] 10 10−1 −2 10 100 10−1 −2 10 101 Parceiros (p) 100 101 Parceiros (p) (a) Comunidade 1. (b) Comunidade 2. 10 P[Arquivos Compartilhados >= s] P[Arquivos Compartilhados >= s] Figura 6. Intensidade de Parceria nas Comunidades. 0 10−1 100 101 102 Arquivos Compartilhados (s) (a) Comunidade 1. 0 10 −1 10 100 101 102 Arquivos Compartilhados (s) (b) Comunidade 2. Figura 7. Intensidade de Compartilhamento nas Comunidades. É também interessante verificar se, além de agregar usuários que intensamente compartilham arquivos entre si, a estrutura em comunidades agrupa usuários com um maior grau de similaridade. A Figura 8 mostra as similaridades de extensões de arquivos e de parcerias das comunidades com 49 e 13 usuários. Para a Comunidade 1, 29,4% dos valores de similaridades de parceria estão acima de 0,6. Já para a Comunidade 2, existe uma maior sobreposição de parceiros que compartilham os mesmos arquivos: 46, 1% dos valores de similaridade de parcerias estão acima de 0,6. O valor máximo da similaridade de extensões de arquivos encontrado foi de aproximadamente 0,4. 5. Conclusões e Trabalhos Futuros Este artigo apresentou uma análise das caracterı́sticas das redes de compartilhamento e armazenamento do Dropbox a partir de dados dos repositórios de 333 voluntários de diferentes paı́ses. Foram reconstruı́das a topologia de compartilhamento entre os usuários e dos tipos de arquivos armazenados. 14 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 1 0.6 0.4 0.2 0 Extensões Parcerias 0.8 P[Índice >= k] 0.8 P[Índice >= k] 1 Extensões Parcerias 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 Índice de Similaridade (k) 0 1 (a) Comunidade 1 0 0.2 0.4 0.6 0.8 Índice de Similaridade (k) 1 (b) Comunidade 2 Figura 8. Similaridade de Extensões e Parcerias nas Comunidades. Como principais resultados encontrados podemos citar que a rede de compartilhamento do Dropbox é muito mais similar às redes sociais clássicas do que às redes P2P de compartilhamento tradicionais, possuindo um alto coeficiente de clusterização, bem como similaridade de parceiros de compartilhamento entre grupos de usuários. Adicionalmente, usuários da aplicação Dropbox estão organizados em diferentes comunidades, que seguem certa localidade geográfica e possuem diferentes nı́veis de intensidade de compartilhamento. A análise apresentada neste artigo revela aspectos interessantes que são prováveis de emergir em populações maiores de usuários de aplicações de compartilhamento e armazenamento em nuvem. Assim, uma extensão natural deste trabalho é realizar experimentos com um maior número de usuários, em diferentes comunidades cientı́ficas e não-cientı́ficas. Estes experimentos poderiam ser realizados através de aplicativos distribuı́dos via redes sociais, por exemplo. No entanto, as questões inerentes a privacidade dos usuários em coletas de dados similares as deste artigo, porém em larga-escala, ainda estão em aberto, e deverão ser abordadas em nossos trabalhos futuros. Referências Clauset, A., Newman, M. E. J., e Moore, C. (2004). Finding community structure in very large networks. Physical Review, 70(6):066111:1–066111:6. David, E. e Jon, K. (2010). Networks, Crowds, and Markets: Reasoning About a Highly Connected World. Cambridge University Press, New York, NY, USA. Drago, I. (2013). Understanding and Monitoring Cloud Services. PhD thesis, University of Twente. Drago, I., Bocchi, E., Mellia, M., Slatman, H., e Pras, A. (2013a). Benchmarking personal cloud storage. In Proceedings of the 13th ACM Internet Measurement Conference, IMC’13, pages 205–212. Drago, I., Mellia, M., Munafò, M. M., Sperotto, A., Sadre, R., e Pras, A. (2012). Inside Dropbox: Understanding personal cloud storage services. In Proceedings of the 12th ACM Internet Measurement Conference, IMC’12, pages 481–494. 15 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Drago, I., Vieira, A. B., e da Silva, A. P. C. (2013b). Caracterização dos arquivos armazenados no Dropbox. In Anais do Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo, WP2P+, pages 109–114. Easley, D. e Kleinberg, J. (2010). Networks, Crowds, and Markets: Reasoning About a Highly Connected World. Cambridge University Press, New York, NY, USA, 1 edition. Farzad, A. e Rabiee, H. R. (2011). Modeling topological characteristics of BitTorrentLike peer-to-peer networks. IEEE Communications Letters, 15(8):896–898. Ferreira, W. M., da Silva, A. P. C., Benevenuto, F., e Merschmann, L. H. C. (2013). Comer, comentar e compartilhar: Análise de uma rede de ingredientes e receitas. In Proceedings of the 10th Brazilian Symposium on Collaborative Systems, SBSC’13, pages 120–127. Figueiredo, D. R. (2011). Introdução a redes complexas. In de Souza, A. F. e Meira Jr., W., editors, Atualizações em Informática 2011. PUC-Rio, Rio de Janeiro, RJ, BR, 1 edition. Gonçalves, G., Drago, I., da Silva, A. P. C., Vieira, A. B., e Almeida, J. M. (2014). Modeling the Dropbox client behavior. In To appear in the Proceedings of the International Conference on Communications, ICC’14. Gonçalves, K. C., Vieira, A. B., Almeida, J. M., da Silva, A. P. C., Marques-Neto, H., e Campos, S. V. A. (2012). Characterizing dynamic properties of the SopCast overlay network. In Proceedings of the 20th Euromicro International Conference on Parallel, Distributed and Network-Based Processing, PDP’12, pages 319–326. Jin, L., Chen, Y., Wang, T., Hui, P., e Vasilakos, A. V. (2013). Understanding user behavior in online social networks: A survey. IEEE Communications Magazine, 51(9):144–150. Newman, M. E. J. (2003). The structure and function of complex networks. SIAM Review, 45(2):167–256. Newman, M. E. J. (2010). Networks: An Introduction. Oxford University Press, New York, NY, USA, 1 edition. Vieira, A. B., da Silva, A. P. C., Henrique, F., Gonçalves, G., e de Carvalho Gomes, P. (2013). SopCast P2P live streaming: Live session traces and analysis. In Proceedings of the 4th ACM Multimedia Systems Conference, MMSys’13, pages 125–130. Vu, L., Gupta, I., Nahrstedt, K., e Liang, J. (2010). Understanding overlay characteristics of a large-scale peer-to-peer IPTV system. ACM Transactions on Multimedia Computing, Communications and Applications, 6(4):31:1–31:24. 16 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ SimilarityFace: Proposta de Integração entre Redes Sociais e Redes P2P de Compartilhamento de Conteúdo Pablo Brunetti dos Santos1 , Rodolfo da Silva Villaça1 , Luciano Bernardes de Paula2 1 Universidade do Espirito Santo (UFES) – São Mateus, ES – Brasil 2 Instituto Federal de São Paulo – Bragança Paulista, SP – Brasil [email protected], [email protected] [email protected] Resumo. A integração entre Redes Sociais e as Redes P2P é um tema de grande importância nos dias atuais. Basicamente parte-se da premissa de que usuários com perfis similares são potenciais possuidores de conteúdos de mútuo interesse. Baseando-se em um cenário onde a similaridade entre usuários das redes sociais é obtida através da extração de dados de seus perfis, e que esses perfis podem ser representados por meio de vetores, é possı́vel extrair um grau de similaridade entre os usuários dessas redes. Com base nisso, este trabalho tem como objetivo estabelecer relações em uma rede P2P em função da similaridade existente entre os perfis dos usuários. Como trabalho em andamento, este artigo apresenta resultados preliminares em um protótipo para obtenção desses dados na rede social Facebook e medição da similaridade. 1. Introdução Embora ainda seja responsável por grande parte de todo o tráfego existente na Internet, é notável um declı́nio na utilização de redes Par-a-Par (P2P, do inglês Peer to Peer) para compartilhamento de conteúdo, em especial o BitTorrent [Sandvine 2013]. Podemos citar as dificuldades encontradas pelos usuários na busca por conteúdos de seu interesse como uma das principais causas desse declı́nio. Dentre as redes P2P destaca-se o BitTorrent, cuja caracterı́stica é a ausência de determinismo nas conexões estabelecidas entre os pares participantes da rede. No BitTorrent uma lista de pares (enxame) que possuem um determinado conteúdo (interesse) é escolhida de forma aleatória por um nó rastreador e enviada a um par em resposta à sua solicitação. O par, então, é autônomo ao escolher o subconjunto de pares do enxame com os quais se tentará uma conexão. A topologia resultante dessa escolha influencia no desempenho desse compartilhamento [Guarnieri et al. 2013]. Dentre os caminhos para se melhorar esse desempenho, uma das opções é atuar na seleção dos pares, selecionando aqueles com maior potencial de compartilhamento. Assume-se a hipótese de que usuários com perfis similares em redes sociais são potenciais possuidores de conteúdos de mútuo interesse em redes P2P. Com base nesta premissa, a integração entre redes sociais e redes P2P torna-se uma alternativa interessante. A partir dessa integração será possı́vel escolher os pares com os quais se deseja conectar baseando-se em informações extraı́das dos perfis no Facebook dos usuários dos pares presentes no enxame. Dessa forma, este artigo apresenta a implementação de um protótipo capaz de extrair informações dos perfis dos usuários do Facebook e avaliar a similaridade entre eles. 17 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Esse protótipo será capaz de extrair informações dos perfis dos usuários cadastrados em um aplicativo dessa rede social por meio de qualquer navegador web e, a partir desses dados, modelar vetores que caracterizem os usuários e permitam a medição da similaridade entre eles, utilizando a similaridade do cosseno [Qian et al. 2004]. Essa similaridade será usada, posteriormente, para orientar a seleção dos pares na rede BitTorrent, objetivando-se comprovar a hipótese estabelecida nesse trabalho. A seguir, na Seção 2 serão apresentados alguns trabalhos relacionados. A Seção 3 traz a modelagem do protótipo, seus componentes e as principais decisões de implementação. A Seção 4 traz os principais resultados obtidos até o momento com a implementação do protótipo. A Seção 5 conclui o trabalho e direciona trabalhos futuros. 2. Trabalhos Relacionados Na literatura, uma maneira comum de se caracterizar objetos é através do uso de uma representação vetorial, na qual as dimensões do vetor estão relacionadas a caracterı́sticas desse objeto, tais como: palavras-chave em um texto [Berry et al. 1999], histograma de cores em uma imagem [Kulis and Grauman 2009] ou informações de perfis de usuários em redes sociais [Nayak 2011]. A partir de uma representação vetorial dos perfis em uma rede social como o Facebook, é possı́vel a partir de métricas como o cosseno e a distância Euclideana aferir aqueles mais similares [Qian et al. 2004]. Na Seção 3, serão mostrados exemplos de como fazer essa aplicação e mais detalhes sobre a transformação dos vetores podem ser encontrados em [Villaça et al. 2013]. Guarnieri [Guarnieri et al. 2013] apresenta um estudo que avalia o impacto das redes sociais, particularmente o Facebook, na melhoria da disseminação de dados em redes de compartilhamento de arquivos. Os autores mostram que conteúdos anunciados por redes sociais provocam um aumento no número de pares estáveis no enxame. Zhang [Zhang et al. 2012] investigam como as relações de amizade em redes sociais online podem influenciar o desempenho da troca de dados compartilhados em redes P2P. As avaliações são feitas na rede social Douban1 e o foco da proposta está nos relacionamentos entre os usuários, enquanto neste trabalho o foco está nos perfis dos usuários. 3. SimilarityFace Este trabalho apresenta o SimilarityFace2, um aplicativo capaz de extrair as informações da rede Social Facebook, que disponibiliza a interface Graph API para realização de consultas em seu grafo social. O Facebook foi a rede social escolhida devido à grande quantidade e heterogeneidade de caracterı́sticas dos seus usuários, que estão disponı́veis e podem ser obtidas através de consultas à Graph API. Essa diversidade pode ser utilizada para a geração de diferentes vetores de perfis de usuários com o objetivo de se medir a similaridade entre eles usando-se diferentes caracterı́sticas. O aplicativo SimilarityFace foi desenvolvido usando-se a linguagem de programação Python3, a plataforma de desenvolvimento Google App Engine4, a Graph 1 http://www.douban.com http://www.similarityface.appspot.com 3 https://www.python.org/ 4 https://appengine.google.com/ 2 18 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Figura 1. Módulos do aplicativo SimilarityFace e a comunicação entre eles. API 5 , a linguagem de consulta FQL (Facebook Query Language) e tecnologias de desenvolvimento web. Funciona através de um navegador web, mas também é possı́vel utilizá-lo através de interface de linha de comando. A implementação do aplicativo SimilarityFace foi divida em três módulos: Módulo Facebook, Módulo App Engine e Módulo Visual, conforme ilustrado na Figura 1. Nas subseções seguintes serão apresentados detalhes da implementação de cada módulo. 3.1. Módulo Facebook Esse módulo foi implementado com base nas ferramentas disponibilizadas pelo Facebook. São informações importantes para configurar esse módulo: a URL (Uniform Resource Locator) do aplicativo, o seu nome e as permissões requeridas para realização das consultas no grafo dos usuários. Dentre as permissões de interesse estão informações relevantes para a criação dos vetores de similaridade, tais como: nome, idade, localização corrente, idioma e algumas opções curtir, tais como músicas e vı́deos. O módulo Facebook interage com o módulo App Engine através do estabelecimento de uma permissão de acesso ao aplicativo. Para obtenção de acesso, o Facebook fornece uma chave (access Token) que autoriza o acesso temporário e seguro aos dados dos usuários cadastrados. O access Token inclui informações sobre data de expiração, proprietário e permissões concedidas. 3.2. Módulo App Engine Nesse módulo é feita a implementação do aplicativo na plataforma Google App Engine, que permite a criação e hospedagem de aplicativos na web. Para auxiliar a implementação, o Google App Engine fornece um banco de dados (Datastore) que inclui uma API de modelagem de dados e uma linguagem de consulta GQL (Google Query Language). O Datastore contém a lista dos usuários que se cadastraram no SimilarityFace. A comunicação do App Engine com o Facebook é feita através de comandos FQL enviados sob o protocolo HTTP (Hypertext Transfer Protocol) e cujo retorno está no formato JSON (JavaScript Object Notation). 3.3. Módulo Visual O Módulo Visual corresponde à página do aplicativo, no qual inicialmente o usuário é redirecionado ao Facebook para efetuar o login, caso ele já esteja cadastrado. Se o usuário não estiver cadastrado, é requerido que ele aceite o aplicativo e suas permissões. 5 https://developers.facebook.com/docs/graph-api/ 19 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Figura 2. Banco de Dados no Google App Engine, exibindo somente os campos mais importantes. Uma vez cadastrado, é possı́vel realizar consultas FQL através do navegador. No momento apenas usuários selecionados podem efetuar essas consultas. As informações são recebidas e os resultados podem ser visualizados no navegador, através da interface de linha de comando ou armazenar o resultado da consulta em arquivo texto. 4. Resultados Nesta seção serão apresentados os resultados obtidos com a implementação do aplicativo SimilarityFace. Por se tratar de um trabalho em andamento os resultados atualmente obtidos mostrarão somente a base de dados de usuários do aplicativo, a interface visual para consultas, alguns vetores e suas similaridades. A Figura 2 6 mostra parte do banco de dados do aplicativo com uma amostra de usuários cadastrados no aplicativo. Todos os usuários são armazenados na tabela user, que possui campos como: userid, name, access token, dentre outros. Esses dados podem ser recuperados através de consultas GQL. Em seguida, na Figura 3 6 , mostra-se o resultado de uma consulta FQL no SimilarityFace por informações como nome, sexo, relacionamento, músicas e filmes curtidos de um usuário do Facebook. A partir do Access Token, recuperado no banco de dados, permite-se acesso aos dados do perfil dos usuários bastando informar o seu userid. Como as informações são recebidas pelo navegador web foi necessário criar mecanismos para salvar essas informações. Isso é necessário para a criação do vetor de perfis de usuários que será utilizado para o cálculo da similaridade entre eles. Dessa forma optou-se por criar uma versão do Módulo Visual que permitisse acesso ao aplicativo através de console e linha de comando. A utilização dessa versão permite que os dados das consultas sejam automaticamente armazenados localmente em arquivos texto nos quais são representados os vetores de caracterı́sticas dos usuários. A partir desses vetores pode-se calcular a similaridade entre os perfis. Nas Tabelas 1 e 2 são mostrados dois vetores de perfis obtidos através do aplicativo SimilarityFace e o resultado do cálculo de similaridade usando a métrica do cosseno. Nesse 6 Dados ocultados por razões de privacidade. 20 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Figura 3. Consulta FQL, requisitando os campos nome, sexo, relacionamento, músicas e filmes curtidos por um usuário do aplicativo. exemplo para montagem dos vetores foram selecionadas as seguintes informações: idade, músicas (opções curtir), trabalho, educação, localização atual, naturalidade, idiomas, religião, sexo e relacionamento. Na Tabela 1 tem-se um par de perfis de usuários com similaridade de 94,31% enquanto na Tabela 2 o par de perfis selecionado possui uma similaridade de 18,07%. Campos ID Idade Músicas Perfil 1 1000004069XXXXX 24 BANDA DE MÚSICA GUILHERME BAPTISTA, PARAÍSO COUNTRY Correios Trabalho Educação Naturalidade Localização Atual Idiomas Religião Sexo Relacionamento EEEFM ”GERALDO VARGAS NOGUEIRA ”, Instituto Federal do Espı́rito Santo - IFES Colatina-Espirito Santo-Brazil Colatina-Espirito Santo-Brazil Null Null Masculino Em um relacionamento Perfil 2 1000020890XXXXX Null SUNSET FESTIVAL Viação Pretti, Instituto Federal do Espirito Santo (IFES) - Campus Colatina, Supermercado Salvador, Estagiário EEEFM ”GERALDO VARGAS NOGUEIRA ”, Instituto Federal do Espı́rito Santo - IFES Colatina-Espirito Santo-Brazil Colatina-Espirito Santo-Brazil Null Null Masculino Em um relacionamento Tabela 1. Par de perfis com um grau de similaridade igual a 94,31%. 5. Discussão e Conclusões O artigo descreveu o processo de criação de um aplicativo associado ao Facebook capaz de permitir consultas aos perfis dos usuários dessa rede social. As consultas são feitas através da FQL com base nas informações disponibilizadas pela Graph API e o resultado dessas consultas geram vetores que representam os perfis dos usuários. O objetivo final será a integração entre a rede social Facebook e a rede BitTorrent, o que deve ser realizado nas próximas etapas do projeto. Os resultados parciais apresentados neste artigo mostram que é possı́vel, através de técnicas simples de medição da similaridade entre perfis de usuários, obter uma estimativa coerente do grau similaridade entre eles. Em andamento temos a modelagem de novos 21 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Campos ID Idade Músicas Perfil 1 11639XXXXX 24 LETICIA E CAMILA, KINGS OF LEON, LIFE IS A LOOP Trabalho Educação Ensino fundamental Colégio São José, UNIVALI - Universidade do Vale do Itajaı́ Vacaria - Rio Grande do Sul - Brazil Itapema - Santa Catarina - Brazil Null Null Feminino Em um relacionamento Naturalidade Localização Atual Linguagens Religião Sexo Relacionamento Perfil 2 15758XXXXX 23 TRIO MAR AZUL, PARALAMAS DO SUCESSO, DJAVAN, GUITARGAMER, GABI LUTHAI, 2CELLOS, SERTANEJO UNIVERSITARIO, SYSTEM OF A DOWN, COLDPLAY, RED HOT CHILI PEPPERS Consys Consultoria CEET,E.E. Monsenhor Guilherme Schmitz, Universidade Vila Velha - UVV Vitória - Espirito Santo - Brazil Vila Velha - Espirito Santo -Brazil English,Brazilian Portuguese Null Masculino Solteiro Tabela 2. Par de perfis com um grau de similaridade igual a 18,07%. vetores, de tal forma a obter a aprimorar a caracterização dos usuários no aplicativo. Essa informação de similaridade será utilizada posteriormente para orientar o estabelecimento de contatos e troca de conteúdos entre os usuários da rede BitTorrent. Referências Bibliográficas Berry, M. W., Drmac, Z., Weng, X., and Jessup, E. R. (1999). Matrices, vector spaces, and information retrieval. In SIAM Review,vol. 41,, page 335?362. Guarnieri, T. A., Vieira, A. B., and da Silva, A. P. C. (2013). Impacto das Relações Sociais em Sistemas de Compartilhamento de Arquivo. In WP2P’ 13: Anais do 9o Workshop de Redes Dinâmicas e Sistemas P2P, Brasilia, DF, BR. SBC. Kulis, B. and Grauman, K. (2009). Kernelized locality-sensitive hashing for scalable image search. In IEEE International Conference on Computer Vision, ICCV. IEEE. Nayak, R. (2011). Utilizing Past Relations and User Similarities in a Social Matching System. In Proc. of 15th Pacific-Asia Conference on Advances in Knowledge Discovery and Data Mining, PAKDD’11, pages 99–110, Berlin, Heidelberg. Qian, G., Sural, S., Gu, Y., and Pramanik, S. (2004). Similarity between Euclidean and Cosine Angle Distance for Nearest Neighbor Queries. In Proceedings of 2004 ACM Symposium on Applied Computing, pages 1232–1237. ACM Press. Sandvine (2013). Sandvine - Global Internet Phenomena Report. https://www. sandvine.com/downloads/general/global-internet-phenomena/ 2013/2h-2013-global-internet-phenomena-report.pdf. [Online; Acesso em 9 de março de 2014]. Villaça, R., de Paula, L. B., Pasquini, R., and Magalhães, M. F. (2013). A Similarity Search System Based on the Hamming Distance of Social Profiles. In Proc. of the 7th IEEE International Conference on Semantic Computing, ICSC ’13. IEEE. Zhang, H., Liu, B., Weng, X., and Yu, C. (2012). Can Online Social Friends Help to Improve Data Swarming Performance? In Computer Communications and Networks (ICCCN), 2012 21st International Conference on, pages 1–7. 22 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Spammers no Twitter: Quando Contatos Deixam de ser Bem-vindos Hugo F. S. S. M. Barreto, Miguel Elias M. Campista e Luís Henrique M. K. Costa ∗ 1 Grupo de Teleinformática e Automação PEE/COPPE - DEL/POLI Universidade Federal do Rio de Janeiro {sadok,miguel,luish}@gta.ufrj.br Resumo. O crescimento das redes sociais vem acompanhado de diversos problemas de privacidade e exposição a conteúdos indesejados. Principalmente no Twitter, os spams são frequentes e, mesmo com um combate intensivo, o problema persiste. As ferramentas de combate são, em sua maioria, baseadas em mecanismos de verificação de e-mail que focam na análise do conteúdo das mensagens. No entanto, esta verificação nem sempre é efetiva em redes sociais já que estas são também compostas por relações de amizade entre usuários. Este trabalho propõe uma abordagem que leva em conta essas relações e as modela como conexões de um grafo. Diferentes características são verificadas com o uso de métricas como a distribuição de grau e o coeficiente de agrupamento. A partir da aplicação do método proposto, é possível notar um comportamento diferenciado da distribuição de grau dos spammers, contrariando a regra de potência esperada para os usuários legítimos. Abstract. The growth in social networks comes with lots of privacy issues and unsolicited content exposition. Mostly on Twitter, spammers are very common and, even with an intensive combat, the problem remains. The combat tools are, based primarily on email inspection mechanisms that focus on content analysis. Nevertheless, this inspection may not always be very effective in a social network context because they are also formed by relationship between users. In this paper, we propose a different approach that considers those relationships and use them as connections in a graph model. Different patterns are observed using metrics such as degree distribution and clustering coefficient. From this approach, it is possible to notice some different behaviors in spammers’ degree distribution, which opposes to the power law expected for the legitimate users. 1. Introdução As mensagens não solicitadas, chamadas de spams, se tornaram comuns nas aplicações de correio eletrônico (e-mail) a partir de meados da década de 90 com a popularização da Internet. Infelizmente, a prática era incentivada pois mesmo uma pequena parcela de spams respondidos já era suficiente para grandes retornos financeiros. Apesar dos inúmeros sistemas anti-spam, as técnicas utilizadas ainda não são totalmente eficazes, fazendo com que o problema persista e estimule novas variantes. Uma delas está presente ∗ Este trabalho foi parcialmente financiado pela CAPES, CNPq, FAPERJ e FINEP. 23 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ no contexto das redes sociais online, que também lidam com mensagens entre usuários e por isso se tornaram um alvo em potencial. Para se ter uma ideia, o número de usuários maliciosos, chamados de spammers, já representa mais de 3% dos usuários das redes sociais [Thomas et al., 2011]. Os alvos preferidos dos spammers nas redes sociais são o Facebook e o Twitter. A preferência é consequência da popularidade dessas redes que lideram as estatísticas mundiais. Atualmente, o Facebook possui mais de 1 bilhão de usuários, enquanto o Twitter tem mais de 500 milhões. Apesar desses números mostrarem que o Facebook é a rede social mais usada no mundo, Stringhini et al. verificaram que o Twitter é mais vulnerável à adição de contas armadilhas, que são contas que imitam um usuário real a espera de uma interação com usuários spammers. Enquanto no Facebook somente 4,5% das requisições de amizade são originadas por spammers; no Twitter, 90% são realizadas por esse tipo de usuário [Stringhini et al., 2010]. Na literatura, há estudos sobre o Twitter que focam somente no comportamento dos usuários legítimos [Kwak et al., 2010] assim como há estudos que consideram a presença de spammers [Benevenuto et al., 2010, Stringhini et al., 2010, Thomas et al., 2011, Messias et al., 2013] e de um mercado de seguidores [Stringhini et al., 2013, Thomas et al., 2013]. As abordagens, no entanto, para detecção de spammers no Twitter se baseiam tipicamente no conteúdo das mensagens e nos atributos mais simples dos usuários, como o número de amigos e a idade da conta. Essas abordagens podem ser aprimoradas, pois deixam de fora características importantes de inter-relacionamento entre os usuários. Este trabalho trata os usuários spammers de forma diferenciada, já que aproveita as interações de amizade entre eles com o resto da rede. A abordagem proposta contribui para uma detecção mais acurada dos usuários mal intencionados ao envolver fatores mais difíceis de serem manipulados. Para que seja possível a análise dessas interações, o Twitter é modelado como um grafo direcionado, sendo que cada usuário é representado por um vértice e cada relação entre usuários é representada por uma aresta. A partir desse modelo, é possível obter e analisar a vizinhança de cada usuário. Intuitivamente, esperase que os usuários com maior número de vizinhos sejam suspeitos visto que quanto maior o número de seguidores, maior é a difusão das mensagens. A vizinhança de um usuário é então investigada para verificar a existência de algum tipo de agrupamento entre spammers e se a popularidade também segue o mesmo padrão dos usuários legítimos. Para isso, faz-se o uso de métricas de distribuição de grau, centralidade de grau, coeficiente de agrupamento e PageRank. Os resultados obtidos a partir de traços reais de dados permitem notar padrões decisivos na distinção entre os dois tipos de usuários, legítimos e maliciosos. Foi verificado que o comportamento artificial dos spammers faz com que a sua centralidade de grau também siga um comportamento não natural. Também foi verificado que, da mesma forma que os usuários legítimos, os spammers apresentam usuários com coeficiente de agrupamento considerável na sua vizinhança. Este trabalho está organizado da seguinte forma: A Seção 2 introduz os conceitos básicos do Twitter. A Seção 3 apresenta os spammers do Twitter e algumas de suas táticas. A Seção 4 descreve a modelagem proposta neste trabalho para o Twitter e define 24 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ a rede de entorno dos usuários. A Seção 5 detalha a metodologia empregada para detectar spammers. A Seção 6 mostra os spammers e usuários legítimos usados. A Seção 7 apresenta os resultados obtidos para os spammers e usuários legítimos. A Seção 8 discute formas de avaliar os usuários automaticamente com base nos resultados da seção anterior. Finalmente, a Seção 9 conclui este trabalho e apresenta os trabalhos futuros. 2. A Dinâmica do Twitter O Twitter é uma rede social simples se comparada ao Facebook. Essa rede funciona como um microblog onde cada usuário posta mensagens com no máximo 140 caracteres, denominadas “tweets”. No Twitter, os usuários possuem interações unidirecionais, ou seja, um usuário pode seguir outros ou ser seguido. Como essa dupla interação não é obrigatória, isso torna a rede direcionada. As interações do Twitter são denominadas como interações entre amigos e seguidores. Os amigos são todas as contas que determinado usuário segue, enquanto os seguidores são as contas que seguem tal usuário. • • • • • Alguns outros aspectos importantes do Twitter são apresentados abaixo: Feed: O feed é onde o usuário vê as últimas atualizações dos usuários que escolheu seguir. Tópicos populares: Tópicos representados por palavras ou frases que aparecem com uma frequência maior na rede em um determinado momento. Tais tópicos são muitas vezes precedidos por um hashtag “#”, que é uma convenção entre os usuários para se referir ao mesmo assunto. Esse tópicos são também chamados de “trending topics” do Twitter. Menções: Independentemente das relações amigo/seguidor, um usuário do Twitter pode fazer menção a outro em suas mensagens precedendo o nome dele com um caractere “@”. Ao ser mencionado em uma mensagem, o usuário tem a mensagem exibida em seu próprio microblog. Retweets: O Twitter permite que uma determinada mensagem de um usuário seja duplicada por outros que se interessarem. A mensagem então é exibida no microblog do usuário que a duplicou sem perder a referência à mensagem original. Busca: Os aspectos listados acima fazem ainda mais sentido quando são acessados pela busca. Um usuário que esteja interessado em um tópico pode realizar uma busca pelo tópico e, assim, visualizar todas as últimas mensagens relacionadas na rede. No Twitter, a visualização de mensagens depende da relação amigo/seguidor estabelecida entre os usuários. Isso porque cada usuário terá em seu feed as mensagens dos seus amigos. Consequentemente, ele somente tem suas próprias mensagens exibidas no feed de seus respectivos seguidores. Note que essa característica requer o estabelecimento prévio de relação social entre usuários como forma de filtragem de mensagens não desejadas no seu próprio feed. Portanto, caso o usuário queira ter suas mensagens visualizadas por muitos usuários, ele deve garantir a existência de muitos seguidores para si. Essa última característica é explorada neste trabalho, conforme explicada na Seção 5. 3. Spam e Análise de Spams no Twitter No Twitter, da mesma forma que no e-mail, um spam é uma mensagem não solicitada com objetivo variado que pode ser propaganda, propagação de um vírus ou a apli- 25 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ cação de um golpe no usuário final [Taveira et al., 2008]. Os usuários que enviam spam, os chamados spammers, se aproveitam dos mecanismos de interações unidirecionais do Twitter, e de seus diversos aspectos definidos anteriormente na Seção 2, para difundir suas mensagens. Um determinado spammer pode acrescentar um termo popular às suas mensagens para que estas sejam exibidas aos usuários que buscarem esses termos. Outra abordagem usada pelos spammers, mais agressiva e portanto mais facilmente reconhecida pelo Twitter, é mencionar usuários em seus spams. Nesse caso, o Twitter disponibiliza meios para que os usuários mencionados possam facilmente denunciar o spammer agressor. Alguns spammers ainda optam por seguir usuários legítimos na esperança de serem seguidos de volta. Sendo assim, eles teriam as suas mensagens difundidas com o consentimento do usuário atacado. A Figura 1 ilustra um exemplo de usuário spammer no Twitter, no qual nota-se o uso de tópicos populares precedidos por hashtags. Nesse caso, o spammer acopla tópicos populares que não necessariamente têm relação com o conteúdo da mensagem. Figura 1. Exemplo de usuário spammer no Twitter que acopla tópicos populares que não necessariamente têm relação com o conteúdo da mensagem. Ao contrário da Figura 1, onde os indícios do spam foram todos baseados no conteúdo da mensagem, neste trabalho se explora as relações entre amigos/seguidores como critério de detecção de spammers. 4. Modelagem das Relações entre Usuários A metodologia proposta neste trabalho é baseada na avaliação do impacto que cada usuário traz para a rede no seu entorno. O Twitter, sendo uma rede social, pode ser modelado como um grafo direcionado. Nesse modelo, cada usuário é um nó do grafo e as relações unidirecionais as arestas. Adota-se o sentido de cada aresta de forma que se A é seguidor de B, então há uma aresta ligando A até B. Uma vez conhecidas as arestas, é importante saber qual a rede de entorno de um nó e assim avaliar se essa rede é formada 26 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ por relações típicas ou não. A rede de entorno de um determinado nó é definida como se segue. 4.1. Definição da Rede de Entorno A análise deste trabalho é baseada em subredes do Twitter ao redor de cada usuário analisado. Assim, deve-se determinar como essa subrede é definida. Para isso, é usado o conceito de κ-vizinhança definido previamente em [Phe-Neau et al., 2013] e adaptado para ficar de acordo com as direções definidas para o grafo, de forma a considerar os seguidores dos usuários. Definição 1 κ-vizinhança. A κ-vizinhança Vκi de um nó i é o conjunto de todos os nós cujo o caminho mais curto até i é de no máximo κ saltos. A A partir da Definição 1, nota-se que Vκ−1 ⊆ VκA e que é possível estender a definição fazendo com que V0A = {A}. Essa definição também faz com que somente os seguidores dos nós sejam considerados. Devido à forma como foi definida a ligação de seguidores, o caminho até um nó i partindo de um nó em sua respectiva κ-vizinhança deve, obrigatoriamente, passar por um seguidor desse nó i e não por um amigo, já que essa relação está no sentido contrário. Isso faz com que algum determinado amigo de i só esteja presente na κ-vizinhança caso exista um caminho de no máximo κ saltos do amigo até i. A Figura 2 ilustra a 1-vizinhança e a 2-vizinhança do nó i. A primeira é formada por seguidores a um salto, enquanto a segunda é formada por seguidores de dois saltos. Figura 2. Exemplo da κ-vizinhança de um nó i para κ = 1 e κ = 2. Para cada usuário do espaço amostral é então coletada a sua respectiva κvizinhança. 27 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 5. Metodologia para a Detecção de Spammers Definida a κ-vizinhança, chamada também de rede de entorno, pode-se então compreender a metodologia empregada neste trabalho. Dessa forma, a metodologia proposta pode ser subdividida nas seguintes etapas: 1. seleção de usuários suspeitos; 2. coleta de dados; 3. análise da rede de entorno. A etapa de seleção de suspeitos deve definir critérios que identifiquem os usuários a serem analisados. Já a coleta de dados deve obter da rede do Twitter as informações necessárias para a análise da κ-vizinhança desse usuário. Por fim, deve-se aplicar métricas que capturem diferenças entre as redes de entorno de um usuário legítimo e de um usuário spammer. 5.1. Seleção de usuários suspeitos A seleção de usuários suspeitos pode ser realizada automaticamente de diferentes formas, desde a identificação de algum padrão suspeito nas mensagens até o reconhecimento do remetente em alguma lista negra de usuários maliciosos. Neste trabalho, sabendo que muitos spammers fazem uso de tópicos populares [Benevenuto et al., 2010] para serem listados em buscas, escolheu-se como parâmetro para a seleção de usuários maliciosos aqueles que tenham enviado mensagens contendo pelo menos um tópico popular. A partir dessa pré-seleção, escolheu-se classificar cada usuário manualmente, com base na visualização de seus perfis. Este método manual não é escalável, mas é suficiente para avaliar o desempenho da proposta, que por si só é tão escalável quanto desejado. Este trabalho se refere a esse conjunto de usuários selecionados como sendo o espaço amostral. 5.2. Coleta de dados A coleta de dados requer o uso da API do Twitter. A partir da API é possível obter as conexões de qualquer usuário não protegido, o que caracteriza a grande maioria da rede. O maior empecilho, porém, do uso dessa API é o seu limite, por credencial de desenvolvedor, de 15 requisições por janela de tempo de 15 minutos. Apesar dessa limitação retardar a obtenção de dados, ela pode ser minimizada através do desenvolvimento de programas que usem múltiplas credenciais. Esses programas permitem a obtenção da κ-vizinhança de um nó que é necessária para a avaliação proposta. O programa empregado neste trabalho utiliza o Algoritmo 1 para a coleta da κvizinhança de um usuário específico i, armazenando-a no grafo G. A execução acontece de forma recursiva obtendo os seguidores de i e, em seguida, a (κ − 1)-vizinhança de cada um destes sucessivamente. Após se obter a rede de entorno de um seguidor ela é adicionada ao grafo G. A condição de parada é determinada por κ de forma que, quando κ = 0, não são feitas mais chamadas recursivas, sendo retornado somente o usuário i. Observe que O BTER S EGUIDORES(i) constitui a parte mais lenta do algoritmo, já que faz uso da API do Twitter com todas as suas restrições. Isso faz com que, para usuários com milhares de conexões, seja demandado mais de um dia para se coletar a rede de entorno com κ = 2. 28 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Algorithm 1 Coleta da κ-vizinhança de um usuário i do Twitter. Require: G < V, A > . G é o grafo, formado pelos vértices V e arestas A que vai conter a κ-vizinhança. Require: i, κ 1: function C OLETAR DADOS T WITTER(i, κ) 2: if κ > 0 e i não analisado then 3: G←i . Acrescenta o vértice i ao grafo G. 4: S ← O BTER S EGUIDORES(i) . S é uma tupla com os seguidores de i. 5: for s ∈ S do 6: subgrafo ← C OLETAR DADOS T WITTER(s, κ − 1) 7: adiciona o subgrafo ao grafo G 8: end for 9: return G 10: else 11: return i . Limite da κ-vizinhança atingido, retorna somente o usuário. 12: end if 13: end function É importante ressaltar que nessa coleta de dados, o algoritmo pode se deparar com usuários protegidos. Entretanto, como a parcela de usuários protegidos do Twitter é pequena, ela é considerada desprezível e usuários nessa situação são descartados do grafo. 5.3. Análise da rede de entorno A análise da rede de entorno se baseia em métricas de redes complexas que serão definidas a seguir. A intuição a ser verificada é que os usuários spammers terão uma centralidade muito superior aos dos usuários legítimos já que eles precisam aumentar o seu número de seguidores. • Distribuição de Grau: Para grafos direcionados pode-se avaliar o grau de entrada e de saída, ou seja, o número de conexões que, respectivamente, entram e saem de um determinado nó. • Centralidade de Grau: A centralidade mais simples deriva diretamente da noção de grau e é definida como CD (i) = deg(i), sendo CD (i) a centralidade de grau de um nó i, dessa forma um nó é visto como mais central se possuir maior grau. Para a centralidade será considerado o grau independente do direcionamento do grafo. • Coeficiente de Agrupamento: O coeficiente de agrupamento de um nó revela o quão agregados são os seus vizinhos, ou seja, quanto maior for o coeficiente de agrupamento de um nó mais interconectados são seus vizinhos. Isso faz com que, para o caso em que todos os vizinhos se interconectam diretamente, ocorra o máximo coeficiente de agrupamento possível e, para o caso em que não há qualquer aresta conectando diretamente os vizinhos, ocorra o mínimo coeficiente de agrupamento possível. Define-se como sendo A(i) o Coeficiente de Agrupamento de um nó i tal que: |avizinhos de i | , (1) A(i) = ki (ki − 1) onde |avizinhos de i | é o número de arestas que conecta um nó vizinho de i a outro nó também vizinho de i e ki é o número de vizinhos de i, de forma que, ki (ki − 1) 29 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ é o número máximo de arestas que podem existir entre os vizinhos. Isso faz com que 0 ≤ A(i) ≤ 1. • PageRank: A métrica PageRank foi sugerida em [Page et al., 1999] para medir a popularidade de páginas da web. Entretanto, essa métrica vem sendo aplicada nas mais diversas redes. Ela pode ser definida em sua forma simplificada como: X R(j) R(i) = c , (2) Nj j∈B i onde R(i) é o PageRank de um nó i, Bi é o conjunto de nós que apontam para i, Nj é o número de nós que j aponta no total e c é um fator de normalização. A equação é definida de forma recursiva, na qual a conexão com determinado nó possui maior relevância se o nó de origem possuir maior PageRank, e menor se este nó possuir muitas conexões partindo de si. 6. Base de Dados A partir da seleção de usuários, foi identificada uma base de quatro spammers e mais dois usuários legítimos, escolhidos ao acaso dentre os disponíveis, os quais serão usados posteriormente nas avaliações. Mesmo com a limitação da API do Twitter, as redes analisadas, obtidas a partir de cada um dos seis nós escolhidos, totalizam juntas mais de 22 milhões de nós. Apesar da etapa de seleção ser usada fundamentalmente para identificação de spammers, ela foi também usada neste trabalho para obtenção de uma base mista de usuários legítimos e spammers de modo a avaliá-los e compará-los. Tabela 1. Spammers do Espaço Amostral. Spammer spammer 1 spammer 2 spammer 3 spammer 4 Seguidores 2.650 2.460 763 51 Amigos 2.632 1.136 681 477 Tweets 21.790 11.533 50 205 Tamanho da 2-vizinhança 9.473.703 nós 5.609.054 nós 326.977 nós 174.518 nós Tabela 2. Usuários Legítimos do Espaço Amostral. Usuário usuário 1 usuário 2 Seguidores 9.704 165 Amigos Tweets 5.467 36.539 160 4.340 Tamanho da 2-vizinhança 6.386.160 nós 433.702 nós Os spammers e usuários legítimos estão nomeados por ordem decrescente de tamanho da rede de entorno. É interessante notar que, mesmo o usuário 1 possuindo muito mais seguidores que o spammer 1, a sua 2-vizinhança possui menos nós do que a 2vizinhança do spammer. 7. Avaliação Nesta seção são avaliados os spammers e os usuários legítimos a partir das métricas definidas anteriormente. Cada um dos usuários do espaço amostral terá a sua respectiva 2-vizinhança analisada. O objetivo é observar quais características contribuem para a distinção entre os dois tipos de usuários considerados. 30 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 7.1. Distribuição de Grau Primeiro, são caracterizadas as diferenças em relação ao grau de entrada e saída da 2-vizinhança dos usuários. Na Figura 3, são mostradas as distribuições de grau de entrada dos usuários spammers e legítimos. Já na Figura 4, são mostradas as distribuição de saída também destes usuários. 104 3 Número de nós (CCDF) Número de nós (CCDF) 104 usuário 1 10 2 10 101 usuário 2 100 0 10 1 10 2 10 3 4 10 10 Grau 5 10 10 6 10 3 10 spammer 2 2 10 101 100 0 10 7 spammer 1 (a) Usuários Legítimos. spammer 3 spammer 4 101 102 103 104 Grau 105 106 107 (b) Usuários Spammers. Figura 3. CCDF de Grau de Entrada dos usuários spammers e legítimos. 107 Número de nós (CCDF) Número de nós (CCDF) 107 106 usuário 1 5 10 4 10 3 10 2 10 101 usuário 2 0 10 100 106 spammer 3 5 spammer 2 4 spammer 1 10 10 3 10 102 101 spammer 4 0 101 102 Grau 103 10 104 (a) Usuários Legítimos. 100 101 102 Grau 103 104 (b) Usuários Spammers. Figura 4. CCDF de Grau de Saída dos usuários spammers e legítimos. São visíveis as diferenças entre a distribuição de grau na 2-vizinhança entre spammers com número de seguidores grande e pequeno. Os que apresentam maior número de seguidores, naturalmente, possuem sua respectiva vizinhança com mais nós. Observa-se também que a presença de nós com maior grau é mais comum nas redes de entorno dos usuários com maior número de seguidores. Como era de se esperar, a distribuição de grau de entrada chega a níveis mais altos do que a distribuição de saída. Isso se deve à forma como foi definida a κ-vizinhança, o que levou a serem considerados somente os seguidores de cada usuário. Ao se obter os dados, os amigos de um determinado nó são presentes no grafo somente quando foram obtidos como seguidores de outro. Ao se avaliar a distribuição de grau, é natural a comparação com a regra da potência, seguida pelas redes livres de escala. Sabe-se de [Kwak et al., 2010] que a distribuição 31 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ de grau do Twitter segue a regra da potência com expoente 2,276, tendo um leve desvio para usuários com mais de 105 seguidores. Observa-se que, para o grau de entrada, nenhum dos usuários apresentou um comportamento próximo de uma reta. Por outro lado, a distribuição de saída de alguns usuários, tanto spammers quanto legítimos se aproxima melhor de uma reta. 7.2. Centralidade de Grau A partir da definição de centralidade de grau (Seção 5.3) em que não são consideradas as direções das conexões, foi obtida a centralidade para cada nó da 2-vizinhança de cada usuário, como pode ser visto na Figura 5. 107 Número de nós (CCDF) Número de nós (CCDF) 107 106 5 usuário 1 10 4 10 3 10 102 101 usuário 2 0 10 100 106 spammer 3 5 spammer 2 10 4 10 spammer 1 103 102 101 spammer 4 0 101 102 103 104 Grau 105 106 10 107 (a) Usuários Legítimos. 100 101 102 103 104 Grau 105 106 107 (b) Usuários Spammers. Figura 5. CCDF da Centralidade de Grau para os usuários spammers e legítimos. Na Figura 5(b) é possível notar, mesmo em escala logarítmica nos dois eixos, que a rede de entorno possui uma concentração muito maior de nós com centralidade de grau menor que 100, para os spammers 1 e 2, e com a centralidade de grau menor que 10 para os spammers 3 e 4. Isso contrasta com os usuários legítimos (Figura 5(a)), onde a CCDF da centralidade de grau se aproxima bem melhor de uma reta. Considerando a centralidade de grau, todas as redes de entorno dos spammers avaliados possuem CCDF que se afasta da distribuição esperada nas redes livres de escala, apresentando um desvio para o grau 102 (spammers 1 e 2) e para o grau 101 (spammers 3 e 4), aproximadamente. O comportamento artificial dos spammers corrompe a forma como a rede se distribui naturalmente. As redes livres de escala são oriundas do comportamento característico dos usuários de uma rede social. Essa característica é diferente de grafos formados somente por interações aleatórias entre os usuários e do comportamento automático, característico de spammers. 7.3. Coeficiente de Agrupamento Como definido na Seção 5.3 um nó pode ter seu coeficiente de agrupamento entre 0 e 1, sendo que quanto mais perto de 1 mais agregados são seus vizinhos. A partir disso espera-se que seja menos provável, um usuário com grau maior, possuir coeficiente de agrupamento próximo de 1, já que isso exigiria que um número muito maior de vizinhos se interconectasse. 32 100 10−1 −2 10 10−3 10−4 10−5 −6 10 −7 10 10−8 −9 10 0 1 2 3 4 5 6 7 10 10 10 10 10 10 10 10 Grau Coeficiente de Agrupamento Coeficiente de Agrupamento Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 100 −1 10 10−2 10−3 −4 10 10−5 −6 10 100 10−1 10−2 10−3 10−4 10−5 −6 10 −7 0 10 1 10 2 10 3 4 10 10 Grau 1 10 2 10 3 4 10 10 Grau 5 10 10 6 7 10 (b) Spammer 2. Coeficiente de Agrupamento Coeficiente de Agrupamento (a) Spammer 1. 10 0 10 10 5 10 6 10 7 100 10−1 10−2 10−3 10−4 10−5 10−6 10−7 10−8 0 10 101 102 103 104 105 106 107 Grau (c) Spammer 3. (d) Spammer 4. 100 Coeficiente de Agrupamento Coeficiente de Agrupamento Figura 6. Coeficiente de Agrupamento contra o grau dos usuários spammers. −1 10 −2 10 10−3 −4 10 −5 10 10−6 −7 10 10 −8 100 101 102 103 104 105 106 107 Grau (a) Usuário 1. 100 10−1 10−2 10−3 10−4 10−5 10−6 10−7 10−8 0 10 101 102 103 104 105 106 107 Grau (b) Usuário 2. Figura 7. Coeficiente de Agrupamento contra o grau dos usuários legítimos. O gráfico de coeficiente de agrupamento contra grau permite uma boa visualização de como é o agrupamento na vizinhança de um usuário. As Figuras 6 e 7 mostram a relação entre coeficiente de agrupamento e grau para os spammers e usuários legítimos, respectivamente. Para os dois tipos de usuários, o agrupamento e o grau parecem ter correlação mais acentuada até aproximadamente o grau 100, para graus maiores eles tendem a ficar 33 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ descorrelacionados. No entanto, os spammers apresentaram maior descorrelação para graus maiores em relação aos usuários legítimos avaliados. 7.4. PageRank Como o PageRank é definido de forma recursiva, a análise do PageRank de determinado usuário depende do PageRank de todos os seus seguidores. De forma recursiva, esses seguidores dependem dos seus respectivos seguidores e assim por diante. A rede, no entanto, está restrita à 2-vizinhança do usuário considerado. A Tabela 3 a seguir mostra o resultado do PageRank para os spammers e usuários legítimos avaliados. Tabela 3. PageRank dos usuários, considerando a 2-vizinhança de cada um. spammer 1 spammer 2 spammer 3 spammer 4 usuário 1 usuário 2 PageRank 3, 28 · 10−2 1, 74 · 10−2 14, 2 · 10−2 26, 2 · 10−2 1, 40 · 10−2 10, 6 · 10−2 PageRank Médio 2, 09 · 10−7 1, 78 · 10−7 30, 6 · 10−7 57, 3 · 10−7 1, 57 · 10−7 23, 1 · 10−7 PageRank PageRank Médio 4 15, 7 · 10 9, 76 · 104 4, 64 · 104 4, 57 · 104 8, 92 · 104 4, 59 · 104 Como a borda da 2-vizinhança é formada por um número muito grande de usuários sem qualquer seguidor e que seguem somente um usuário, o PageRank médio da rede se torna muito pequeno. Nota-se também que, quanto maior a rede, menor o PageRank dos nós envolvidos. Na forma como o PageRank foi proposto isso não é de fato um problema, já que este é usado para comparar a popularidade de um nó em relação a outros nós da mesma rede. Para comparar o PageRank de usuários de redes distintas, é usada a razão entre PageRank do usuário e o PageRank médio da rede em que ele se insere. Essa razão pode ser vista na última coluna da Tabela 3. A partir dessa relação é possível inferir que o usuário mais popular dentre os avaliados é o spammer 1, mesmo sendo o usuário 1 o que tem o maior número de seguidores. 8. Tratamento Automático da Centralidade de Grau Como visto na Seção 7.2, os spammers parecem se distanciar mais da regra da potência, ao contrários dos usuários legítimos, que tendem a se manter próximos. Nesta seção, é discutido um método de avaliação automático da centralidade de grau de forma que este comportamento diferenciado possa ser mais facilmente identificado. O comportamento de uma reta em um gráfico com escala logarítmica nos dois eixos é descrito pela Equação 3: y = k(CD )α → log y = α log CD + log k, (3) sendo y a CCDF da centralidade de grau e CD a centralidade de grau. Repare que ao aplicar log nos dois lados da equação tem-se a equação de uma reta. Quanto mais diferente do comportamento de uma reta for a curva original, mais a rede tem características distintas de uma rede livre de escala. Logo, mais distinta do comportamento encontrado na rede de entorno dos usuários legítimos. 34 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Decidiu-se então fazer um ajuste linear, usando o método dos mínimos quadrados, nas distribuições de grau encontradas. Após a determinação da reta é possível determinar o quão próxima está a reta da curva original através do cálculo do erro, como descrito na Equação 4: v u N u1 X =t σ2, N i=1 i Erms (4) sendo Erms o erro RMS da reta aproximada em relação à curva original, N o número de pontos do intervalo de amostragem e σi o erro do ponto i. A Figura 8 exemplifica o método no usuário 1 e no spammer 1. Para o usuário 1 o Erms resulta em 0,0477 enquanto para o spammer 1 o Erms resulta em 70,2. 107 Ajuste Linear 106 Número de nós (CCDF) Número de nós (CCDF) 107 105 4 10 103 102 101 0 10 10 0 10 1 2 10 3 4 10 10 Grau 10 5 10 6 10 105 104 103 102 101 100 0 10 7 (a) Usuário 1. Ajuste Linear 106 101 102 103 Grau 104 105 106 (b) Spammer 1. Figura 8. Ajuste Linear para o usuário 1 (Figura 8(a)) e para o spammer 1 (Figura 8(b)). É possível perceber como o erro do ajuste é muito maior para o spammer 1 do que para o usuário 1. 9. Conclusão e Trabalhos Futuros Este trabalho propôs a distinção entre usuários legítimos e spammers considerando suas 2-vizinhanças. Isso foi conseguido devido à modelagem do Twitter como um grafo direcionado, possibilitando a análise de métricas de centralidade. Constatou-se que, para os usuários legítimos, a centralidade de grau da rede de entorno segue a regra da potência, diferente dos spammers, cuja CCDF apresenta um grande desvio. Também foi proposta uma forma de comparar o PageRank de usuários contidos em redes distintas, permitindo chegar à conclusão de qual spammer era o mais popular. Foi também criado um método automático de avaliação da centralidade de grau viabilizando a distinção entre usuários spammers e legítimos. Como trabalho futuro, planeja-se aumentar a acurácia da predição de algoritmos já existentes para a detecção de spammers no Twitter ao se integrar as técnicas de análise da vizinhança dos usuários com técnicas de análise das mensagens. 35 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Referências Benevenuto, F., Magno, G., Rodrigues, T. e Almeida, V. (2010). Detecting spammers on twitter. Em Collaboration, electronic messaging, anti-abuse and spam conference (CEAS), volume 6. Kwak, H., Lee, C., Park, H. e Moon, S. (2010). What is twitter, a social network or a news media? Em Proceedings of the 19th international conference on World wide web, p. 591–600. ACM. Messias, J., Schmidt, L., Oliveira, R. e Benevenuto, F. (2013). You followed my bot! transforming robots into influential users in twitter. First Monday, 18(7). Page, L., Brin, S., Motwani, R. e Winograd, T. (1999). The pagerank citation ranking: bringing order to the web. Phe-Neau, T., Campista, M. E. M., De Amorim, M. D., Conan, V. et al. (2013). Padrões de mobilidade de vizinhança em redes de contato intermitente. Em Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos (SBRC 2013). Stringhini, G., Kruegel, C. e Vigna, G. (2010). Detecting spammers on social networks. Em Proceedings of the 26th Annual Computer Security Applications Conference. ACM. Stringhini, G., Wang, G., Egele, M., Kruegel, C., Vigna, G., Zheng, H. e Zhao, B. Y. (2013). Follow the green: growth and dynamics in twitter follower markets. Em Proceedings of the 2013 conference on Internet measurement conference, p. 163–176. ACM. Taveira, D. M., Mattos, D. M. F. e Duarte, O. C. M. B. (2008). Ferramenta para analise de caracteristicas de spams e mecanismos anti-spam. Em Salão de Ferramentas do Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos (SBRC 2008). Thomas, K., Grier, C., Song, D. e Paxson, V. (2011). Suspended accounts in retrospect: an analysis of twitter spam. Em Proceedings of the 2011 ACM SIGCOMM conference on Internet measurement conference, p. 243–258. ACM. Thomas, K., McCoy, D., Grier, C., Kolcz, A. e Paxson, V. (2013). Trafficking fraudulent accounts: the role of the underground market in twitter spam and abuse. Em USENIX Security Symposium. 36 32º Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos Florianópolis - SC IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo (Wp2p+) Sessão Técnica 2 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Extração de Propriedades Sociais em Redes Veiculares Felipe Cunha13 , Aline Viana3 , Thiago Rodrigues2 , Raquel Mini2 , Antonio Loureiro1 1 2 DCC – Universidade Federal de Minas Gerais DCC – Pontifı́cia Universidade Católica de Minas Gerais 3 INRIA - Saclay - France {fdcunha, loureiro}@dcc.ufmg.br, [email protected] [email protected], [email protected] Abstract. Everyday, vehicles perform routes in a city and along of their trajectories they encounter other vehicles. The frequency of these encounters is influenced by many factors, such as: vehicle speed, destinations, traffic conditions, and the period of the day. However, these factors are justified by the public roads limits and the driver’s behavior. The people present daily routines and similar behaviors that have a great impact in the daily traffic evolution. In this work, we present a numerical analysis of real and realistic traces data set that describe the mobility of a set of vehicles. Social metrics are computed, and the results obtained are compared to random graphs in the direction to attest that Vehicular Network presents a social behavior. Results show the existence of routines and social properties in Vehicular Networks. Finally, we discuss about new social perspectives in Vehicular Networks. Resumo. Todos os dias, veı́culos transitam nas cidades e durante suas trajetórias encontram outros veı́culos. A frequência destes encontros pode ser influenciada por diversos fatores como: a velocidade dos veı́culos, os destinos escolhidos, as condições de tráfego e o perı́odo do dia. Entretanto, estes fatores são justificados pelos limites das vias públicas e pelo comportamento dos motoristas. Os comportamentos similares dos motoristas e suas rotinas diárias têm um grande impacto na evolução do tráfego diariamente. Neste trabalho, é apresentada uma análise numérica de traces reais e realı́sticos que descrevem a mobilidade de um conjunto de veı́culos. Para isso, métricas sociais são computadas e os resultados obtidos são comparados com grafos aleatórios na direção de atestar que as Redes Veiculares apresentam comportamento social. Os resultados comprovam a existência de rotinas e propriedades sociais nas Redes Veiculares. Finalizando, discute-se sobre novas perspectivas sociais em Redes Veiculares. 1. Introdução As Redes Veiculares (Vehicular Networks - VANETs) são um tipo especial de redes adhoc, formadas por veı́culos que possuem capacidade de processamento e comunicação sem fio, transitando por ruas e rodovias. Geralmente, esses veı́culos podem se comunicar diretamente ou pelo uso de pontos de acesso (RSUs). Através das RSUs pode-se ter acesso e obter dados de outras redes, como por exemplo a Internet. Devido a esta natureza, as redes veiculares podem estabelecer a comunicação em diferentes ambientes, como centros urbanos e rodovias [Boukerche et al. 2008]. 39 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Essas redes são propostas para ajudar motoristas com o trânsito, para evitar colisões com a emissão de alertas, para prover entretenimento para motoristas e passageiros, e também para criar um sistema de tráfego inteligente. Uma importante aplicação é a emissão de alertas para os motoristas, com informações acerca das condições das rodovias e perigos de colisões iminentes. Estudos recentes mostram que 60% dos acidentes de veı́culos podem ser evitados se os condutores forem avisados segundos antes da colisão [Faezipour et al. 2012]. Assim, uma interação entre os veı́culos pode contribuir fortemente para a disseminação de uma mensagem de alerta, e consequentemente reduzir o número de acidentes [Schoch et al. 2008]. Outro exemplo de aplicações é o auxı́lio aos condutores, com o objetivo de fornecer um melhor caminho. Com isso, é importante que essas redes monitorem e prevejam as condições de tráfego com sugestões de mudanças de rota, para evitar engarrafamentos e assim, reduzir o tempo da viagem [Tostes et al. 2013]. Nestas redes a comunicação é altamente influenciada pela densidade de veı́culos e os padrões de mobilidade dos mesmos. Veı́culos se movem e param de acordo com os limites de velocidade e direção impostos pelas vias públicas. Entretanto, o perı́odo do dia também pode influenciar na mobilidade. Em horários de pico, o tráfego pode ser mais lento, com engarrafamentos; o que força o motorista a parar o veı́culo ou mudar a sua rota. Em contrapartida, os finais de semana, feriados e madrugadas são perı́odos nos quais o tráfego é ocioso. Esta variação de densidade nos horários reforça a caracterı́stica dinâmica das redes veiculares, tornando a comunicação uma tarefa desafiadora. A mobilidade também é influenciada pelo comportamento do motorista e sua rotina. Durante os finais de semana, destinos como: sı́tio, fazenda, igreja e centros comerciais são escolhidos para lazer e entretenimento, e são frequentemente visitados. Nos dias de semana, um comportamento contrário é observado. Pessoas repetem seus caminhos diariamente, nos mesmos perı́odos, para os mesmos destinos como: escolas, trabalhos, universidades, restaurantes, etc. Durante suas trajetórias encontram com outros veı́culos, atravessam as mesmas vias e estão sujeitas as mesmas condições de tráfego. Estas caracterı́sticas sugerem o estudo da mobilidade veicular sob uma perspectiva social, com o intuito de entender melhor sua evolução e de aplicar os conceitos sociais obtidos para melhorar as aplicações e a conectividade em redes veiculares. Nesta direção, o objetivo deste trabalho é o de investigar a seguinte questão: Quais são as caracterı́sticas que uma rede veicular precisa apresentar para comprovar existência de um comportamento social? Assim, este trabalho apresenta uma análise social de duas bases de dados (traces) que têm caracterı́sticas de diferentes grupos de veı́culos. A primeira base é realı́stica e contém registros de dados de veı́culos durante uma rotina diária. A segunda base é real e contém registros da mobilidade de táxis durante um mês. Esta análise será efetuada a partir do registro de movimento dos veı́culos e seus encontros, modelados como grafos temporais. Nestes grafos serão computadas métricas que certifiquem a existência de propriedades sociais. Para melhorar a compreensão dos resultados e tornar a análise consistente, algumas métricas serão calculadas também em grafos aleatórios, que serão gerados com a mesma quantidade de vértices e distribuição de graus dos grafos temporais. Finalizando, serão apresentados cenários e situações nos quais a aplicação das métricas sociais em redes veiculares é relevante. O restante do trabalho está organizado da seguinte forma. A Seção 2 apresenta um breve resumo dos trabalhos relacionados relevantes da literatura. A Seção 3 descreve 40 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ a metodologia utilizada para avaliação das bases de dados. A Seção 4 apresenta as bases de dados utilizadas e os resultados quantitativos, de acordo com cada métrica avaliada. Completando, a Seção 5 expõe as conclusões finais e perspectivas futuras. 2. Trabalhos Relacionados “As redes de computadores são inerentemente redes sociais, ligando as pessoas, organizações e conhecimento” [Wellman 2001]. Nesta perspectiva, o conceito de redes sociais tem sido explorado em diferentes tipos de redes de computadores, principalmente para melhor entender a evolução da topologia e para analisar os encontros fı́sicos dos nós, com o objetivo de melhorar o desempenho dos protocolos de comunicação [Scott 2000, Hossmann et al. 2009]. Entretanto, em redes veiculares, as análises sociais podem ser usadas para monitorar a evolução do tráfego durante o dia, objetivando o conhecimento das rotinas dos usuários, identificando trajetórias similares e horários de pico. O objetivo dessas análises é melhorar e adaptar os serviços providos neste tipo de rede. Considerando o comportamento social, em [Fiore and Härri 2008], Fiore et al. apresentam uma análise detalhada das propriedades topológicas de uma rede veicular. Os autores usam métricas sociais para investigar a evolução temporal da topologia da rede. Resultados mostraram que é possı́vel tirar vantagem da mobilidade veicular para melhorar o desempenho dos protocolos de rede. Contudo, os autores efetuam a análise se baseando apenas em modelos de tráfego analı́ticos, conhecidos na literatura. Neste mesmo contexto, em [Loulloudes et al. 2010], os autores discutem como as métricas sociais podem ser empregadas para melhorar o desempenho dos protocolos de roteamento em redes veiculares. A análise, entretanto, é baseada em um curto perı́odo de 2 horas. Acredita-se que um curto perı́odo de observação não é suficiente para extrair comportamentos sociais de uma mobilidade veicular. Outra análise social é apresentada em [Liu et al. 2012]. Este trabalho discute diversas leis universais das redes sociais e apresenta uma análise numérica de uma real base de dados. Os autores escolheram duas bases públicas: São Francisco e Shanghai, que descrevem os movimentos de táxis. As métricas sociais foram estimadas e os resultados mostraram a existência de rotinas sociais em VANETs, comprovando as leis de potência para a distribuição de graus e o fenômeno small world. Este trabalho considera apenas a mobilidade da base de dados de táxis e a avalia somente as métricas sociais, sem verificar a existência de rotinas. Em [Uppoor and Fiore 2012] também é apresentado uma análise de base de dados de veı́culos. Entretanto os autores se atêm apenas no estudo e classificação das trajetórias diárias dos condutores. A base de dados avaliada foi da cidade de Cologne e os autores a caracterizaram de forma macro e microscópica. Como macroscópica, com a análise da evolução da densidade de o dinamismo dos fluxos de veı́culos entre as regiões na cidade. E microscópica, com a análise da distribuição de veı́culos por área e a quantidade de encontro entre eles. Contudo, esta análise não considera aspectos sociais e tampouco a interação entre os veı́culos. Como estudo inicial, em [Cunha et al. 2013], apresentamos uma avaliação de métricas sociais em base de dados de veı́culos com duração de 24 horas. Esta avaliação apresentou a existência de rotinas sociais e comportamentos similares em redes veiculares. Porém, este estende e aprimora o estudo com a análise de bases de dados com longa 41 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ duração. Os resultados obtidos com esta avaliação serão comparados com resultados das métricas aplicadas a grafos aleatórios. Além disso, também será indicado possı́veis serviços e protocolos das redes veiculares que poderão fazer uso destas métricas para alcançar melhorias de desempenho. 3. Metodologia Nesta seção serão apresentados os detalhes da metodologia usada em toda a avaliação das bases de dados. A execução desta avaliação consiste na construção de grafos que representam as interações entre os veı́culos e o cálculo das métricas sociais. Assim, nas seções a seguir serão descritas as suposições feitas na construção dos grafos temporais e randômicos e a definição das métricas avaliadas. 3.1. Grafos Temporais O modelo utilizado para construção dos grafos temporais considera a existência de duas arestas entre os vértices quando dois veı́culos tiveram um encontro, isto é, um veı́culo está localizado fisicamente dentro do raio e comunicação do outro. Nessa avaliação o raio de comunicação considerado foi de 100 metros, de acordo com o protocolo 802.11p e o cenário de centros urbanos. Conforme padronização entre as bases avaliadas, a velocidade média dos veı́culos foi de 25 km/h. Assim, de acordo com esta velocidade e o raio de comunicação, os registros de posição dos veı́culos são analisados. Sempre que houver dois veı́culos próximos e a diferença do registro de data/hora entre eles for de 15 s., um encontro será registrado no grafo. O grafo então é definido considerando os encontros que aconteceram hora-a-hora. O grafo no instante t é unidirecional e pode ser definido como um grafo G(t) = (V, E), onde V representa o conjunto de veı́culos com todos veı́culos vi e E representa o conjunto de arestas. O grafo G é temporal, no qual uma aresta eij (t) existe entre dois veı́culos vi e vj somente durante o tempo t, com i̸=j. Todas as métricas foram avaliadas de hora em hora, considerando o grafo tempo G(t). 3.2. Grafos Aleatórios Um grafo aleatório é um grafo obtido a partir de um conjunto de vértices V e sua respectiva distribuição de graus. A adição de arestas no grafo GR é feita de forma aleatória, baseado em modelos de probabilidade. Neste trabalho, o processo de construção dos grafos aleatórios GR baseia-se no algoritmo de urna, usado na geração de estruturas aleatórias [Johnson and Kotz 1977]. Nele, o primeiro passo consiste na inserção de di “bolas” em uma urna, marcadas com o identificador i do vértice, de forma que di corresponde ao grau do vértice i. Feito isso para todos os vértices, duas bolas bi e bj são retiradas de forma aleatória e seus identificadores são verificados. Se i̸=j e não existe aresta entre esses dois vértices, uma aresta então será inserida. Esse processo é repetido, até que não exista nenhuma bola na urna ou não seja possı́vel conectar os vértices presentes na urna. Assim, quando não for possı́vel conectar os vértices, haverá uma diferença entre o número de arestas do grafo original G e GR . A diferença permitida pelo processo poderá ser de até 0.001%, que não compromete a avaliação. A partir deste algoritmo foram gerados grafos aleatórios GR para cada grafo temporal G(t) analisado, nos quais as métricas também serão computadas. 42 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 3.3. Métricas As métricas sociais escolhidas para avaliação serão descritas, considerando os aspectos e caracterı́sticas da mobilidade dos veı́culos. Quanto a mobilidade dos veı́culos, pode-se classificar as caracterı́sticas em macroscópicas e microscópicas [Uppoor and Fiore 2012]. Nesse contexto, o trabalho estende essa classificação para as métricas sociais, dividindoas de acordo com o que cada uma representa no grafo. As métricas macroscópicas representam medidas do estado global da rede, as quais podem retratar um comportamento geral de todos os veı́culos e da evolução do grafo temporal. As métricas microscópicas definem valores individuais os veı́culos, representando o comportamento de um único veı́culo. Para as métricas macroscópicas foram escolhidas a Distância, a Densidade, o Diâmetro e a Persistência das Arestas. Como métricas microscópicas foram selecionadas o Grau do Vértice, o Coeficiente de Agrupamento e Centralidade de Proximidade. Todas as métricas escolhidas são conhecidas na literatura e comumente utilizadas em trabalhos de avaliação de aspectos sociais em grafos. 3.3.1. Métricas Macroscópicas Distância: esta é uma métrica que compreende o tamanho do caminho entre um par de veı́culos, em termos do número de saltos necessários. Em redes veiculares, a distância pode representar a existência de um interesse comum entre condutores. Se a distância entre os veı́culos vi e vj é grande, isto implica em dizer que eles estão fisicamente distantes, fora do raio de alcance, e provavelmente não visitam lugares próximos. Caso contrário, se a distância é pequena, vi e vj podem visitar lugares próximos ou possuem pontos em comum ao longo de sua rota. Geralmente, grafos com o comportamento de small world possuem curta distância. Diâmetro: pode-se definir o diâmetro de um grafo como a maior distância entre quaisquer pares de nós. Considerando as redes veiculares, um grafo com muitos veı́culos e um pequeno diâmetro, pode indicar existência de pontos de interesse em comum entre esses veı́culos ou também a possibilidade de engarrafamentos. Em contrapartida, um grande diâmetro pode indicar a não existência de similaridade na rotina dos motoristas. Além disso, um diâmetro maior pode acarretar o custo na comunicação, com mais atrasos entre a origem e o destino, devido à quantidade de saltos que a informação fará. Densidade: representa o quão densa é a rede, isto é, a quantidade de conexões existentes entre os veı́culos. No contexto das redes veiculares, regiões urbanas podem ter uma alta densidade que regiões periféricas ou rurais. Em grandes centros urbanos, a densidade tende a ser elevada devido ao tráfego lento e a existência de engarrafamentos. Esta métrica pode ser computada pela razão entre o número de arestas existentes no grafo e(t) e o número de arestas de um grafo completo |V ||V − 1|/2. Persistência de Arestas: é uma métrica que representa a persistência de um encontro entre dois veı́culos. Esta análise considera persistência de arestas o número de vezes que o veı́culo vi e vj se encontram durante o tempo. Para isso, computa-se essa métrica em função do peso da aresta que representa o número de vezes que o encontro eij (t) acontece. 43 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 3.3.2. Métricas Microscópicas Grau do Vértice: determinar o número de encontros distintos que um veı́culo teve durante um perı́odo. Esta métrica pode ser influenciada pela trajetória do veı́culo e pelo perı́odo do dia. Se um veı́culo cruza uma região de alta densidade ou em horário de pico, o seu grau tende a ser elevado. De outra forma, em regiões afastadas do centro da cidade ou em horas de baixo tráfego, o grau pode ser baixo e até nulo. Como uma definição formal, o grau de um veı́culo vi no tempo t pode ser definido pela expressão: Graui (t) = ||{vj |∃eij (t)}||. Coeficiente de Agrupamento (cluster coefficient): esta métrica pode avaliar o quão próximo estão os vizinhos de um veı́culo vi no grafo, isto é, a probabilidade que dois vizinhos do veı́culo vi tem de se encontrem. Esta métrica pode representar regiões de engarrafamento, quando o coeficiente é alto. Além disso, se a rede apresenta o fenômeno small world, seu coeficiente de agrupamento deve ser elevado [Watts and Strogatz 1998]. Centralidade de Proximidade (closeness centrality): esta métrica mensura a centralidade de um veı́culo em relação a sua distância para os demais veı́culos do grafo. O quão mais central for o veı́culo, menor será a sua distância para os demais. Apesar de ser uma métrica global, seu valor também pode representar a centralidade da rota de um veı́culo em relação aos demais. Possivelmente, veı́culos que trafegam mais em áreas centrais tendem a ter um valor baixo de centralidade. 4. Resultados Esta seção apresenta os resultados da análise efetuada sob as bases de dados. A Seção 4.1 descreve as caracterı́sticas de cada base de dados avaliada. A Seção 4.2 apresenta os resultados para as métricas macroscópicas e a Seção 4.3 apresenta os resultados para as métricas microscópicas de acordo com a definição na Seção 3.3. 4.1. Traces Avaliados Foram analisadas duas bases de dados públicos (traces), que descrevem a mobilidade de veı́culos. A primeira base de dados é uma base realı́stica, no qual os dados foram gerados baseados em modelos matemáticos que consideram informações de tráfego da cidade de Zurich [Naumov et al. 2006]. Esta base de dados representa a evolução do tráfego urbano durante um dia, incluindo a variação de horários de pico e madrugadas. São informações geradas por um simulador, e contém detalhes de destinos dos veı́culos e a velocidade empregada para efetuar o trajeto. Pode-se ver essa variação do tráfego na Figura 1-(a). Nota-se que existem dois intervalos de tempo os quais apresentam uma grande quantidade de veı́culos, chamados de horários de pico: 6 − 9am e 2 − 5pm. Toda a base de dados descreve o movimento de 260.000 veı́culos, com a concentração de veı́culos nos horários de pico: 173.470 veı́culos às 7am, e 132.633 veı́culos às 3pm. Essa base de dados foi analisada considerando todo o dia, com o destaque para os horários de pico, de acordo com cada métrica. A segunda base de dados avaliada é uma base real, que contém o registro de mobilidade de 551 táxis na cidade de São Francisco (EUA) durante quatro semanas [Piorkowski et al. 2009]. São registros reais, coletados por dispositivos GPS localizados em cada veı́culo, minuto-a-minuto, durante sua trajetória. É possı́vel observar a distribuição de veı́culos durante os dias da semana e finais de semana, respectivamente, nas Figuras 1-(b) 44 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ e 1-(c). Pode-se verificar nos dois gráficos um tráfego menos intenso durante a madrugada. Entretanto, durante os finais de semana o decaimento da quantidade de táxis em circulação é menor. Isso pode ser atribuı́do ao fato das pessoas permanecerem na rua até mais tarde, tendo mais eventos noturnos. Durante a semana é possı́vel verificar o inı́cio das jornadas diárias de circulação dos veı́culos, com o crescimento da curva a partir das 6am. Além disso, percebe-se um comportamento constante na quantidade de veı́culos, com mais de 400 táxis em circulação durante todo o dia. Devido a esse comportamento, nesta base, as métricas foram calculadas considerando os cenários: dias da semana e finais de semana. 120*10 3 90*10 3 60*10 3 30*10 3 0am 6am 12am 6pm Período do Dia(h) (a) Zurich. 12pm 500 Número de Veículos 3 Número de Veículos Número de Veículos 500 150*10 400 300 200 100 0 0am 6am 12am 6pm Período do Dia(h) 400 300 200 100 0 0am 6am 12am 6pm Período do Dia(h) (b) São Francisco (dias (c) São Francisco (finais da semana). de semana). Figura 1. Distribuição do Tráfego durante o dia. Nas seções a seguir serão apresentados os resultados numéricos para cada métrica avaliada em cada uma das bases de dados. Com o efeito de comparação, deve-se lembrar de que alguns resultados serão apresentados com o seu valor correspondente computado para grafos aleatórios. Esses grafos foram gerados com o mesmo número de vértices e a mesma distribuição de graus para cada perı́odo do dia. 4.2. Métricas Macroscópicas Nesta seção serão descritos os resultados para as métricas que retrata a estrutura global do grafo, e que no contexto veicular, conseguem capturar informações de como o comportamento de todos os veı́culos pode influenciar nessa estrutura e por consequência na mobilidade. Distância: Ao analisar a distância entre dois vértices num grafo, é importante lembrar neste caso que a distância considera o número médio de arestas que conectam dois vértices, sem considerar o peso das arestas. Numa rede veicular, esta métrica pode representar se dois veı́culos frequentam ou não o mesmo lugar, isto é, veı́culos que possuem rotinas similares tendem a apresentar distância curta entre eles. Em compensação, veı́culos que transitam em horários diferentes, ou atravessam regiões distantes, tendem a possuir longas distâncias para os demais. O gráfico na Figura 2 apresenta a média da distância para as duas bases analisadas. Na Figura 2-(a) verifica-se a distância na base de Zurich. Nos horários nos quais não existe tráfego a distância foi considerada 0. Entretanto, nos demais horários é possı́vel observar o aumento do valor da distância quando há mais tráfego. Todavia, esse aumento não é tão expressivo, pois, apesar do tráfego intenso, existem pontos congruentes de rotas nas regiões centrais, o que tende a manter o valor da distância baixo, considerando que novos encontros entre os veı́culos acontecerão. Ao analisar o comportamento da curva 45 6 4 2 0 0am 6am 12am 6pm Período do Dia(h) (a) Zurich. 12pm São Francisco Aleatório Número de Saltos Zurich Aleatório Número de Saltos Número de Saltos Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 3 2 1 0 0am 6am 12am 6pm Período do Dia(h) 12pm São Francisco Aleatório 3 2 1 0 0am 6am 12am 6pm Período do Dia(h) 12pm (b) São Francisco (dias (c) São Francisco (finais da semana). de semana). Figura 2. Evolução da Distância durante o dia. para os grafos aleatórios, é possı́vel verificar que uma distância menor em alguns horários. Devido à forma de geração, a inserção de algumas arestas pode ter criado atalhos no grafo, reduzindo a distância média entre os vértices. De diferente maneira, nas Figuras 2-(b) e 2-(c), pode-se observar o comportamento da distância para a base de São Francisco. Notase um pequeno aumento na distância no momento de pouco tráfego de táxis nas ruas. Esse comportamento é esperado pois, com a redução de veı́culos a tendência também é reduzir os encontros, o que reflete no valor da distância. Nos demais horários, a distância apresenta um comportamento constante, próximo de 1. Desta forma, a comparação com grafos aleatórios não apresentou variações. Para a base de Zurich pode-se constatar o fenômeno small world: um grande número de vértices no grafo com pequena distância entre eles. Entretanto, devido a estrutura do grafo, não é possı́vel verificar o mesmo comportamento para a base de São Francisco. Diâmetro: Em concordância com a métrica distância, o diâmetro do grafo consegue capturar a maior distância entre dois vértices do grafo. Desta forma, com essa métrica é possı́vel verificar maiores detalhes da estrutura topológica do grafo e entender melhor a evolução da mesma. Importante lembrar que a avaliação dessa métrica só é possı́vel se o grafo for conexo. Caso contrário, o diâmetro representará a maior distância entre dois vértices, dentre os componentes do grafo. Para as redes veiculares, um grafo G(t) com muitos vértices e um diâmetro pequeno pode indicar a ocorrência de engarrafamentos, ou mesmo a existência de uma grande similaridade de rotas entre os veı́culos para o instante analisado. Neste contexto, um grafo G(t) com poucos vértices e um grande diâmetro, pode indicar a existência de tráfego periférico com veı́culos possuindo rotas com poucos encontros e pouca similaridade de comportamento. Além disso, ao considerar o custo de comunicação, um grande diâmetro pode acarretar num aumento de custo para transmissão, sendo necessário mais saltos para a informação alcançar o destino. A Figura 3 apresenta a evolução do valor do diâmetro durante o dia. Pode-se observar para a base de Zurich (Fig. 3-(a)) que o valor diâmetro sofre uma redução nos horários de pico. Isso ocorre, pois nestes horários os encontros nas regiões centrais são mais frequentes. Para a base de São Francisco (Fig. 3-(b) e 3-(c)) pode-se observar um comportamento semelhante com o aumento do diâmetro nos horários de redução de tráfego. Nesse perı́odo, com a redução do trânsito de veı́culos nas ruas, a probabilidade de encontro também reduz e a distância entre os mesmos se torna maior. 46 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 14 7 0 0am 6am 12am 6pm Período do Dia(h) 5 4 4 3 2 1 0 0am 12pm (a) Zurich. 5 Diâmetro(Saltos) Diâmetro(Saltos) Diâmetro(Saltos) 21 6am 12am 6pm Período do dia(h) 3 2 1 0 0am 12pm 6am 12am 6pm Período do dia(h) 12pm (b) São Francisco (dias (c) São Francisco (finais da semana). de semana). Figura 3. Evolução da Diâmetro durante o dia. Densidade: Na análise desta métrica é avaliada a densidade global de um grafo. Ela representa os encontros que aconteceram durante um dia e a Figura 4 apresenta sua evolução. A primeira percepção possı́vel nesta figura é quando se compara a evolução diária das duas bases. Táxis normalmente estão em circulação sempre e veı́culos particulares tem rotinas mais definidas. A Figura 4-(a) apresenta a densidade para a base de dados de Zurich. Pode-se constatar que, devido ao cenário, essa base apresenta uma densidade baixa. E seu valor não excede 2% durante todo o dia. Isto acontece pois, veı́culos estão sempre sujeitos a restrições de velocidade e direção das vias públicas e, neste contexto, podem estar próximos mas não acontecerão o contato. Outro fator que pode influenciar a existência de encontros é o engarrafamento. Este limita a velocidade do veı́culo e muitas vezes obriga o motorista a optar por atalhos, o que impede a existência de outros encontros. 3 2 1 0am 6am 12am 6pm Período do Dia(h) (a) Zurich. 12pm Densidade de Arestas(%) Densidade de Arestas(%) Densidade de Arestas(%) Para o trace de São Francisco, a Figura 4-(b) e 4-(c) apresenta respectivamente a evolução para os dias da semana e finais de semana. Nota-se que durante o dia a densidade permanece superior a 80% e durante a madrugada esse valor reduz para 60%. Isso ocorre pois o número de viagens feitas por um táxi durante o dia é maior e também, por haver um maior número de táxis em circulação, a probabilidade de ocorrer encontros é maior. Em contrapartida, na madrugada, pela redução de táxis em circulação e a própria ociosidade de corridas neste horário, contribui para a redução da quantidade de encontros. Quando se compara os dois gráficos, nota-se uma pequena diferença na densidade entre os dias da semana e os finais de semana. Essa diferença pode ser atribuı́da à escolha de destinos nos finais de semana. Por serem destinos mais variados, a tendência é que ocorra uma redução na probabilidade de encontro entre os táxis. 100 80 60 40 20 0 0am 6am 12am 6pm Período do Dia(h) 12pm 100 80 60 40 20 0 0am 6am 12am 6pm Período do Dia(h) 12pm (b) São Francisco (dias (c) São Francisco (finais da semana). de semana). Figura 4. Evolução da Densidade durante o dia. Persistência de Arestas: Neste trabalho, persistência de arestas descreve a quantidade de vezes que o par de ares- 47 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ tas de repete ao longo do tempo, ou seja, se um encontro entre dois veı́culos se repete. Entretanto, devido as diferentes durações das bases de dados, avaliamos a persistência de duas formas. No cenário de Zurich, a persistência é mensurada considerando os horários de pico, nos quais a concentração de veı́culos é maior. Desta forma foi possı́vel capturar os encontros que acontecem no inı́cio do dia e que se repetem no final do dia. Para o trace de São Francisco, consideramos a persistência dia-a-dia, no mesmo horário. Com a avaliação dessa métrica, o foco é verificar nas duas bases de dados a porcentagem de veı́culos que possuem o comportamento similar, isto é, passam pelos mesmos locais e se encontram com frequência. Para a base de dado de Zurich, no inı́cio do dia (6 − 9am.), o grafo possui 376.245 arestas e no final do dia (2 − 5pm.) o grafo possui 338.513 arestas. A persistência de arestas para esta base foi de 43% das arestas, isto é, aproximadamente 150.000 arestas se repetem, o que indica uma parte expressiva de veı́culos tem o comportamento semelhante na cidade, com a mesma rotina. Para a base dados de São Francisco também foi considerado os horários de maior quantidade de veı́culos em circulação, que começa a acontecer a partir das 6am. Nesse momento, a quantidade de veı́culos permanece superior a 400 táxis e a quantidade de arestas em média no grafo é de 60.000 arestas. Assim, com a porcentagem de 75%, a persistência de arestas para a base de São Francisco é maior. Apesar de serem veı́culos que trafegam para destinos diversos, táxis tendem a voltar para o seu ponto de partida, no qual aguardam novos passageiros. Além disso, esses pontos normalmente são fixos, o que aumenta a probabilidade de encontrar os mesmos veı́culos. Este é um bom indicativo para comprovar a existência de comportamento social no grafo e também que as rotinas exercem uma forte influência na definição do tempo de viagem e nas trajetórias. 4.3. Métricas Microscópicas Grau do Vértice: Quando avaliamos o grau do vértice numa rede veicular, é importante lembrar que durante o dia a densidade de tráfego sofre variações e consequentemente a quantidade de encontros que um veı́culo faz é influenciada pela quantidade de veı́culos em circulação. O gráfico na Figura 5 representa a evolução do grau dos vértices para a base de dados de Zurich. Nota-se na Figura 5-(a), que o valor do grau acompanha a ocorrência dos horários de pico, e observa-se também um aumento para o grau médio, mediano e máximo. Durante os horários de pico, como às 7am., é o momento de maior valor para o grau 1.355, o que representa a existência de veı́culos que fazem viagens em regiões com alta densidade de tráfego e que fazem viagens maiores. O mesmo comportamento pode ser observado durante às 3pm. com altos valores de grau. Contudo, o valor do grau mediano também apresenta um pequeno aumento, acompanhando o aumento de tráfego, com valores de 200 para o grau em horários de pico. Estes são valores aceitáveis, pois com o aumento de tráfego é esperado a ocorrência de mais encontros. Muitas redes sociais são consideradas como livres de escala, e uma das caracterı́sticas destas redes é que a sua distribuição de graus segue uma lei de potência [Newman 2005], poucos vértices com grau alto e muitos vértices com grau baixo. Nas Figuras 5-(b) e 5(c) pode-se observar essa distribuição para os dois horários com maior fluxo de veı́culos às 7am. e 3pm. em escala logarı́tmica. Nestes horários, encontra-se 48 Grau do Nó Quantidade de nó Média Max Mediana 1600 1200 800 400 0 0am 6am 12am 6pm Período do Dia(h) 12pm 10 4 10 3 10 2 10 1 10 0 10 Quantidade de nó Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 0 (a) Durante o dia. 10 1 2 10 Grau do nó 10 3 10 4 10 4 10 3 10 2 10 1 10 0 10 0 (b) 7am. 10 1 2 10 Grau do nó 10 3 10 4 (c) 3pm. Figura 5. Evolução do grau do vértice durante o dia. em circulação aproximadamente 100.000 veı́culos e as curvas nos gráficos mostram um comportamento bem próximo de uma lei de potência; poucos veı́culos com alto grau, e uma maior quantidade de veı́culos com valores menores de grau, próximo a 102 . 500 500 400 400 Grau do Nó Grau do Nó Para a base de dados de São Francisco, os gráficos nas Figuras 6-(a) e 6-(b), apresentam os valores pra dias da semana e finais de semana respectivamente. Nos perı́odos entre os horários de 5am - 7am, observa-se uma redução do grau dos vértices devido a quantidade de veı́culos transitando e a redução dos encontros. Além disso, percebe-se em conformidade com a densidade, que o valor médio de grau é bem elevado, levando a entender que nos horários de grande tráfico, praticamente todos os veı́culos se encontram. Quando analisa o comportamento durante o dia, percebe-se também uma tendência constante para esse valor, sempre acima de 450 encontros médios por veı́culo. 300 200 Média Max Mediana 100 0 0am 300 200 Média Max Mediana 100 0 0am 6am 12am 6pm Período do Dia(h) 6am 12am 6pm Período do Dia(h) (a) São Francisco (dias (b) São Francisco (finais da semana). de semana). Figura 6. Evolução do Grau do Vértice durante o dia. 2 10 1 10 0 10 0 10 1 10 Grau do nó (a) 6am. 2 10 3 10 2 10 1 10 0 10 Quantidade de nó 10 Quantidade de nó Quantidade de nó A Figura 7 apresenta a distribuição de graus para três momentos do dia, às 6am, 12am e 6pm (Fig. 7-(a), 7-(b) e 7-(c)). Pode-se notar que, com o decorrer do dia, os veı́culos se encontram com maior frequência. Principalmente no horário de 6pm, quando têm-se todos os veı́culos com graus entre 102 e 103 . Além disso, esses não é possı́vel constatar um comportamento leis de potência para esse padrão de mobilidade. 0 10 1 10 Grau do nó 2 (b) 12am. 10 3 10 2 10 1 10 0 10 0 10 1 10 Grau do nó 2 10 3 (c) 6pm. Figura 7. Evolução do Grau do Vértice para diferentes horários. 49 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Coeficiente de Agrupamento: O coeficiente de agrupamento é uma métrica muito importante para análise numa rede social, pois com essa métrica é possı́vel mensurar a organização do grafo e mensurar o quão próximo os vizinhos estão de um veı́culo. No contexto de uma rede veicular, o coeficiente de agrupamento pode representar os veı́culos na mesma direção, que tem interesses em comum ou que passam pelo mesmo lugar com frequência, isto é, um grupo de veı́culos que encontram em algum ponto da trajetória. A Figura 8 apresenta o valor para o coeficiente de agrupamento máximo, médio e mediano e a sua devida comparação com os grafos aleatórios durante o dia. Nota-se na Figura 8-(a) que o valor máximo do coeficiente de agrupamento é 100%s durante todo o tempo dos horários de tráfego intenso, o que representa que neste perı́odo existem veı́culos que possuem todos os seus vizinhos conectados entre si. 120 Media Max Mediana 90 60 30 0 0am 6am 12am 6pm Periodo do Dia(h) 12pm Coeficiente de Agrupamento(%) Coeficiente de Agrupamento(%) Quando existem muitos veı́culos em circulação na cidade, principalmente nas áreas centrais, pode aparecer muitos pontos de engarrafamento, principalmente em avenidas as quais recebem fluxos de várias ruas adjacentes. Nestas regiões, existe uma tendência forte de formação de agrupamentos de veı́culos, que compartilham as mesmas rotas e condições de tráfego. Ainda na Figura 8-(a) pode-se observar que o coeficiente de agrupamento médio é 50%, ou seja, metade dos vizinhos de um veı́culo tiveram encontro em algum momento durante sua trajetória. Quando se compara com grafos aleatórios, é possı́vel perceber que a base de dados de Zurich apresenta um coeficiente uma ordem de grandeza maior do que os grafos aleatórios, o que nos leva a constatar que essa base apresenta fortes indicativos de comportamentos sociais, com a formação de comunidades [Watts and Strogatz 1998]. 100 80 Zurich Aleatorio 60 40 20 0 0am 6am 12am 6pm Periodo do Dia(h) (a) Valor médio, (b) Comparação máximo e mediano. grafos aleatórios. 12pm com Figura 8. Evolução do Coeficiente de Agrupamento para a base de Zurich. A Figura 9 apresenta a evolução para o coeficiente de agrupamento durante o dia. É importante lembrar que esta rede apresenta uma alta densidade, o que já é um indicativo para formação de grupos. Nas Figuras 9-(a) e 9-(b), pode-se avaliar o valor máximo, médio e mediano para o coeficiente de agrupamento. Observa-se que o coeficiente tem o seu valor bem próximo de 90% durante todo o dia. Desta forma, praticamente todos os vizinhos de um vértice no grafo possuem conexão entre si; o que torna a rede bastante agrupada. Comparando os valores dos dias da semana para finais de semana, percebe-se uma redução do coeficiente nos finais de semana (cerca de 5%). Essa diferença pode ser atribuı́da ao fato de que, nos finais de semana os destinos são variados, o que implica numa variação das trajetórias efetuadas pelos veı́culos. Ao comparar os resultados com grafos aleatórios (Fig. 9-(c) e 9-(d)), é possı́vel verificar praticamente a existência de um único agrupamento no grafo. 50 90 60 30 0 0am 6am 12am 6pm Período do Dia(h) 12pm 120 Média Max Mediana 90 60 30 0 0am 6am 12am 6pm Período do Dia(h) 12pm 120 São Francisco Aleatório 90 60 30 0 0am 6am 12am 6pm Período do Dia(h) 12pm Coeficiente de Clusterização(%) Média Max Mediana Coeficiente de Clusterização(%) 120 Coeficiente de Clusterização(%) Coeficiente de Clusterização(%) Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ São Francisco Aleatório 120 90 60 30 0 0am 6am 12am 6pm Período do Dia(h) 12pm (a) Dias da semana. (b) Finais de semana. (c) Dias da semana. (d) Finais de semana. Figura 9. Evolução do Coeficiente de Agrupamento para a base de São Francisco. Centralidade de Proximidade: 4 Zurich Aleatorio 0.25 0.2 0.15 0.1 0.05 0 0am 6am 12am 6pm Periodo do Dia(h) (a) Zurich. 12pm 4 São Francisco Aleatório Closeness Centrality 0.3 Closeness Centrality Centralidade de Proximidade A evolução da centralidade de proximidade (Closeness Centrality) no grafo é importante para entender o quão próximo os vértices se encontram. A Figura 10 apresenta o valor médio para o closeness centrality durante o dia para as bases de Zurich e São Francisco. A Figura 10-(a) apresenta os valores para a base de dados de Zurich. Pode-se verificar um crescimento no valor da centralidade de proximidade nos horários de pico. Por definição, quanto maior for o valor desse coeficiente, menor será a distância entre veı́culos. Assim, quando se tem muitos veı́culos, a tendência é que os mesmos se encontrem com maior frequência, principalmente nos horários de pico, nos quais a probabilidade de engarrafamentos é maior. Para a base de São Francisco (Figura 10-(b) e 10-(c)) pode-se observar um comportamento semelhante. Nos horários de pouco tráfico o valor do coeficiente sofre um pequeno decréscimo. Durante o restante do dia, devido à alta densidade de arestas, o valor desse coeficiente tende a ficar constante. Para ambas as bases de dados a comparação com os grafos aleatórios não gerou variações expressivas. 3 2 1 0 0am 6am 12am 6pm Período do dia(h) 12pm São Francisco Aleatório 3 2 1 0 0am 6am 12am 6pm Período do dia(h) 12pm (b) São Francisco (dias (c) São Francisco (finais da semana). de semana). Figura 10. Evolução da Centralidade de Proximidade durante o dia. 5. Conclusões e Trabalhos Futuros Neste trabalho foi apresentada uma análise social para duas bases de dados conhecidas na literatura, a base de Zurich e a base de São Francisco. São duas bases que possuem comportamentos e rotinas diferentes. A primeira representa o tráfego de veı́culos pessoais numa região de grande cidade e a segunda base um conjunto de táxis se deslocando para atender passageiros, também numa grande cidade. A análise da base de dados de Zurich apontou fortes caracterı́sticas sociais, como a presença de comunidades comprovada pela métrica coeficiente de agrupamento e as distâncias curtas entre os vértices no grafo. Podese comprovar também a existência de interesses comuns e rotinas nesta base. Entretanto, a base de São Francisco, por apresentar movimentos de veı́culos de mesma natureza (táxis), em regiões próximas, apresentou uma grande densidade de encontros, com a estrutura bem próxima de um grafo completo. Constata-se também nessa base que a diversidade 51 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ de destinos de um táxi e o seu constante deslocamento diário, deixa-o mais suscetı́vel a encontrar outros veı́culos. Essas caracterı́sticas reforçam a ideia que a análise de um trace sob a perspectiva social deve considerar as peculiaridades da cidade, dos tipos de veı́culos e o seu padrão de mobilidade. Contudo, ao analisar rotinas e padrões de mobilidade de veı́culos, é importante ressaltar que a existência de similaridade nas rotas deve considerar toda a rotina de um condutor e a sua interação com os demais, durante todo o seu trajeto. Como trabalhos futuros, pretende-se analisar outras bases, além de caracterizar essa mobilidade em função de tempo e espaço, tentando quantificar diferenças entre as métricas por regiões numa cidade. Além disso, almeja-se o refinamento desta análise, com a variação dos parâmetros utilizados na construção dos grafos e avaliação de outras métricas. Outro ponto importante a investigar é a aplicação dessas métricas para melhorias de protocolos em redes veiculares. Protocolos de disseminação de dados podem fazer uso de métricas sociais para alcançar melhorias na cobertura e redução do número de transmissão. Além disso, métricas que quantificam interesses comuns podem ser úteis na disseminação de propagandas e informativos na rede. Desta forma, pretende-se aplicar conceitos sociais no desenvolvimento de protocolos de roteamento em redes veiculares. Referências Boukerche, A., Oliveira, H. A. B. F., Nakamura, E. F., and Loureiro, A. A. F. (2008). Vehicular ad hoc networks: A new challenge for localization-based systems. Computer Communications, 31(12):2838–2849. Cunha, F., Carneiro Viana, A., Mini, R. A. F., and A.F. Loureiro, A. (2013). How effective is to look at a vehicular network under a social perception? In 1st International Workshop on Internet of Things Communications and Technologies (IoT’13) (IoT’2013), Lyon, France. Faezipour, M., Nourani, M., Saeed, A., and Addepalli, S. (2012). Progress and challenges in intelligent vehicle area networks. Communications ACM, 55(2):90–100. Fiore, M. and Härri, J. (2008). The networking shape of vehicular mobility. In Proceedings of the 9th ACM international symposium on Mobile ad hoc networking and computing, MobiHoc ’08, pages 261–272, New York, NY, USA. ACM. Hossmann, T., Legendre, F., and Spyropoulos, T. (2009). From Contacts to Graphs: Pitfalls in Using Complex Network Analysis for DTN Routing. In INFOCOM Workshops 2009, IEEE, pages 1–6. IEEE. Johnson, N. L. and Kotz, S. (1977). Urn Models and Their Applications: An Approach to Modern Discrete Probability Theory. Wiley, New York. Liu, X., Li, Z., Li, W., Lu, S., Wang, X., and Chen, D. (2012). Exploring social properties in vehicular ad hoc networks. In Proceedings of the Fourth Asia-Pacific Symposium on Internetware, Internetware ’12, pages 24:1–24:7, New York, NY, USA. ACM. Loulloudes, N., Pallis, G., and Dikaiakos, M. D. (2010). The dynamics of vehicular networks in urban environments. CoRR, abs/1007.4106. Naumov, V., Baumann, R., and Gross, T. (2006). An evaluation of inter-vehicle ad hoc networks based on realistic vehicular traces. In Proceedings of the 7th ACM international symposium on Mobile ad hoc networking and computing, MobiHoc ’06, pages 108–119, New York, NY, USA. ACM. Newman, M. E. J. (2005). Power laws, pareto distributions and zipf’s law. Contemporary Physics, 46:323–351. Piorkowski, M., Sarafijanovic-Djukic, http://crawdad.cs.dartmouth.edu/. N., and Grossglauser, M. (2009). Crawdad trace. Downloaded from Schoch, E., Kargl, F., Weber, M., and Leinmuller, T. (2008). Communication patterns in vanets. Communications Magazine, IEEE, 46(11):119–125. Scott, J. (2000). Social Network Analysis: A Handbook. Sage Publications, second. edition. Tostes, A. I. J., de L. P. Duarte-Figueiredo, F., Assunção, R., Salles, J., and Loureiro, A. A. F. (2013). From data to knowledge: City-wide traffic flows analysis and prediction using bing maps. In SIGKDD International Workshop on Urban Computing, UrbComp’13, Chicago, USA. ACM. Uppoor, S. and Fiore, M. (2012). Insights on metropolitan-scale vehicular mobility from a networking perspective. In Proceedings of the 4th ACM international workshop on Hot topics in planet-scale measurement, HotPlanet ’12, pages 39–44, New York, NY, USA. ACM. Watts, D. J. and Strogatz, S. H. (1998). Collective dynamics of ’small-world’ networks. Nature, 393(6684):440–442. Wellman, B. (2001). Computer networks as social networks. Science, 293(5537):2031–2034. 52 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Uma Abordagem Multicriterial Utilizando o Método ANP para Análise de Centralidade em Redes Sociais Online Fernanda S. B. de Lemos1 , Rafael G. Vieira1 e Janine Kniess1 1 Departamento de Ciência da Computação Universidade do Estado de Santa Catarina (UDESC) – Joinville – SC – Brazil {fsblemos, rafaelgiordano12, jakniess}@gmail.com Abstract. The use of Centrality Measures (CMs) in the analysis of Online Social Networks (OSNs) has proved to be an effective strategy for identification of potentially influential users who can disseminate information on the network faster and more efficiently. Nevertheless, the selection based on individual CMs focuses in a particular user’s attribute that singly may not reflect its real importance. In this sense, this paper presents a multi-criteria approach for analyzing centrality in OSNs by using the ANP method, which are modeled the interrelationships between CMs to provide greater robustness in the central user’s selection. A set of simulations was also performed, showing the consistency and good performance of the proposed method. Resumo. A utilização de Medidas de Centralidade (MCs) na análise de Redes Sociais Online (RSOs) tem demonstrado ser uma boa estratégia para identificar usuários potencialmente influentes que possam difundir informações na rede com maior velocidade e eficiência. No entanto, a seleção realizada por MCs individuais prioriza um atributo especı́fico do usuário, que isoladamente pode não refletir sua real importância. Assim, este trabalho apresenta uma abordagem multicriterial para análise de centralidade em RSOs utilizando o método ANP, onde são modeladas as inter-relações entre MCs para prover maior robustez na seleção do usuário central. Foi realizado um conjunto de simulações, que mostram a consistência e o bom desempenho do método proposto. 1. Introdução Nos últimos anos, as Redes Sociais Online (RSOs) [Henttonen 2010, Heidemann et al. 2012] têm demonstrado ser um conceito poderoso e flexı́vel, exercendo uma grande influência no cotidiano das pessoas. RSOs em geral, como Facebook, ResearchGate e Linkedin, possuem o potencial de divulgar informações mais rápido do que qualquer outra mı́dia tradicional, proporcionando uma grande oportunidade para a disseminação, organização e busca de conhecimento entre pessoas e pesquisadores de diversas áreas [Freeman 2004]. Por todas estas razões, várias pesquisas enfatizam o estudo de RSOs a fim de descobrir maneiras para explorar e rentabilizar este potencial. Estruturalmente, uma RSO pode ser modelada como um grafo, onde os vértices (nós) correspondem aos usuários e as arestas representam as relações entre eles [Wasserman and Faust 1994]. Dentre os diversos problemas que esse tipo de modelagem possibilita solucionar, este trabalho objetiva especificamente determinar quais nós de uma 53 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ rede são classificados como centrais. No contexto desta pesquisa, um nó central é caracterizado pela sua capacidade de divulgar uma informação para o maior número possı́vel de outros nós em um menor número de iterações [Freeman 1978, Landherr et al. 2010]. Isso implica que, muitas vezes, esses nós estejam estruturalmente muito bem integrados na rede e possuam maior influência sobre todos os outros. Esta estratégia é muito promissora pois, uma vez conhecidos esses nós, empresas podem concentrar suas atividades (como publicidade e marketing) unicamente sobre eles para realizar uma rápida difusão de uma marca, um produto ou uma campanha [de Valck et al. 2009]. Embora a utilização de Medidas de Centralidade (MC) para investigar o papel dos nós centrais em RSOs seja amplamente documentada na literatura [Freeman et al. 1979, Bonacich 1987, Hage and Harary 1995, Borgatti 2005, Newman 2005, Guimarães et al. 2013], a seleção desses nós ainda tem sido considerada uma tarefa difı́cil. Isso se deve principalmente à limitações em relação às caracterı́sticas comuns das RSOs, tais como: complexidade estrutural, a evolução da rede, diversidade de nós e conexões, entre outros [Strogatz 2001]. Além disso, cada MC apresenta um comportamento diferente quando aplicada sob diferentes estruturas e topologias [Degila and Sanso 2004]. Para lidar com esses desafios e ao mesmo tempo explorar o enorme potencial proporcionado pelas RSOs, este artigo propõe uma forma alternativa para modelagem de centralidade em RSOs através de uma abordagem multicriterial. A premissa fundamental é de que cada MC possui uma visão parcial da rede. Assim, essas medidas podem ser combinadas a fim de proporcionar maior robustez na seleção do nó central em diferentes cenários, bem como melhorar a compreensão da importância dos próprios nós na RSO. O método ANP (Analytic Network Process) [Saaty 1996, Saaty 2004] constitui a base do método proposto, sendo utilizado para classificar os nós através da inter-relação entre um conjunto de elementos. Para mostrar a significância do método proposto, será realizado um conjunto de simulações utilizando RSOs reais e artificiais, com o objetivo de comparar os resultados do método com as MCs analisadas individualmente. O restante deste artigo está organizado da seguinte forma: a Seção 2 apresenta uma visão geral acerca de centralidade em RSOs e os trabalhos relacionados. A Seção 3 especifica o método proposto, incluindo as etapas para o funcionamento do método ANP. Na Seção 4, é realizado um conjunto de experimentos para avaliar o método proposto, apresentando os resultados preliminares. Por fim, a Seção 5 resume as conclusões obtidas e discute trabalhos futuros. 2. Trabalhos Relacionados Durante muitos anos, a ideia de centralidade tem sido tema principal no estudo de sistemas sociais, sendo assumida como uma relação entre o local de um indivı́duo na rede e a sua influência e poder em processos de grupo [Bavelas 1948, Wasserman and Faust 1994]. Quando relacionada às RSOs, a identificação de elementos centrais é um problema antigo à primeira vista. As noções clássicas de centralidade advieram de [Bonacich 1972, Freeman 1978] que procuraram quantificar a importância estrutural dos agentes em uma rede. [Freeman et al. 1979] particularmente definiram centralidade em termos de medidas (MCs), classificando-as em três conceitos-chave: centralidade de grau, proximidade e intermediação, cada uma com implicações importantes sobre como centralidade pode 54 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ afetar processos de grupo. Devido à grande popularização das RSOs nos últimos anos, vários estudos publicados têm proposto maneiras mais eficientes de medir centralidade em RSOs. Em um amplo estudo, [Gomez et al. 2013] abordam o problema de otimização de fluxo em RSOs. Nesse sentido, foi mostrado como algumas MCs podem ser melhoradas quando são levados em consideração mais de um critério para análise. Como resultado, os autores verificaram que a utilização de modelos com mais de um critério (seja bicriterial ou multicriterial) são mais adequados em estruturas construtivas, ou seja, onde a interação entre os elementos consiste em uma etapa crucial do processo de tomada de decisão. Uma outra abordagem para análise de centralidade é encontrada em [Abbasi and Hossain 2013], onde os autores apresentam um conjunto de MCs hı́bridas, que combinam MCs já documentadas na literatura a fim de melhorar suas eficiências. As novas MCs apresentadas são Degree-Degree, Degree-Closeness e Degree-Betweenness que estendem as MCs de grau, proximidade e intermediação, respectivamente. O trabalho realiza uma análise comparativa entre as MCs propostas e as individuais, demonstrando a eficácia da abordagem proposta. Em [Valente et al. 2008], é realizada uma análise através de 62 redes sociais para verificar a existência de correlações entre quatro MCs: grau, proximidade, intermediação e autovetor. Os autores partem do princı́pio de que todas as MCs se baseiam em diferentes cálculos matemáticos (critérios) e que uma alta correlação entre elas pode acarretar em uma redundância de cálculo, fazendo com que seja provável que ambas encontrem o mesmo elemento na rede. Por outro lado, se MCs não são altamente correlacionadas, pode-se dizer que elas apresentam cálculos distintos, o que podem estar associadas à resultados eficientes. Como resultado, os autores verificam que apesar de as MCs serem conceitualmente relacionadas, os valores das correlações indicam que as MCs são naturalmente distintas. Apesar do valor agregado aos trabalhos apresentados e de suas contribuições para a elaboração desta pesquisa, nenhum deles apresentaram uma forma de generalizar a utilização de MCs em apenas um método, para que esse possa realizar uma análise multicriterial levando em conta a relação entre essas medidas e os elementos da rede. Também não foram encontrados na literatura trabalhos que abordem especificamente as MCs sob o ponto de vista multicriterial para a seleção de elementos centrais em uma RSO. Considerando as MCs identificadas na literatura e baseando-se em [Valente et al. 2008], estão sendo consideradas para este trabalho as MCs de grau, proximidade e intermediação [Freeman 1978, Freeman et al. 1979]. A escolha se deu em função do grande número de estudos cientı́ficos para todas as três MCs [Landherr et al. 2010] e por elas se adequarem aos aspectos mais simples vistos em RSOs, tais como relações não direcionadas e arestas não ponderadas. Nesse sentido, dado um vértice v ∈ V pertencente a um grafo G(V , E) e |N | o número de nós em V , os valores normalizados para cada MC são definidos através das definições apresentadas a seguir [Freeman 1978]: Definição 2.1. A centralidade de grau CG (v) corresponde ao número de arestas incidentes ao nó v (representado por adjv ), sendo definida por: 55 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ adjv |N | − 1 CG (v) = (1) Definição 2.2. A centralidade de proximidade CP (v) corresponde à soma do comprimento de todos os menores caminhos entre v e todos os demais vértices t de G (denotado por dG (v, t)). É definida por: |N | − 1 t∈V dG (v, t) CP (v) = P (2) Definição 2.3. A centralidade de intermediação CI (v) é calculada através da razão entre o número de vezes em que um nó v serve como intermédio para o menor caminho g entre quaisquer dois outros nós j e k de G (representado por gjk (v)) e o número total de menores caminhos entre j e k (representado por gjk ). É definida por: 2· CI (v) = Pn j=1;j6=v Pn k=j+1;k6=v gjk (v) gjk (|N | − 1) · (|N | − 2) (3) 3. Método Proposto A utilização de MCs tradicionais para análise de centralidade em RSOs geralmente acarreta na priorização de um atributo especı́fico dos nós [Costenbader and Valente 2003]. Por exemplo, a centralidade de grau determina a popularidade de um nó (em relação ao número de arestas adjacentes), enquanto a centralidade de intermediação indica o seu potencial de comunicação dentro da rede. Ao levar em conta uma avaliação envolvendo mais de uma MC, espera-se obter maior capacidade para explorar as caracterı́sticas e funções dos nós, de maneira mais abrangente e integrada. Nesse sentido, o método proposto neste trabalho tem como objetivo combinar o potencial de duas ou mais MCs para melhor selecionar o nó central em uma RSO. A premissa inicial é de que a análise de centralidade em RSOs pode ser considerada um problema de decisão com múltiplos critérios (Multiple Criteria Decision Making, abreviado por MCDM) [Korhonen et al. 1992], pois dentre todas as alternativas possı́veis (nós), deve-se escolher uma considerando múltiplas MCs. Para isso, será adotado como base o método multi critério chamado ANP (Analytic Network Process), pois ele é capaz de lidar com elementos interdependentes e proporcionar um ambiente integrado para a avaliação de relações em sistemas complexos. Além disso, o método ANP é empregue com sucesso na literatura [Saaty 2004] em problemas que envolvam tomadas de decisão com múltiplas variáveis, critérios, e relações entre eles. No contexto dessa pesquisa, o ANP aplicado à seleção do nó central será sumarizado em cinco etapas: Etapa 1. Construção da estrutura da rede: O processo inicial para a delimitação do método ANP consiste na identificação e estruturação dos elementos pertencentes à três grupos básicos: objetivo (Obj), critérios (C) e alternativas (A). O objetivo neste trabalho 56 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ consiste em selecionar o nó central na RSO; os critérios são representados pelo conjunto C = {C1 , C2 , ..., Cm } das m MCs que estão sendo consideradas; e as alternativas pelo conjunto A = {A1 , A2 , ..., An } de todos os n nós da RSO. A Figura 1 ilustra a estrutura da rede, que engloba o objetivo, critérios, alternativas, e suas relações (representadas pelas setas, que são especificadas na Etapa 2). Critérios (C) Alternativas (A) Medida de Centralidade 1 Nó 1 Medida de Centralidade 2 Nó 2 Medida de Centralidade m Nó n Objetivo (Obj) Selecionar o Nó Central Figura 1. Estrutura da rede ANP Etapa 2. Definição de relações entre elementos: Nesta etapa são estabelecidas e ponderadas todas as relações entre os elementos identificados na Etapa 1. Essas relações representam a influência de um elemento sobre outro e, seja n o número de nós de uma RSO e m o número de MCs sendo consideradas para análise, no contexto desta pesquisa as relações são divididas em quatro tipos, como formalizado a seguir: 1. Relações do objetivo para os critérios: Corresponde ao grau de importância de cada critério (C) sobre o objetivo (Obj). A matriz-coluna R1 (Equação 4) contém os valores de todas as relações do objetivo Obj para cada critério Cj , onde j ∈ [1, m]. Os valores dessas relações devem ser atribuı́dos de acordo com o peso que se deseja para cada critério de forma que a soma destes pesos resulte em 1. Por exemplo, para m = 3, r11 = 1 (100%), r12 = 0 (0%) e r13 = 0 (0%), o método aqui proposto irá levar em consideração apenas r11 , que nesse caso possui 100% do peso no cálculo da matriz R1 , resultando na seleção do mesmo nó obtido se fosse utilizado apenas o critério C1 . Obj C1 r11 C2 r12 R1 = .. . . .. (4) Cm r1m 2. Relações de critérios para critérios: Definidas na matriz R2 (Equação 5), as relações r2ij entre critérios representam o grau de influência que um critério Ci exerce sobre outro critério Cj , para i 6= j. No contexto desse trabalho, esses valores são definidos através do nı́vel de correlação atribuı́do entre duas MCs. Por exemplo, se CG corresponder à centralidade de grau e CG e o grau de correlação entre ela e à centralidade de proximidade CP for igual à 0.8, tem-se r212 = 0.8. 57 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ C1 C1 0 C2 r221 R2 = .. . . .. Cm r2m1 C2 r212 0 .. . r2m2 ... ... ... .. . ... Cm r21m r22m .. . (5) 0 3. Relações de critérios para alternativas: Cada elemento da matriz R3 (Equação 6) corresponde à influência que uma alternativa (nó) Ai exerce sobre um critério Cj , ou seja, o valor da centralidade de cada alternativa Ai utilizando o critério Cj em questão. Por exemplo, se C1 corresponder à centralidade de grau (CG – Seção 2) e o valor dessa centralidade para a alternativa A2 for igual à 0.6 (Seção 2), tem-se que r321 = 0.6. C1 A1 r311 A2 r321 R3 = .. . . .. C2 r312 r322 .. . An r3n1 r3n2 ... ... ... ... ... Cm r31m r32m .. . (6) r3nm 4. Relações de alternativas para critérios: Essas relações são representadas pelos elementos r4ij da matriz R4 = (R3 )T e correspondem à influência de um critério Ci sobre uma alternativa Aj , como mostrado na Equação 7. A1 C1 r411 C2 r421 R4 = .. . . .. A2 r412 r422 .. . Cm r4m1 r4m2 ... ... ... ... ... An r41n r42n .. . (7) r4mn Após a especificação das matrizes R1 , R2 , R3 e R4 , cada coluna i da matriz Rt (para t = 1, 2, 3, 4) deve ter seus valores normalizados, de acordo com a Equação 8 [Montgomery and Runger 2011]: rtij rtN ij = Pd k=1 rtkj (8) onde rtij ∈ Rt é definido como o valor não normalizado da relação entre dois elementos i e j; rtN ij corresponde ao valor normalizado que substituirá rtij em Rt ; e d é a dimensão da coluna da matriz Rt . Essa normalização garante que a soma de todos os elementos para cada coluna das matrizes R1 , R2 , R3 e R4 seja igual à 1. Etapa 3. Construção da Supermatriz Não-Ponderada: Nesta etapa, os valores normalizados das relações obtidas na Etapa 2 serão adicionados à Supermatriz Não-Ponderada WN P (Equação 9). Esta Supermatriz contém as inter-relações entre todos os elementos do sistema e representa a importância de cada elemento (objetivo, critérios e alternativas) dentro de cada grupo separadamente. A Supermatriz WN P possui dimensão d × d, onde 58 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ d = m + n + 1 (1 representa a dimensão de Obj), e é composta pelas quatro matrizes (R1 , R2 , R3 e R4 ) especificadas na Etapa 2: A1 A1 WN P 0 A2 0 .. . . .. An 0 = C r4 1 11 C2 r421 .. .. . . Cm r4m1 Obj 0 A2 ... An C1 0 ... 0 r311 0 .. . ... ... 0 .. . r321 .. . 0 ... 0 r3n1 r412 ... r41n r211 r422 . . . .. R4 . . . . r42n .. . r221 .. . r4m2 0 r4mn 0 r2m1 0 ... ... C2 ... .. r312 . .. r322 . .. R3 . . . . .. r3n2 . .. r212 . .. r222 . .. R2 . . . . r2m2 . . . 0 ... Cm r31m r32m .. . r3nm r21m r22m .. . r2mm 0 Obj 0 0 r11 r12 R. 1 .. r1m 0 0 .. . (9) As relações objetivo/objetivo, alternativa/alternativa e alternativa/objetivo não são consideradas nesse trabalho, e portanto são atribuı́das com valor zero. Etapa 4. Construção da Supermatriz Ponderada: A partir da Supermatriz NãoPonderada WN P obtida na Etapa 3, esta etapa consiste em construir a Supermatriz Ponderada WP , uma matriz estocástica que representa a importância de cada elemento considerando todos os grupos (Obj, C e A) simultaneamente. Para isso, deve ser aplicado um procedimento de normalização semelhante ao aplicado na Equação 8 [Montgomery and Runger 2011], onde para cada coluna, divide-se cada elemento pelo somatório de todos seus elementos, como apresentado na Equação 10. (WN P )ij (WP )ij = Pd k=1 (WN P )kj (10) Etapa 5. Cálculo da Supermatriz Limite: A última etapa do método ANP consiste em calcular a Supermatriz Limite WL , elevando a Supermatriz Ponderada WP à potência ((WP )k para k = 1, 2, ...) até a convergência de seus valores, de modo que para toda coluna i de WP , (WP )i = (WP )i+1 . Essa convergência sempre ocorre, devido à natureza estocástica da Supermatriz WP , sendo na maioria dos casos k < 4. Logo, os resultados finais são representados por uma matriz-coluna WF (Matriz Final) que é gerada a partir de qualquer coluna i da Supermatriz Limite WL . A Matriz Final tem como objetivo relacionar os pesos de cada alternativa A em função do objetivo Obj, como pode ser apresentado na Equação 11: Obj A1 p 1 A2 p 2 WF = .. . . .. An 59 pn (11) Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Por fim, pode-se obter um ranking de todas as alternativas contidas em WF , que no contexto desse trabalho corresponde à classificação dos nós com maior ı́ndice de centralidade na RSO. Nesse caso, o nó com o maior ı́ndice de centralidade (AC ) é calculado a partir de AC = max(WF ) ou seja, o nó que possuir o maior valor dentre todos os valores contidos em WF . 4. Avaliação A fim de avaliar o comportamento do método proposto, foram realizadas simulações computacionais englobando uma análise de difusão de marketing viral em RSOs. Marketing viral descreve qualquer estratégia que encoraja os indivı́duos a passar uma mensagem de marketing para outros, criando potencial para o crescimento na exposição e influência da mensagem [Wilson 2000]. Nesse sentido, as próximas subseções apresentam os resultados obtidos mediante as simulações. 4.1. Configuração das Simulações O ambiente de simulação é composto por um conjunto de seis redes, sendo quatro delas RSOs reais e duas delas redes geradas artificialmente, como pode ser visualizado na Tabela 1. As RSOs reais (nomeadas por RS1 , RS2 , RS3 e RS4 ) foram obtidas a partir dos projetos SNAP (Stanford Analysis Project Network) [SNAP 2013] e Konect (Koblenz Network Collection) [Konect 2013] onde RS1 e RS2 correspondem a subgrafos da RSO Facebook e RS3 e RS4 correspondem a subgrafos da RSO Orkut. As redes artificiais (nomeadas por RS5 e RS6 ) foram geradas através da ferramenta Gephi [Bastian et al. 2009]. A distribuição e o número das redes analisadas podem ajudar na validação do método proposto de duas maneiras: 1) em primeiro lugar, avaliar o desempenho das MCs em diferentes cenários, o que proporciona uma maior confiança sobre os resultados; 2) verificar quais caracterı́sticas das redes possuem maior impacto sobre a eficiência do método proposto. Tabela 1. Caracterı́sticas das seis redes analisadas [SNAP 2013, Konect 2013, Bastian et al. 2009] RSOs Nós Arestas Tipo Diâmetro† Coef. de Clustering∗ RS1 (Facebook) 530 4.732 Real (RSO) 9 0.545 RS2 (Facebook) 3.020 45.538 Real (RSO) 16 0.486 RS3 (Orkut) 775 14.006 Real (RSO) 10 0.478 2.033 37.444 Real (RSO) 11 0.550 635 10.075 Artificial 3 0.050 10.047 Artificial 6 0.005 RS4 (Orkut) ∗ RS5 (p = 0.01 ) RS6 (p = 0.005∗ ) 2.014 ∗ † Probabilidade de ligação entre os nós (valores retirados de [Landherr et al. 2010]) Valores obtidos mediante análise através da ferramenta Gephi [Bastian et al. 2009] Os testes serão aplicados de maneira idêntica para todas as redes, de modo a padronizar os resultados, melhorar a precisão da simulação e propiciar resultados mais confiáveis. Os testes consistem em simular a difusão de um anúncio em todas as seis redes, onde para cada uma delas são selecionados previamente cinco nós, sendo três deles 60 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ através das três MCs apresentadas (grau, proximidade e intermediação), um deles através do método aqui proposto e um deles selecionado aleatoriamente. O anúncio é difundido a partir de cada um dos cinco nós individualmente para verificar o desempenho de cada um em função do número de outros nós atingidos com o anúncio. Como forma de validar os resultados, é importante possuir conhecimento de algumas caracterı́sticas adicionais das RSOs que podem implicar em uma maior ou menor velocidade de difusão, como diâmetro e o coeficiente de clustering (Tabela 1). Por exemplo, um diâmetro alto pode implicar na presença de “caudas” no grafo, como pode ser visualizado na Figura 2(a), o que aumenta o número de iterações para que todos os nós sejam atingidos. Já um coeficiente de clustering alto, como visualizado na Figura 2(b), pode indicar um grafo denso e por conseguinte uma difusão mais veloz. Presença de cauda no grafo Fluxo de informação entre os nós do grafo (a) Presença de caudas (b) Alto coeficiente de clustering Figura 2. Aspectos comuns visualizados em grafos de RSOs A configuração inicial do método proposto é definida obedecendo às especificações apresentadas na Tabela 2. Os critérios do método correspondem às três MCs definidas na Seção 2 (centralidade de grau, proximidade e intermediação), cujos valores das correlações derivam dos resultados obtidos por [Valente et al. 2008] em relação às correlações entre as três MCs. Os pesos das relações entre os critérios (C) e o objetivo (Obj) foram definidos de forma a não priorizar nenhum critério, ou seja, cada critério recebe a mesma importância em relação ao objetivo (Tabela 2). As relações entre critérios e alternativas são obtidas dinamicamente através das simulações para cada rede analisada. Tabela 2. Relações critérios–critérios e objetivo–critérios [Valente et al. 2008] C1 C2 C3 C1 0.000 0.700 0.560 Centralidade de Intermediação C2 0.700 0.000 0.390 Centralidade de Proximidade C3 0.560 0.390 0.000 Selecionar Nó Central Obj 0.333 0.333 0.334 Centralidade de Grau 4.2. Especificações de Hardware e Software A análise de centralidade com base no método proposto resultou na necessidade de se desenvolver um protótipo computacional capaz de realizar todos os procedimentos necessários para viabilizar a geração dos resultados de forma integrada, visto que as ferramentas encontradas na literatura realizam cada procedimento de forma independente. Nesse sentido, o protótipo desenvolvido possui três principais funções: 61 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ • Calcular os valores das MCs de grau, proximidade e intermediação para cada nó da RSO sendo analisada; • Implementar computacionalmente os procedimentos de cálculo para o método ANP, alterando seus critérios de acordo com o contexto desse trabalho; • Simular a difusão de um anúncio de marketing na rede para cada um dos cinco nós selecionados. Essa difusão ocorre a partir de um número de iterações (rounds), onde a cada iteração todos os nós difundem o anúncio recebido para todos os demais (estratégia de broadcast, semelhante a um procedimento de busca em largura), admitindo uma distribuição normal de probabilidade PN ∈ [0, 100] por cento de chance de um nó transmiti-lo a cada iteração. Para a realização das simulações foram utilizadas máquinas AMD Phenom 2.8GHz, 4.0GB de memória RAM e distribuição Linux Ubuntu 12.04 de 32 bits. TM X4 4.3. Resultados Os resultados apresentados nesta seção comparam o desempenho das diferentes MCs (grau, proximidade e intermediação) com o método aqui proposto, quando avaliados sob diferentes cenários. As Figuras 3(a) – 3(d) apresentam os resultados obtidos mediante a análise de cada uma das quatro RSOs reais utilizadas (R1 , R2 , R3 e R4 ), onde cada análise é representada por um gráfico de linhas. Em cada gráfico, o eixo vertical corresponde ao número de nós que receberam o anúncio difundido em cada iteração (que varia de 0 até o número de nós em cada RSO) e o eixo horizontal corresponde ao número de iterações (rounds) decorridas, que varia de 0 até n (onde n representa o valor da iteração onde todas as medidas atingem todos os nós da RSO). Cada gráfico também é composto por cinco linhas, onde cada uma delas representa uma das cinco medidas sendo analisadas. Assim, quanto antes a linha atingir o valor máximo no eixo vertical, mais eficiente será a medida associada a essa linha. A partir dos resultados apresentados nas Figuras 3(a) – 3(d), pode-se perceber que em todos os quatro cenários (R1 , R2 , R3 e R4 ), o nó selecionado através do método proposto apresentou igual ou melhor desempenho em relação aos nós selecionados pelas MCs individualmente. Especificamente nas Figuras 3(a) – 3(d), pode-se perceber um comportamento semelhante na acentuação da curva representada pelo método proposto em relação às demais curvas. Naturalmente, a MC de grau possui maior acentuação nas primeiras duas iterações (dado que seu mecanismo de funcionamento seleciona o nó com o maior número de adjacências), no entanto, a curva representada pelo método proposto ganha força a partir da segunda iteração, devido ao maior potencial de difusão apresentado pelos “amigos dos amigos” do nó selecionado, estabelecendo-se como principal componente para a difusão nas iterações subsequentes. A atenuação de todas as curvas nas últimas iterações é implicada pela presença de caudas nas RSOs. Pode-se notar também que nas Figuras 3(a) e 3(c) o nó selecionado pelo método proposto foi o mesmo que o nó selecionado pela MC de intermediação e proximidade, respectivamente (a linha do método sobrepõe as linhas das outras duas MCs). Uma hipótese para esses resultados é que o tamanho das RSOs simuladas, aliados ao baixo diâmetro e alto coeficiente de clustering, tornam-se fatores fundamentais para que alguns nós possam 62 100 100 80 80 Nós atingidos (em %) Nós atingidos (em %) Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 60 40 Grau Proximidade Intermediação Método proposto Aleatório 20 0 0 2 4 6 8 10 60 40 Grau Proximidade Intermediação Método proposto Aleatório 20 0 12 0 2 4 Iterações 100 100 80 80 60 40 Grau Proximidade Intermediação Método proposto Aleatório 0 0 2 4 6 8 10 12 (b) RS2 (Facebook) – 3020 nós Nós atingidos (em %) Nós atingidos (em %) (a) RS1 (Facebook) – 530 nós 20 6 Iterações 8 10 60 40 Grau Proximidade Intermediação Método proposto Aleatório 20 0 12 0 Iterações 2 4 6 8 10 12 Iterações (c) RS3 (Orkut) – 775 nós (d) RS4 (Orkut) – 2033 nós Figura 3. Difusão de um anúncio pelos nós centrais em quatro RSOs reais. exercer influência quase total sobre a RSO. Como há poucos nós em relação às demais RSOs simuladas, a utilização de MCs individuais, como intermação e proximidade, são adequadas para essas situações e conseguem encontrar com facilidade o nó central na RSO. Por sua vez, o nó selecionado pelo método proposto nesse trabalho baseia-se nos cálculos dessas MCs e também seleciona o mesmo nó, apresentando igual desempenho. A comparação entre as MCs e o método proposto também levaram em conta as redes artificiais (geradas aleatoriamente), como mostrado nas Figuras 4(a) e 4(b). A análise realizada em redes artificiais é importante no contexto desse trabalho para verificar a eficácia do método quanto à sua aplicabilidade no contexto das RSOs, ou seja, se o seu desempenho é restrito às propriedades estruturais das RSOs ou se pode ser aplicado em qualquer tipo de rede. Essa análise é também adequada para verificar a diferença na eficiência geral das MCs sendo analisadas, quando comparadas com RSOs reais. Os resultados apresentados nas Figuras 4(a) e 4(b) mostram que, indiferentemente ao tamanho da rede, o método proposto tende a selecionar o nó com as mesmas propriedades de uma das MCs analisadas (Na Figura 4(a) o nó selecionado pelo método proposto foi o mesmo que o nó selecionado pela MC de proximidade, enquanto na Figura 4(b), pela MC de intermediação). Isso ocorre primeiramente devido à ausência de estruturas e caracterı́sticas bem definidas na rede (grafo aleatório), o que gera alterações significativas entre os valores de cada MCs (como por exemplo um nó com alta MC de grau e baixa MC de intermediação), desbalanceando o valor resultante do método e priorizando apenas 63 100 100 80 80 Nós atingidos (em %) Nós atingidos (em %) Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 60 40 Grau Proximidade Intermediação Método proposto Aleatório 20 0 0 1 2 3 4 5 60 40 Grau Proximidade Intermediação Método proposto Aleatório 20 0 6 0 Iterações 1 2 3 4 5 6 Iterações (a) RS5 (Aleatória) – 635 nós (b) RS6 (Aleatória) – 2014 nós Figura 4. Difusão de um anúncio pelos nós centrais em duas RSOs artificiais uma MC como critério de análise. De qualquer maneira, o nó selecionado pelo método proposto nesse trabalho mostrou ser a melhor escolha nos dois cenários apresentados. Apesar de seu desempenho estar sempre associado a uma das MCs, o método consegue, para cada cenário, obter a melhor opção. Isso mostra que o método tende a fazer a melhor escolha frente a cada diferente cenário. 5. Conclusão Este trabalho apresentou uma abordagem multicriterial para modelagem de centralidade em Redes Sociais Online (RSOs). De modo geral, o problema de se encontrar os elementos centrais dentro de uma rede consiste em um dos maiores desafios no estudo das redes sociais. A importância desse problema está vinculada ao grande potencial que esses nós representam à rede, podendo ser utilizados para diversos fins, como por exemplo, para investigação da influência em redes inter organizacionais e para disseminação de um anúncio ou propaganda. Baseando-se nesse problema, foi proposto um novo método que busca analisar a centralidade em RSOs a partir de uma abordagem multicriterial. O método baseia-se fortemente na utilização de Medidas de Centralidade (MCs) como critérios de avaliação para cada elemento da RSO, utilizando para isso o apoio de um método de tomada de decisão chamado ANP. A premissa fundamental do método proposto é de que, combinando propriedades de MCs já existentes e as relacionando com cada usuário da RSO é possı́vel obter maior robustez na seleção do nó central em diferentes cenários. Foram realizados um conjunto de testes e simulações levando em conta um conjunto de seis redes, onde quatro delas são RSOs reais e duas delas são redes artificiais. As simulações consistiram na difusão de um anúncio de marketing em cada rede a fim de analisar se o nó escolhido pelo método proposto se mostrou mais eficiente do que os nós escolhidos pelas MCs isoladamente. Os resultados obtidos mostraram-se promissores em relação à finalidade do método. Em todos os cenários simulados, o nó selecionado pelo método proposto obteve desempenho igual ou melhor do que os nós selecionados pelas MCs individualmente. Foi constatado também que apesar de em redes aleatórias os resultados apresentados pelo método proposto mostrarem igual desempenho quando comparadas às MCs individuais, o método obtém melhor eficiência quando aplicado em RSOs de tamanho maior, devido à menor controlabilidade de um único nó sobre a RSO. 64 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ O método ANP também mostrou-se adequado para a modelagem de centralidade, devido à sua capacidade de lidar com elementos interdependentes (MCs) e proporcionar um ambiente integrado para a avaliação de todas as relações dentro das RSOs. As três MCs escolhidas para representar os critérios do ANP também mostram-se adequadas em relação à literatura, pois são alvo das principais fontes de estudos entre pesquisadores e por suas médias correlações, que as tornam naturalmente distintas. Embora aplicado apenas a problemas envolvendo RSOs, o método proposto pode ser facilmente adaptado para outros domı́nios de aplicação, apenas mudando a maneira como os parâmetros são calculados. No entanto, é necessário considerar algumas limitações inerentes à estrutura do método aqui proposto, tais como a necessidade de se obter conhecimento total da rede e a falta de critérios para a seleção das MCs mais apropriadas para compor o método. Além disso, é necessário realizar uma análise de maior abrangência e com um maior número de MCs para avaliar o aumento de complexidade do método, bem como potenciais vantagens. Nesse sentido, trabalhos futuros objetivam expandir o método, englobando um maior conjunto de MCs, bem como realizar uma análise comparativa com outros métodos multicriteriais, tais como AHP [Saaty 2004] e Redes Bayseanas [Heckerman 1996], que devido à limitação no número de páginas do artigo, não optou-se por abordar. Além disso, trabalhos futuros objetivam realizar a redução do custo computacional associado ao método proposto através da aplicação de estratégias de otimização, como por exemplo heurı́sticas e exponenciação de matrizes. Referências Abbasi, A. and Hossain, L. (2013). Hybrid centrality measures for binary and weighted networks. In 3rd International Workshop on Complex Networks (CompleNet’12), pages 1–7, Florida, USA. Bastian, M., Heymann, S., and Jacomy, M. (2009). Gephi: An open source software for exploring and manipulating networks. California, USA. Bavelas, A. (1948). A mathematical model of group structure. Human Organizations, 7:16–30. Bonacich, P. (1972). Factoring and weighting approaches to status scores and clique identification. Journal of Mathematical Sociology, 2(1):113–120. Bonacich, P. (1987). Power and centrality: A family of measures. American Journal of Sociology, 92(5):1170–1182. Borgatti, S. P. (2005). Centrality and network flow. Social Networks, 27(1):55–71. Costenbader, E. and Valente, T. W. (2003). The stability of centrality measures when networks are sampled. Social Networks, 25(4):283–307. de Valck, K., van Bruggen, G. H., and Wierenga, B. (2009). Virtual communities: A marketing perspective. Decision Support Systems, 47(3):185–203. Degila, J. R. and Sanso, B. (2004). A survey of topologies and performance measures for large-scale networks. Communications Surveys Tutorials, IEEE, 6(4):18–31. Freeman, L. C. (1978). Centrality in social networks: conceptual clarification. Social Networks, 1(3):215–239. 65 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Freeman, L. C. (2004). The Development of Social Network Analysis: A Study in the Sociology of Science. Empirical Press, Vancouver, Canada. Freeman, L. C., Roeder, D., and Mulholland, R. R. (1979). Centrality in social networks: II. experimental results. Social Networks, 2(2):119–141. Gomez, D., Figueira, J. R., and Eusebio, A. (2013). Modeling centrality measures in social network analysis using bi-criteria network flow optimization problems. European Journal of Operational Research, 226(2):354–365. Guimarães, A. a., Vieira, A. B., Silva, A. P. C., and Ziviani, A. (2013). Fast centralitydriven diffusion in dynamic networks. In 22nd Int. Conf. on World Wide Web, pages 821–828. Hage, P. and Harary, F. (1995). Eccentricity and centrality in networks. Social Networks, 17(1):57–63. Heckerman, D. (1996). A tutorial on learning with bayesian networks. Technical report, Learning in Graphical Models. Heidemann, J., Klier, M., and Probst, F. (2012). Online social networks: A survey of a global phenomenon. Computer Networks, 56(18):3866–3878. Henttonen, K. (2010). Exploring social networks on the team level – a review of the empirical literature. Journal of Engineering and Technology Management, 27(2):74– 109. Konect (2013). The koblenz network collection. http://konect.uni-koblenz.de/. Korhonen, P., Moskowitz, H., and Wallenius, J. (1992). Multiple criteria decision support - a review. European Journal of Operational Research, 63(3):361–375. Landherr, A., Friedl, B., and Heidemann, J. (2010). A critical review of centrality measures in social networks. Business & Information Systems Engineering, 2(6):371–385. Montgomery, D. C. and Runger, G. C. (2011). Applied Statistics and Probability for Engineers. John Wiley & Sons, New Jersey, USA. Newman, M. J. (2005). A measure of betweenness centrality based on random walks. Social Networks, 27(1):39–54. Saaty, T. L. (1996). Decision making with dependence and feedback: The analytic network process. RWS Publications, Pittsburgh, USA. Saaty, T. L. (2004). Decision making – the analytic hierarchy and network processes (ahp/anp). Journal of Systems Science and Systems Engineering, 13(1):1–35. SNAP (2013). Stanford network analysis project. http://snap.stanford.edu/. Strogatz, S. H. (2001). Exploring complex networks. Nature, 410(6825):268–276. Valente, T. W., Coronges, K., Lakon, C., and Costenbader, E. (2008). How correlated are network centrality measures? Connections (Toronto, Ont.), 28(1):16–26. Wasserman, S. and Faust, K. (1994). Social network analysis: methods and applications. Cambridge University Press, New York, USA. Wilson, R. F. (2000). The six simple principles of viral marketing. Web Marketing Today, 70(1):1–3. 66 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Análise de Risco em Redes P2P baseada em KPIs de Colaboração e de Infraestrutura Rafael Giordano Vieira1 , Omir Correia Alves Junior1 and Adriano Fiorese1 1 Departamento de Ciência da Computação Universidade do Estado de Santa Catarina (UDESC) – Joinville – SC – Brazil {rafaelgiordano12, omalves, adriano.fiorese}@gmail.com Abstract. The development of collaborative networked environments has become a key factor for Service Providers (SPs) successfully leverage their business activities. Nevertheless, the volatility of these networks leads to several additional risks, that need to be identified, measured, and mitigated through a well-defined process. In this sense, this paper presents a supporting decision method for selecting the most suitable SPs within a P2P network, taking into account a risk analysis based on collaboration and infrastructure KPIs to compose Virtual Organizations (VOs). A computational prototype was also specified and used to execute a set of tests to assess the proposed risk analysis method. Resumo. O desenvolvimento de ambientes colaborativos em rede tornou-se um fator chave para que Provedores de Serviços (PSs) possam alavancar com sucesso suas atividades de mercado. No entanto, a volatilidade dessas redes propicia diversos riscos adicionais, que precisam ser identificados, medidos e mitigados através de um processo bem definido. Nesse sentido, este artigo apresenta um método de apoio à tomada de decisão que realiza a seleção de PSs em redes P2P, levando em conta uma análise de risco baseada em KPIs de colaboração e de infraestrutura de redes para a composição de Organizações Virtuais (OVs). Um protótipo computacional também foi desenvolvido para executar um conjunto de simulações de modo a avaliar a eficiência do método proposto. 1. Introdução Nos últimos anos, a prestação de serviços tornou-se uma das principais fontes de receitas em toda a Internet. Em particular, a evolução das Redes de Sobreposição de Serviços P2P (P2P SON) [Duan et al. 2003, Fiorese et al. 2012] têm proporcionado um ambiente favorável para que os Provedores de Serviços (PSs) possam tornar os seus serviços disponı́veis à comunidade de usuários em geral. A combinação das redes P2P e SON oferece um elevado potencial para o gerenciamento de serviços, impulsionada pela criação de redes dinâmicas e auto-organizáveis entre os diversos PSs. Além disso, uma grande variedade de serviços pode ser disponibilizada nessas redes, onde preço e qualidade podem ser diferenciais competitivos [Zhou et al. 2005]. O conceito de P2P SON se aplica a uma ampla gama de aplicações de rede. Este artigo lida particularmente com um tipo de aplicação de rede especı́fico, denominada Organização Virtual (OV). Uma OV pode ser entendida como uma aliança estratégica dinâmica e temporária, formada por empresas autônomas, heterogêneas e, geralmente, 67 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ geograficamente dispersas, criadas para atender uma oportunidade de negócio especı́fica [Mowshowitz 1997, Camarinha-Matos and Afsarmanesh 2005]. Neste sentido, uma P2P SON proporciona um ambiente para a formação das OVs e ao mesmo tempo fornece benefı́cios para os PSs que a compõem, ou seja, proporciona a partilha de custos, largura de banda, dentre outros[Duan et al. 2003]. Embora as vantagens proporcionadas pela utilização de P2P SONs possam melhorar o processo de formação de uma OV, a grande volatilidade presente na estrutura de uma OV implica em alguns riscos adicionais, que possuem fontes incertas quando comparadas a estilos tradicionais de cooperação [Alawamleh and Popplewell 2010]. Por esta razão, a formação de uma OV não é garantida e necessita do apoio de métodos que quantifiquem o risco envolvido e para tanto necessitam de um ou mais critérios para análise, apoiado por um conjunto de Indicadores de Desempenho Chave (do inglês, Key Performance Indicators, ou KPIs) [Junior and Rabelo 2013]. A utilização desses métodos, além de propiciar menor nı́vel de subjetividade na análise, se mostram adequados especialmente quando se trata de redes de serviços mais complexas [Neely et al. 1997]. Este artigo apresenta uma pesquisa que complementa os trabalhos de [Fiorese et al. 2012] e [Junior and Rabelo 2013] e tem como objetivo responder como analisar adequadamente os riscos no processo de formação de uma OV, dado um conjunto de PSs pré-selecionados. Nesse sentido, este trabalho consiste na adição de uma camada adicional com o objetivo de realizar o gerenciamento de riscos no processo de busca e seleção de PSs, através da concepção de um novo método de análise de risco, chamado MAR-SP (Multicriteria Risk Analysis method for selecting Service Providers in P2P SONs). No método proposto, os PSs são avaliados em duas etapas, tanto individualmente como coletivamente. O objetivo do método é medir o nı́vel de risco através de KPIs de colaboração e de infraestrutura em P2P SONs, a fim de identificar quais os PSs oferecem menor nı́vel de risco para a formação de uma nova OV. Isto irá permitir que os tomadores de decisão possam decidir com um nı́vel menor de subjetividade quais PSs devem ser descartados de forma eficaz para uma determinada oportunidade de colaboração. As demais seções deste artigo estão organizadas da seguinte forma: a Seção 2 aborda o problema da integração e seleção dos PSs no contexto de análise de risco em OVs. A Seção 3 descreve o método proposto para análise de risco em OVs. A Seção 4 apresenta os experimentos realizados para avaliar o método proposto e também apresenta resultados preliminares. Finalmente, a Seção 5 conclui e discute trabalhos futuros. 2. Trabalhos Relacionados 2.1. Integração de Provedores de Serviços Como citado na Seção 1, diferentes PSs podem ser integrados em uma OV e colaborar entre si a fim de atender um determinado objetivo – também referido como uma Oportunidade de Colaboração (OC) [Camarinha-Matos and Afsarmanesh 2005]. Esses PSs podem compreender desde organizações não governamentais até entidades de software autônomas, possuindo diferentes objetivos, mas que compartilham competências, recursos, informações e eventuais riscos, permitindo-lhes realizar seus objetivos comuns. O ciclo de vida de uma OV é composto por quatro fases (criação, operação, evolução e dissolução) [Camarinha-Matos and Afsarmanesh 2005], sendo que este trabalho se concentra na fase de criação. A fase de criação de uma OV é composta por sete etapas, como 68 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ pode ser visualizado na Figura 1. Nesse sentido, esse trabalho insere-se na etapa de Busca e Seleção de Parceiros (cı́rculo à esquerda da Figura 1). Oportunidade de Colaboração BPSS BPSS OCIdentif. Identif.&& OC Caracteriz. Caracteriz. Análisede deRisco Risco Análise Formação do Consórcio Planejamento Planejamento Inicial Inicial Busca e Seleção de Parceiros Negociação Negociação Planejamento Planejamento Detalhado Detalhado Contratação Contratação Lançamento Lançamento Figura 1. Etapas para a criação [Camarinha-Matos and Afsarmanesh 2005] de uma OV. Adaptado de O processo de colaboração entre os PSs em uma OV é realizado por meio de interações entre seus processos de negócio, que são usualmente suportados por uma infraestrutura de rede. Esta pesquisa aborda a utilização de P2P SONs como infraestrutura para suportar a criação de uma OV. Considera-se também que os procedimentos para a busca e seleção dos PSs para compor uma OV é realizada pela arquitetura de gerenciamento de serviços (desenvolvida em [Fiorese et al. 2010]) chamada OMAN [Fiorese et al. 2010], dando ênfase em seu módulo especı́fico (BPSS) que realiza a seleção dos PSs mais adequados na P2P SON [Fiorese et al. 2012]. O módulo BPSS tem como principal objetivo selecionar um PS a partir do conjunto de PSs encontrados que fornecem o serviço requerido de acordo com um indicador de desempenho especı́fico. O método proposto para a análise de risco utiliza o módulo BPSS a fim de obter um conjunto de PSs (um para cada serviço), quando considerando os diferentes tipos de serviços necessários para compor uma OV. 2.2. Risco em Organizações Virtuais O problema na escolha dos PSs mais adequados para compor uma OV é crucial. O ambiente em que os PSs realizam suas atividades é caracterizado por uma série de fontes de risco, podendo ser elas provenientes de origem econômica, social, polı́tica, como também riscos na própria infraestrutura da rede. O conceito de risco pode ser apresentado através de diferentes perspectivas [March and Shapira 1987, Mowshowitz 1997]. Quando aplicado no contexto desta pesquisa, o risco pode ser visto como uma composição de três elementos básicos: o ambiente onde ele pode acontecer, a sua probabilidade de ocorrência, e o âmbito do seu impacto no caso da sua ocorrência [Vose 2008]. Na literatura, alguns trabalhos relacionados à análise de risco em OVs foram identificados. Em [Alawamleh and Popplewell 2010], treze indicadores foram identificados como potenciais fontes de risco em OVs, sendo identificada a importância de cada um deles. Em [Li and Liao 2007] foram especificadas duas fontes de risco (externo e interno) 69 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ e a probabilidade de ocorrência de riscos no ciclo de vida da OV foi calculada com base nelas. Em [Grabowski and Roberts 1998], foi discutido o problema da mitigação do risco em OVs, sendo definido quatro processos para melhorar o seu nı́vel de confiabilidade. Apesar das contribuições nos trabalhos aqui apresentados, nenhum deles de alguma maneira formalizou como os KPIs propostos podem ser usados ??nem dispôs de meios para quantificar os riscos envolvidos na composição de uma OV formada particularmente por PSs. Além disso, com o melhor de nosso conhecimento, não foi identificado propostas que especificam um método ou procedimento que tem como objetivo sistematizar o processo de qualificação/quantificação do risco envolvido na busca e seleção de PSs para a formação de uma OV. Portanto, este trabalho apresenta como contribuição uma maneira de especificar KPIs junto com um método matemático que permitem medir o risco na formação da OV. Nesse sentido, o processo para a criação de uma OV apresentado na Figura 1 foi estendido pela adição de duas sub-etapas na etapa de Busca e Seleção de Parceiros. A primeira subetapa compreende o módulo BPSS (Seção 2.1), sendo utilizado para fornecer um ambiente para a busca e seleção dos PSs. Em seguida, a segunda subetapa introduz um processo que compreende a análise de risco (cı́rculo direita na Figura 1). Nesse caso, dada uma OV em formação, um conjunto de indicadores de desempenho adequados são inicialmente selecionados, e a seleção final irá considerar a perspectiva de risco. A forma como o risco é representado deve estar estritamente alinhado com os objetivos de cada organização. Portanto, através da pesquisa bibliográfica realizada identificou-se seis fontes de risco que estão associadas às OVs e que foram propostas por [Alawamleh and Popplewell 2010] e [Fiorese et al. 2013]. Estas fontes de risco são referentes aos aspectos de colaboração entre os PSs e de aspectos relacionados à infraestrutura das redes P2P. As fontes de riscos quando relacionadas à colaboração são: a confiança, a comunicação e o comprometimento [Alawamleh and Popplewell 2010]: • Confiança: O grau de confiança que existe entre os parceiros se relaciona diretamente com a quantidade de parceiros acreditam na honestidade, generosidade e competência global dos outros. • Comunicação: A comunicação entre os PSs de uma OV está diretamente ligado ao fornecimento de informações corretas sobre produtos e serviços, colaborando na solução de conflitos, riscos, etc. • Comprometimento: O comprometimento está diretamente relacionado com as atitudes dos PSs uns com os outros em uma OV, ou seja, considera as contribuições e os acordos feitos por e entre eles para um negócio. Além das fontes de risco relacionadas aos aspectos de colaboração, é necessário levar em conta que, devido ao fato de o processo para a busca e seleção ser destinado a PSs que oferecem, na maioria, serviços de rede (principalmente na Internet), os indicadores de risco utilizados neste trabalho também devem levar em conta critérios que fornecem garantias de QoS (Qualidade de Serviço) para todos os outros PSs que irão compor a OV (indicadores de infraestrutura aplicado a redes P2P). Por esta razão, os seguintes indicadores foram escolhidos [Fiorese et al. 2013]: • Distância: Representa a distância Euclidiana entre os PSs. Ela baseia-se no modelo de atraso de Internet [Kaune et al. 2009] (delay na troca de mensagens), onde 70 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ os PSs são colocados em um plano cartesiano, utilizando métricas de desempenho de rede, juntamente com as suas coordenadas geográficas para analisar a distância entre eles. • Atraso: Consiste no tempo que um pacote leva para sair da sua origem, passar por uma rede (roteadores e enlaces) e chegar ao destino. O atraso é dado pela soma dos tempos de processamento, atraso de fila, de transmissão e o de propagação. • Jitter: O jitter é a variação estatı́stica do atraso na entrega de dados. Por uma questão de quantificação, as seis fontes de risco especificadas nesse trabalho serão vistas como KPIs, sendo três delas (confiança, comunicação e comprometimento) definidas sob o termo de KPIs de Colaboração entre os PSs e outras três delas (distância, atraso e jitter) definidas sob o termo KPIs de Infraestrutura para redes P2P. Além disso, seus valores são calculados e providos de acordo com a metodologia apresentada em [Junior and Rabelo 2013]. 3. Método Proposto O método concebido para a análise de risco é apresentado na Figura 2. Ele começa tendo como entrada uma lista com os PSs pré-selecionados mais adequados (por meio da simulação BPSS) em um ambiente P2P SON. O principal objetivo do método de análise de risco proposto é acrescentar uma outra dimensão de apoio para a tomada de decisões, identificar e medir o quão arriscado é cada um desses candidatos (PSs) envolvidos na formação de uma nova OV. O método divide o problema em dois estágios: o primeiro estágio consiste na análise de risco individual através aplicação do método ETA (Event Tree Analysis) [Ericson 2005] para cada grupo de KPIs (Colaboração e Infraestrutura). O segundo estágio realiza a análise de risco levando em conta um conjunto de PSs como um todo, através da aplicação do método AHP (Analytic Hierarchy Process) [Saaty 2004]. 3.1. Análise de Risco Individual No primeiro estágio do método MAR-SP é realizada a análise de risco individual para cada PS pré-selecionado (através do BPSS). O método ETA é particularmente adequado para a análise de risco de sistemas em que existam interações entre os vários tipos de eventos probabilı́sticos, sejam eles dependentes ou independentes [Ericson 2005]. Ela utiliza uma representação visual baseada em uma estrutura lógica em forma de árvore, conhecida como árvore de eventos (ET), como mostrada no Estágio 1 da Figura 2. Uma ET consiste em uma árvore de probabilidades (binária) que admite duas possı́veis condições: sucesso e fracasso. Ela possui três componentes básicos, que são: evento inicial (EI); eventos intermediários; e os possı́veis resultados. O evento inicial corresponde ao evento que dá inı́cio ao processo de formação da ET. Nesse trabalho, o EI corresponde à pré-seleção de um PS e a probabilidade associada a esse evento (PEI ) é sempre igual a 1 (ou 100 %) [Ericson 2005]. O próximo passo consiste em especificar os eventos intermediários para cada uma das duas ETs que serão construı́das, onde esses eventos são representados pelos dois grupos de (três) KPIs apresentados na Seção 2: confiança, comunicação e comprometimento para a ET de Colaboração; e distância, atraso e jitter para a ET de Infraestrutura (Estágio 1 da Figura 2). Estes eventos são utilizados para quantificar a eficácia de um determinado 71 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Análise de Risco Individual Análise Coletiva do Risco Event Tree Analysis (Estágio 1) Evento Inicial (PS Pré Selecionado) P (K ) P (K 12 ) P (K 13 ) P (K 11 ) P (K 13 ) P (K 12 ) P (K 13 ) 1 3 P (K ) P (K 12 ) P (K 13 ) P (K 11 ) P (K 13 ) P (K 12 ) P (K 13 ) PEI = 1.0 Hierarquia do Método AHP Árvore de Eventos para KPIs de Colaboração Eventos Intermediários Saídas (P1) 1 1 1 K1 K2 K3 1 3 PS2 Analytic Hierarchy Process (Estágio 2) Alternativas P 11 = P (K 11 ) .P (K 12 ) .P (K 13 ) 1 1 1 P 12 = P (K 1 ) .P (K 2 ) .P (K 3 ) 1 1 1 P 13 = P (K 1 ) .P (K 2 ) .P (K 3 ) P 14 = P (K 11 ) .P (K 12 ) .P (K 13 ) P 15 = P (K 11 ) .P (K 12 ) .P (K 13 ) P (K 23 ) P (K 23 ) P (K 21 ) P (K 23 ) P (K 22 ) P (K 23 ) 2 3 P (K ) P (K 22 ) P (K 23 ) P (K 21 ) P (K 23 ) P (K 22 ) P (K 23 ) W1 PS1 S1 = P 1 • P2 PS2 S2 = P 1 • P2 W2 PS3 S3 = P1 • P2 W3 1 P 6 = P (K 11 ) .P (K 12 ) .P (K 13 ) P 17 = P (K 11 ) .P (K 12 ) .P (K 13 ) P 18 = P (K 11 ) .P (K 12 ) .P (K 13 ) Árvore de Eventos para KPIs de Infraestrutura Eventos Intermediários Saídas (P2) 2 2 2 K1 K2 K3 P (K 22 ) Objetivo (ROV) W ROV (Risco Global) P 21 = P (K 21 ) .P (K 22 ) .P (K 23 ) 2 2 2 P 22 = P (K 1 ) .P (K 2 ) .P (K 3 ) 2 2 2 P 23 = P (K 1 ) .P (K 2 ) .P (K 3 ) P 24 = P (K 21 ) .P (K 22 ) .P (K 23 ) P = P (K 2 5 2 1 ) .P (K 2 2 ) .P 2 3 (K ) 2 P 6 = P (K 21 ) .P (K 22 ) .P (K 23 ) P 27 = P (K 21 ) .P (K 22 ) .P (K 23 ) P 28 = P (K 21 ) .P (K 22 ) .P (K 23 ) PS – Provedor de Serviços Si = P1 • P2 – Produto Escalar entre elementos de P1 e P2 para PSi P(KXY) – Probabilidade do KPI XY Wi – Importância do PSi , 0 ≤ Wi ≤ 1 ROV – Nível de risco da OV Figura 2. Visão geral do método MAR-SP. PS sob ambos os aspectos de colaboração e de infraestrutura e também para gerar as duas ETs, atribuindo probabilidades de sucesso e falha a cada uma delas. O critério para atribuir a probabilidade de sucesso dos KPIs para cada PS leva em conta a análise histórica de valores dos KPIs que foram atribuı́dos ao PS nas últimas participações em OVs [Pidduck 2006, Goranson 1999]. Essa análise baseia-se fundamentalmente em inferências estatı́sticas por meio da quantificação tanto de uma tendência central quanto da variabilidade dos valores históricos. A análise de tendência central é realizada através do cálculo de uma média exponencialmente ponderada (MEP) [Montgomery and Runger 2011] para cada grupo G de valores históricos de KPIs de um determinado PS (G = 1 para KPIs de Colaboração; G = 2 para KPIs de Infraestrutura). A MEP é muito utilizada em análise de risco financeiro e de gestão da cadeia de suprimentos, sendo popular na prática devido à sua simplicidade, eficiência computacional e precisão razoável (dando mais importância para os valores mais recentes em um fator exponencial) [Montgomery and Runger 2011]. A MEP para um KPI k de um PS p é formalmente definida pela Equação 1: X̄kG (p) Pn x i wi = Pi=1 n i=1 wi (1) onde x = {x1 , x2 , ..., xn } corresponde a um conjunto não vazio com n valores 72 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ históricos de KPIs e w representa uma constante de decaimento exponencial normalizada. Após calcular a MEP para cada KPI de cada PS, é definido um valor denominado Índice Máximo de Qualidade (IMQ), que é atribuı́do como o valor mais alto entre todos os resultados obtidos com a MEP de um determinado KkG para diferentes PSs (ou seja, para p = 1, 2, ...). O IMQ é usado como uma referência de desempenho (limiar) para todos os outros PSs que serão avaliados. Neste sentido, considerando k o número de KPI utilizados em cada grupo (três) e p o número de PSs associados aos dois grupos de KPIs, a Equação 2 define o processo de cálculo do IMQ: G IM QG k = maxk X̄k (p) ∀p ∈ P S (2) Por exemplo, as Figuras 3(a) e 3(b) apresentam dois gráficos com os valores hipotéticos dos KPIs de confiança (evento intermediário K11 na ET de Colaboração) e distância (evento intermediário K12 na ET de Infraestrutura) associado a um PS. Tomando como exemplo a Figura 3(a), o valor do IMQ calculado para este KPI é de 6.7 (dentre todos as MEPs calculadas para este KPI, este valor é o valor mais alto). No entanto, é evidente que, quando se leva em conta apenas o valor do IMQ, ou seja, a MEP mais elevada, apenas alguns valores de KPIs da série história dos demais PSs atingirão uma probabilidade de sucesso aceitável. Por esta razão, uma métrica de variabilidade tornase bem adequada, sendo representada pelo desvio-padrão (DP) do IMQ. Portanto, serão considerados para análise, além dos valores acima de 6.7, mas também o intervalo que compreende 6.7 − 2.4 = 4.3 (DP = 2.4) (Figura 3(a)). 10 10 Intervalo considerado para análise Índice Máximo de Qualidade (IMQ) 8.0 8 8 7.3 7.6 7.1 7.0 5.8(*) Valor do KPI Valor do KPI IMQ = 6.7 6 Intervalo considerado para análise Índice Máximo de Qualidade (IMQ) 8.8 4.6(*) 4 3.4 DP = 2.4 IMQ = 6.1 6 5.3(*) 4 3.6(*) DP = 2.6 2.5 2 0 2 OV1 OV2 OV3 OV4 OV5 ... 0 OVn OV1 Participações anteriores em OVs OV2 OV3 OV4 OV5 ... OVn Participações anteriores em OVs (a) KPI de confiança (Colaboração) (b) KPI de distância (Infraestrutura) Figura 3. Valores históricos para os KPIs de confiança e distância de um PS. Os valores atribuı́dos para cada KPI de cada grupo estão normalizados e podem variar de 0 a 10, associados à probabilidade de sucesso que varia entre 0 e 1, respectivamente. Assim, assumindo que cada PS participou de NP A OVs anteriores e que nR representa o número de participações anteriores de um PS em OVs em que os seus valores G de KPIs são superiores a IM QG k − DPk (marcados com um asterisco nas Figuras 3(a) e 3(b)), a Equação 3 calcula a probabilidade de sucesso dos KPIs para a participação atual. P r (K) = 73 nR nP A (3) Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ A probabilidade de falha para um determinado KPI é representado como P r K̄ pela seguinte equação: P r K̄ = 1 − P r (K) (4) De acordo com a Figura 2, as probabilidades de sucesso e falha são calculadas para todos os dois grupos de KPIs que compõem as ETs de Colaboração (ET superior) e de Infraestrutura (ET inferior) de um PS, que são representadas por dois grupos de três eventos (KPIs) intermediários (e independentes uns dos outros) que preenchem as duas ETs. O evento K21 , por exemplo, está relacionado ao KPI de comunicação (ET de Colaboração), com as probabilidades de sucesso e insucesso em P (K21 ) e 1 − P (K21 ), respectivamente. Já o evento K32 está relacionado ao KPI de jitter (ET de Infraestrutura), com as probabilidades de sucesso e insucesso em P (K32 ) e 1 − P (K32 ), respectivamente. Depois de atribuir todas as probabilidades para todos os ramos de cada uma das duas ETs, é necessário identificar se os PSs são minimamente qualificados para compor uma OV. Para isso, é realizado um cálculo para obter as probabilidades finais para todas as combinações de eventos que compõem as ETs. No método ETA, os eventos ocorrem de forma independente, ou seja, onde a ocorrência de um evento não afeta a ocorrência de outro evento. Assim, elas são determinadas para cada um dos 2|K| ramos de cada ET através da multiplicação das probabilidades de eventos que compõem cada caminho. A partir do conjunto de resultados obtido em cada uma das ETs, aplica-se o produto escalar nos resultados obtidos nos dois conjuntos para obter o nı́vel de risco de cada PS. Os conceitos apresentados podem ser formalizados da seguinte forma: Seja P S = {P S1 , P S2 , ..., P Sn } um conjunto de n PSs previamente selecionados, onde cada elemento deste conjunto está associado de atividade a um tipo diferente G um conjunto de de serviço que está sendo solicitado. Seja K G = K1G , K2G , ..., Km m KPIs, onde para G = 1 tem-se associado os m KPIs de Colaboração e para G = 2 tem-se associado os m KPIs de Infraestrutura, todos eles associados a um P Sn , e ρ K G a função de probabilidade associada a cada evento em K G (como definido na Equação 3). Agora, considere P G = P1G , P2G , ..., P2G|K| como um conjunto de todos os resultados possı́veis das 2|K| combinações entre |K| (número de elementos em K) eventos de cada ET. O procedimento para a obtenção deste conjunto foi realizado utilizando uma Árvore de Busca Binária (ABB) [Bentley 1975], que percorre 2|K| caminhos diferentes e atribui um valor para cada elemento de P G , como mostrado na Equação 5: PG = |K| 2[ PEI ∗ k=1 |K| Y ω(i, j, k, l) (5) l=1 onde PEI é a probabilidade inicial do P Sn . A função ω, apresentada na Equação 6, corresponde a um vetor de 4 dimensões que realiza uma busca binária em cada árvore, retornando um elemento do caminho a cada iteração. Os valores i e j correspondem aos ı́ndices de inı́cio e fim da busca e possuem valores iniciais de i = 0 e j = 2|K| , respectivamente. O valor k corresponde ao ı́ndice do elemento buscado (um elemento de 74 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ P G ) e o elemento l ao nı́vel atual da árvore. A sequência dos eventos pode ser visualizada nas duas ETs no Estágio 1 da Figura 2. P r KlG ;j = c, k≤c 1 − P r KlG ; i = c, k > c ω (i, j, k, l) = (6) onde c = (i + j)/2. Após serem definidas para um P Sn todas as possı́veis saı́das P G e calculadas suas respectivas probabilidades, aplica-se um cálculo de produto escalar sobre todos os elementos P 1 , P 2 , ..., P G (nesse artigo, apenas P 1 e P 2 ), como formalizado na Equação 7. A utilização do produto escalar como operação entre os diferentes conjuntos P é justificada pela possibilidade da ocorrência simultânea entre dois eventos iguais, porém em ETs diferentes. Por exemplo, supondo que no Estágio 1 da Figura 2, P11 = 0.7 (ET de Colaboração), o que representaria uma probabilidade de 70% de chance de a combinação de três eventos (sucesso para K11 , K21 e K31 ) ocorrerem. De maneira semelhante, se P12 = 0.8 (ET de Infraestrutura), significaria que a mesma sequência de eventos (sucesso para K12 , K22 e K32 ) também ocorreu. Assim, empregando-se o produto escalar entre os (dois) conjuntos P 1 e P 2 , pode-se obter o nı́vel de risco final do provedor de serviço P Sn (que é representado por Sn ): |K| 1 2 Sn = P · P · ... · P G = 2 X Pi1 Pi2 ...PiG (7) i=1 Os valores finais das probabilidades obtidas pela Equação 7 irão ser usados para medir e analisar o risco do PS coletivamente. 3.2. Análise de Risco Coletiva O segundo estágio do método MAR-SP agrega os resultados providos pelo primeiro estágio (isto é, o nı́vel de risco Sn de cada PS pré-analisado) para calcular o nı́vel global de risco da OV, aplicando para isso o método AHP (Analytic Hierarchy Process) [Saaty 2004] como pode ser visualizado no Estágio 2 da Figura 2. No método AHP, os problemas estão dispostos em uma hierarquia, que tem inı́cio a partir do elemento mais geral (geralmente o objetivo) para os mais especı́ficos (geralmente as alternativas). Neste trabalho, o AHP é modelado de maneira simplificada através de dois componentes: o objetivo e as alternativas. O objetivo do método AHP consiste em determinar o nı́vel global de risco da OV. As alternativas consistem nos nı́veis de risco individuais de cada PS (Sn ), obtidas através da análise de risco individual (Estágio 1 da Figura 2). Para cada alternativa Si há também um peso Wi correspondente, que determina o grau de importância de cada P Si sendo analisado em relação à OV. Nesse trabalho, o grau de importância de cada PS é determinado por uma entidade externa denominada gestor da OV, que é vista como o principal tomador de decisões [Camarinha-Matos and Afsarmanesh 2005]. Por exemplo, dado uma OV sendo formada a partir de três PSs (como ilustrado na Figura 2), cada PS terá um nı́vel de importância (peso) dentro da OV. Nesse sentido, o gestor da OV pode alterar os pesos Wi de acordo com o grau de importância que será atribuı́do a cada P Si que irá compor a OV. Estas caracterı́sticas aumentam a robustez do método em relação às demais técnicas, determinando coletivamente a influência que cada PS possui dentro da OV e como o nı́vel de risco 75 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ de cada um deles irá impactar no nı́vel de risco geral da OV. Nesse sentido, W1 , W2 , ..., Wn é o peso de cada alternativa S1 , S2 , ..., Sn associada ao objetivo. O objetivo geral (medir o nı́vel de risco da OV) é representado por ROV cujo procedimento de cálculo simplificado é apresentado na Equação 8: ROV = n X Wi ∗ Si (8) i=1 A partir do cálculo apresentado na Equação 8, obtêm-se o nı́vel global de risco na formação da OV em questão, considerando a importância de cada PS no processo. 4. Avaliação 4.1. Protótipo Computacional Para viabilizar a implementação e geração dos resultados, foi desenvolvido um protótipo computacional que integra as funcionalidades providas pelo modelo BPSS e pelo método de análise de risco proposto nesse trabalho (MAR-SP). O protótipo foi dividido em dois módulos: módulo BPSS (Best Peer Selection Service) [Fiorese et al. 2012] e módulo DFRA (Decision Framework for Risk Analysis). O primeiro módulo implementa o modelo BPSS desenvolvido por [Fiorese et al. 2010, Fiorese et al. 2012] (ver Seção 2.1), utilizando o simulador de eventos discretos PeerFactSim.KOM [Stingl et al. 2011] como suporte para a criação da infraestrutura P2P SON e para possibilitar o processo de busca e seleção dos PSs. Já o módulo DFRA tem como foco especı́fico a simulação de métodos de análise de risco, onde agrupa os PSs pré-selecionados pelo módulo BPSS em potenciais OVs a serem avaliadas pelo método MAR-SP. No que diz respeito às especificações técnicas do sistema, o protótipo foi construı́do e os testes foram desenvolvidos em um computador Intel Core i5 3.1GHz, 4.0GB de memória RAM e Linux Mint 14.1 distribuição de 64 bits. 4.2. Configuração das Simulações A configuração das simulações adotadas para o cenário de análise de risco seguem as mesmas estratégias utilizadas para a seleção dos PSs. Os dados foram obtidos a partir do projeto CAIDA e do banco de dados MaxMind GeoIP [Caida 2013], que fornecem a localização geográfica (isto é, latitude e longitude) e o delay de cada PS. A partir dessas métricas são calculados os valores dos KPIs de infraestrutura de rede (largura de banda, jitter e distância Euclidiana). Os PSs são representados por um conjunto de pares SON pré-selecionados cujos identificadores (endereços IPs) são distribuı́dos igualmente entre cinco domı́nios geográficos, correspondentes a cinco paı́ses (Portugal, Espanha, França, Itália e Alemanha). Os valores dos KPIs de Colaboração atribuı́dos para cada PS seguem uma distribuição linear que varia de 0 a 1, com intervalos de 0.01, sendo gerados durante o procedimento de simulação. A estratégia de distribuição linear para gerar os valores dos KPIs de colaboração é utilizada principalmente porque empresas são frequentemente muito variáveis e a implementação dos três KPIs escolhidos (confiança, comunicação e comprometimento) em cenários reais para lidar com os riscos na OV também depende da cultura e métodos de trabalho atualmente aplicados pelas organizações envolvidas, 76 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ tornando-se uma difı́cil tarefa. Considera-se também que cada PS participou de 10 OVs anteriores (em média) quando ele foi selecionado. Por uma questão de simplicidade, a importância de cada PS em relação à OV é distribuı́da de maneira igualitária. O intervalo de valores que determina o nı́vel de risco de sucesso de uma OV (representada por um dentre 100 possı́veis valores) é generalizado pelas seguintes notas de avaliação [Li and Liao 2007]: [0.0; 0.25]: muito baixo (L1 ); [0.25; 0.50]: relativamente baixo (L2 ); [0.50; 0.75]: relativamente alto (L3 ); [0.75; 1.00]: muito alto (L4 ). Por exemplo, uma OV com um nı́vel global de risco ROV = 0.23 será expressada pela nota L1 (muito baixo). 4.3. Resultados Os resultados apresentados nesta seção têm como objetivo avaliar, através da aplicação do método MAR-SP, o nı́vel de risco para cada OV, dado um conjunto de SPs previamente selecionados no processo de Busca e Seleção de Parceiros. Dada a originalidade do método, ou seja, dada a falta de métodos na literatura que possibilite uma análise comparativa eficiente, buscou-se direcionar a análise dos resultados a aspectos de desempenho do método, sendo nesse trabalho explorada a sua escalabilidade quanto à variação do número de PSs que irão compor uma OV. Os procedimentos para a avaliação dessas OVs são essencialmente divididos em duas fases: 1) Executar o processo de busca e seleção dos PSs através do módulo BPSS; e 2) Utilizar como entrada os PSs pré-selecionados na primeira fase e agrupá-los em um consórcio para medir (através dos KPIs de Colaboração e de Infraestrutura) qual nı́vel de risco terá a possı́vel OV a ser formada por eles. As simulações envolvem 7 cenários distintos, onde cada cenário representa um conjunto de simulações realizadas para OVs formadas por n ∈ [3, 8] PSs. A Figura 4 apresenta os resultados preliminares das simulações que envolvem esses 7 cenários (representados pelos números no eixo horizontal), mostrando, para cada cenário: 1) a quantidade de OVs (em percentual) que obtiveram nı́vel de risco associado a cada escala de avaliação (L1 , L2 , L3 e L4 respectivamente) (eixo vertical à esquerda); e 2) a média dos valores absolutos de risco de todas as OVs simuladas (eixo vertical à direita). Para viabilizar os resultados, foram realizadas, para cada cenário, simulações que contemplam a avaliação de 100 OVs formadas a partir de um cenário com 300 PSs em uma P2P SON. Assim, foram executadas 100 vezes as duas fases anteriormente mencionadas, resultando em 100 possı́veis OVs a serem analisadas para cada cenário. Além disso, cada simulação foi repetida 10 vezes a fim de se obter valores médios para o nı́vel de risco de cada OV, sendo também calculados os valores dos desvios padrão com base em um intervalo de confiança de 95%. A partir dos resultados apresentados na Figura 4, verifica-se que a maior parte das OVs que foram avaliadas possuem um nı́vel de risco muito baixo (L1 ) ou relativamente baixo (L2 ), sendo esses valores potencializados quando há incremento no número de PSs para cada OV. A constante classificação de risco baixo para as OVs (L1 e L2 ) reflete aspectos inerentes ao desempenho individual de cada PS, isto é, um PS pode apresentar bons indicadores de infraestrutura, no entanto não possuir a colaboração necessária para assegurar um bom desempenho da OV e vice-versa. Esse fator torna-se predominante para decidir o risco individual do PS, e consequentemente afetar o desempenho da OV como um todo. Além disso, a interação com outros PSs propicia um cenário mais arriscado 77 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Quantidade de OVs (em %) 60 100 Muito baixo (L1) Razoavelmente baixo (L2) Razoavelmente alto (L3) Muito alto (L4) 80 45 60 30 40 15 20 0 Nível médio de risco das OVs (em %) 75 0 3 4 5 6 7 8 Número de PSs em cada OV Figura 4. Distribuição do nı́vel de risco e média das simulações envolvendo 7 diferentes cenários para a formação de OVs para a formação de uma OV, o que justifica o aumento das escalas L1 e L2 em relação às escalas L3 e L4 . No que diz respeito ao nı́vel médio de risco para cada cenário, percebe-se que há um decaimento constante quando incrementado o número de PSs em cada OV. Isso ocorre pois quanto mais PSs estão sendo analisados sob a ótica de desempenho dos 6 KPIs, maior se torna a chance de os PSs previamente selecionados possuı́rem competências em nı́veis muito diferentes. Como a análise de risco realizada pelo método aqui proposto se baseia na média apresentada pelos KPIs do PS com a melhor competência, a presença de PSs de baixa competência diminui consideravelmente o nı́vel de sucesso da OV. Portanto, quanto maior for o número de PSs compondo a OV, maior a probabilidade de haver diferenças entre competências, diminuindo assim o nı́vel de risco de sucesso como um todo. Neste sentido, pode-se concluir que o método favorece uma avaliação mais rigorosa quando está englobado um aumento do número de PSs, e que portanto, deve ser levado em conta uma maior prevenção e controle do risco, a fim de proporcionar maior segurança em uma futura operação da OV. Além disso, para todos os PSs que irão compor uma OV, é necessário que todos os seus indicadores possuam valores razoavelmente aceitáveis, caso contrário eles podem comprometer o bom funcionamento da OV. É importante também destacar que a formação de uma OV com base na escolha de apenas os PSs consequentemente as melhores taxas de KPIs não é uma escolha muito boa. A decisão mais sábia é submeter esses PSs escolhidos para uma avaliação de risco. Mais importante ainda é considerar também as chances de os PSs trabalharem juntos. 5. Conclusão Este artigo consiste em uma pesquisa que abordou temas relacionados com a identificação e a mensuração do risco em OVs. De modo geral, a análise de risco tornou-se um ele- 78 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ mento chave no planejamento de uma OV, dado que pequenos erros podem comprometer sua eficiência como um todo. Por esta razão, foi proposto um novo método para realizar a análise de risco sobre um conjunto de Provedores de Serviços (PSs) que vão compor uma Organização Virtual (OV). O presente método, chamado MAR-SP, é composto por duas fases. A primeira delas realiza a análise de risco individual para cada PS pré-selecionado, através do método ETA (Event Tree Analysis). Tendo como entrada os resultados da primeira fase, a segunda fase calcula e analisa o risco global, considerando os PSs coletivamente, utilizando para isso o método AHP (Analytic Hierarchy Process). A fim de avaliar o comportamento do método MAR-SP, seis KPIs distintos, sendo três deles relativos aos aspectos de colaboração entre os PSs (confiança, comunicação e comprometimento) e três deles relativos aos aspectos de infraestrutura de redes P2P (distância, atraso e jitter) foram considerados na análise para cada PS. As simulações realizadas envolveram diversos conjuntos de PSs pré-selecionados, que foram analisados a partir dos resultados de [Fiorese et al. 2012]. Os resultados obtidos exploraram o desempenho do método quanto à sua escalabilidade, ou seja, avaliaram como o método se comporta quando englobado um crescente número de PSs em uma OV. O grau de desempenho necessário para cada PS compor uma OV é alto e é fortemente influenciado tanto pelos aspectos de colaboração e infraestrutura da rede na qual os PSs estão conectados como pela quantidade de PSs que estão compondo a OV. Assim, para que uma OV seja efetivamente formada, deve-se estar alinhado a quantidade de PSs na OV com uma maior qualidade no quesito colaboração e que também qualidade exigida de serviço de rede. Da mesma maneira, o método apresentado contribui para uma forma mais concreta e sistematizada de expressar, medir, avaliar e mitigar os riscos na formação de uma OV, tanto a nı́vel individual como coletivamente, apesar de nesse trabalho se concentrar apenas em PSs. Além disso, a utilização do método no processo de análise de risco permite realizar uma avaliação com maior transparência e com um nı́vel muito menor de subjetividade, descartando ou não os PSs, antes de compor uma OV, de acordo com os critérios estabelecidos. Os próximos passos a partir dos resultados obtidos nesse trabalho incluem a criação de um framework que engloba a análise de risco não apenas no processo de busca e seleção, mas que considera todos os aspectos para a formação de uma OV. Referências Alawamleh, M. and Popplewell, K. (2010). Risk sources identification in virtual organisation. In Enterprise Interoperability IV, pages 265–277. Springer London. Bentley, J. L. (1975). Multidimensional binary search trees used for associative searching. Communications of the ACM, 18(9):509–517. Caida (2013). Macroscopic topology project. logy/macroscopic/. http://www. caida.org/analysis/ topo- Camarinha-Matos, L. M. and Afsarmanesh, H. (2005). Collaborative networks: a new scientific discipline. Journal of Intelligent Manufacturing, 16(4-5):439–452. Duan, Z., Zhang, Z. L., and Hou, Y. T. (2003). Service overlay networks: SLAs, QoS, and bandwidth provisioning. IEEE/ACM Transactions on Networking, 11(6):870–883. Ericson, C. A. (2005). Hazard analysis techniques for system safety. Wiley & Sons, New York, USA. 79 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Fiorese, A., Matos, F., Junior, O. C. A., and Ruppenthal, R. M. (2013). Multi-criteria approach to select service providers in collaborative/competitive multi-provider environments. Int. J. of Computer Science and Network Security, 13(9):15–22. Fiorese, A., Simões, P., and Boavida, F. (2010). OMAN – a management architecture for P2P service overlay networks. In 4th Int. Conf. on Autonomous infrastructure, management and security, pages 14–25, Zurich, Switzerland. Fiorese, A., Simões, P., and Boavida, F. (2012). Peer selection in P2P service overlays using geographical location criteria. In 12th Int. Conf. on Computational Science and Its Applications, pages 234–248, Salvador de Bahia, Brazil. Goranson, H. T. (1999). The agile virtual enterprise cases, metrics, tools. Quorum Books, Westport, CT, USA. Grabowski, M. and Roberts, K. H. (1998). Risk mitigation in virtual organizations. Journal of Computer-Mediated Communication, 3(4):704–721. Junior, O. C. A. and Rabelo, R. J. (2013). A KPI model for logistics partners’ search and suggestion to create virtual organisations. Int. J. of Networking and Virtual Organisations, 12(2):149–177. Kaune, S., Pussep, K., Leng, C., Kovacevic, A., Tyson, G., and Steinmetz, R. (2009). Modelling the internet delay space based on geographical locations. In 17th Euromicro Int. Conf. on Parallel, Distributed and Network-based Processing, pages 301–310, Weimar, Germany. Li, Y. and Liao, X. (2007). Decision support for risk analysis on dynamic alliance. Decision Support Systems, 42(4):2043–2059. March, J. G. and Shapira, Z. (1987). Managerial perspectives on risk and risk taking. Management Science, 33(11):1404–1418. Montgomery, D. C. and Runger, G. C. (2011). Applied Statistics and Probability for Engineers. Wiley & Sons, New Jersey, USA. Mowshowitz, A. (1997). Virtual organization. Communications of the ACM, 40(9):30–37. Neely, A., Richards, H., Mills, J., Platts, K., and Bourne, M. (1997). Designing performance measures: a structured approach. Int. J. of Operations & Production Management, 17(11):1131–1152. Pidduck, A. B. (2006). Issues in supplier partner selection. Journal of Enterprise Information Management, 19(3):262–276. Saaty, T. L. (2004). Decision making – the analytic hierarchy and network processes (ahp/anp). Journal of Systems Science and Systems Engineering, 13(1):1–35. Stingl, D., Gross, C., Ruckert, J., Nobach, L., Kovacevic, A., and Steinmetz, R. (2011). PeerfactSim.KOM: a simulation framework for peer-to-peer systems. In 13th Int. Conf. on High Performance Computing and Simulation, pages 577–584, Istanbul, Turkey. Vose, D. (2008). Risk analysis: a quantitative guide. Wiley & Sons, New Jersey, USA. Zhou, S., Hogan, M., Ardon, S., Portman, M., Hu, T., Wongrujira, K., and Seneviratne, A. (2005). Alasa: When service overlay networks meet peer-to-peer networks. In 11th Asia-Pacific Conference on Communications, pages 1053–1057, Perth, Australia. 80 32º Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos Florianópolis - SC IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo (Wp2p+) Sessão Técnica 3 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ SNMP Proxy CCN: Uma proposta de arquitetura para gerência de redes orientadas a conteúdo interoperável com sistemas legados Marciel de Lima Oliveira1, Christian Esteve Rothenberg1 1 Departamento de Engenharia da Computação e Automação Industrial (DCA) Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Av. Albert Einstein 400, 13083-852 Campinas, SP, Brasil. [email protected], [email protected] Abstract. Research efforts on Information-Centric Networking (ICN) mainly focus on the "data and control plane" challenges compared to the efforts devoted so far on "management plane". Aiming at addressing this gap, this paper presents some mapping mechanisms and a proxy tool in order to enable the management and monitoring of CCN nodes through legacy SNMP-based systems. This work is a first step towards exploring the management of content-oriented (name/data) networks that promise better performance compared to traditional architectures based on addressing network interfaces. Resumo. Pesquisas voltadas as Redes Orientadas a Conteúdo (ROCs) tem maior foco nos “planos de dados e controle” em comparação ao “plano de gerência”. Como contribuição para suprir essa carência, este artigo apresenta uma proposta de arquitetura NONM (Name-Oriented Network Management) baseada em mecanismos de mapeamento e uma ferramenta proxy que permite o gerenciamento e monitoramento de nós de rede CCN nativas através de sistemas de gerência de redes SNMP legadas. Desta forma é possível explorar o conceito de gerencia orientada ao conteúdo (nomes/dados), que promete melhor desempenho quando comparado com arquiteturas tradicionais baseadas no endereçamento de interfaces dos nós. 1. Introdução Com o surgimento de grandes redes de transporte e equipamentos complexos construídos para tratar diversos serviços como dados, voz e vídeo, surge também o interesse de monitorar e otimizar o uso destas redes (equipamentos e serviços). Esse monitoramento é classificado como “plano de gerência” como forma de diferenciá-lo dos “planos de dado e de controle” responsáveis pela implementação efetiva dos 83 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ serviços oferecidos aos usuários. Parte da instanciação do plano de gerência se dá através da ideia do centro de operações de redes (NOC) que atua em um regime 24/7 para a operação, manutenção e análise do desempenho das redes e dos respectivos equipamentos. O plano de gerência geralmente conta com um sistema de gerência de rede NMS (Network Management System) central que atua no monitoramento e operação das três grandes divisões das redes (plano de dados) de equipamentos de telecomunicações, núcleo (ex.: DWDM), agregação (ex.: MPSL-TP, Metro-Ethernet) e acesso (exe.: LTE/4G, xDSL, xFTTH). A comunicação entre os sistemas de gerência e os equipamentos no plano de dados é feita através de uma rede dedicada chamada DCN (Data Communication Network) e os protocolos de rede TCP/IP são adotados como padrão para uso nos equipamentos que compõem a DCN (roteadores L3/IP/MPLS e switches L2/Ethernet/Metro). O surgimento de recentes trabalhos em Redes Orientadas a Conteúdo (ROCs) representa um novo paradigma onde o foco das redes é baseado no conteúdo e não mais na sua localização [1]. As ROCs propõem que o conteúdo seja o elemento central das redes, independente de sua localização, substituindo o foco de “onde” para “o quê”. Nas ROCs, a infraestrutura da rede participa ativamente no armazenamento (caching) e na distribuição dos conteúdos visando um aumento na eficiência da busca e na disponibilidade dos conteúdos na rede. As ROCs têm despertado grande interesse no meio acadêmico e dentre várias empresas e institutos relacionados às pesquisas na área das novas arquiteturas de rede abrindo espaço para novas aplicações, pesquisas e experimentos, tais como: CCN [2], que apresenta uma estrutura hierárquica para nomes semelhante às URLs; DONA [3], que utiliza o mecanismo de nomeação plana e funções de hash criptográfico e LIPSIN [4] que possui uma arquitetura que identifica os enlaces pelo nome ao invés dos pares de endereços fim a fim. O novo paradigma proposto pelas ROCs traz consigo inúmeros desafios [5]. Esse trabalho foca no ponto de vista de gerência de redes orientadas a conteúdo levando em consideração a carência, tanto no nível de mecanismos adequados, como na definição de um plano de gerência para estas redes. O artigo apresenta uma proposta de arquitetura NONM (Name-Oriented Network Management) que tem como principais destaques a modelagem da MIB CCN para identificação dos objetos do nó CCN e o mecanismo SCNAT que converte as mensagens das redes legadas para interação com elementos nativos da rede CCN. 2. Motivação e Objetivo A motivação principal deste artigo deve-se à percepção da carência de paradigmas adequados à gerência de redes orientadas ao conteúdo. Consideramos a possibilidade de experimentar gerência de redes orientadas a conteúdo com o uso de protocolos e arquiteturas de gerência utilizados nas redes tradicionais, como por exemplo; TL1, REST, NETCONF, SNMP, CLI e WEB UI [9, 10, 11], transformando-as em ferramentas eficientes para a gerencia de redes CCN. 84 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ A arquitetura CCN (Content-Centric Networking) [2] adotada como referência nesse trabalho é reconhecidamente uma das propostas mais relevantes na literatura relativamente às redes orientadas ao conteúdo. As redes CCN utilizam uma estrutura de nomes hierárquicos e legíveis (formados por sequências de caracteres e números) para identificar os conteúdos. Tais nomes possuem características semânticas, ou seja, os componentes hierárquicos utilizados na identificação trazem algum tipo de informação sobre o conteúdo como, por exemplo, versão, formato ou propriedade. Para tornar os sistemas de gerência compatíveis esta proposta define como estratégia a utilização de label (nome) como identificador único de um nó na rede CCN e o mapeamento através de um SNMP Proxy [7] entre a arquitetura de gerência da rede atual com a arquitetura da gerência da rede CCN. A arquitetura NONM (NamedOriented Network Management), tem como principal tarefa compatibilizar a gerência tradicional baseada no protocolo SNMP (Simple Network Management Protocol) [12, 13] com a gerência de redes CCN. 3. Fundamentos teóricos: CCN e SNMP Nesta seção são apresentados de forma breve os fundamentos teóricos da arquitetura CCN e do protocolo SNMP, os principais componentes explorados neste trabalho. 3.1 Características do modelo CCN O CCN utiliza basicamente dois tipos de pacotes: Interest e Data. O consumidor expressa seu interesse inserindo o nome do conteúdo desejado em uma mensagem do tipo Interest e a envia para rede. O produtor, ou algum caching no interior da rede, que possui tal conteúdo receberá essa mensagem e enviará de volta ao consumidor uma mensagem do tipo Data como resposta. Ou seja, essas mensagens possuem uma relação um para um onde um pacote de interesse satisfaz um de dados se o nome de conteúdo em ambos os pacotes são equivalentes. A Figura 1 mostra uma representação gráfica dos pacotes do modelo CCN. O pacote Interest pode possuir alguns parâmetros opcionais como seletores de escopo, preferência de ordem e filtro de exclusão. Um valor aleatório nonce é utilizado para descartar o recebimento de mensagens duplicadas por interfaces diferentes, eliminando assim loops da rede. O pacote Data, além do nome e do conteúdo, também carrega a assinatura e algumas informações opcionais como identificador do publicador e localização da chave para auxiliar na verificação da assinatura. O mecanismo de nomeação permite ao requisitante buscar o conteúdo posicionado em uma estrutura hierárquica. Caso o conteúdo corresponda a uma versão posterior, basta solicitá-lo através do identificador, por exemplo: br.youtube/video/filme.avi/1/anterior. Se o conteúdo corresponder a uma versão posterior basta acessar o próximo "pedaço" denominado chunk, por exemplo: br.youtube/video/filme.avi/1//1/posterior. 85 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Figura 1. Pacote do CCN (reproduzido de [2]). Os nós CCN possuem um buffer de memória para cache que busca armazenar os pacotes de dados o maior tempo possível em uma estrutura denominada CS (Content Store), uma vez que o mesmo conteúdo pode ser compartilhado por muitos consumidores. Quando um pacote de interesse chega ao nó, se o conteúdo requisitado estiver armazenado no cache o pacote de dados é imediatamente encaminhado na direção onde foi recebido o pacote Interest. Caso contrário, o nó insere o nome do conteúdo desejado e a interface pela qual o pacote Interest foi recebido na PIT (Pending Interest Table). A PIT registra, portanto, todos os interesses que passaram pelo nó em busca do conteúdo para que, quando o pacote de dados for recebido ele possa ser encaminhado corretamente em direção ao(s) consumidor(es). Apenas interesses são roteados no CCN; os pacotes de dados simplesmente seguem as entradas na PIT deixadas no caminho de volta ao consumidor. Estas entradas são apagadas assim que o pacote de dados correspondente é encaminhado ao consumidor ou por temporização, no caso em que o interesse não encontra o pacote de dados correspondente. Após registro na PIT, o pacote de Interest é encaminhado pela FIB (Forwarding Information Base) do nó através de uma busca de prefixo-mais-longo (longest-prefix match) indicando por qual interface enviar o pacote de Interest. Caso não haja uma entrada correspondente na FIB, o Interest é descartado. A Figura 2 apresenta a estrutura do nó CCN e a dinâmica de encaminhamento. Figura 2: Arquitetura de roteamento do nó CCN (reproduzido de [2]). 86 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 3.2 Características do SNMP O protocolo SNMP [12, 13] faz parte da infraestrutura de gerência baseada em três componentes básicos: entidade gerenciadora, dispositivo gerenciado e o próprio protocolo de gerência. 1- Entidade gerenciadora ou Gerente NMS. É uma aplicação que controla e coleta as informações de gerenciamento de uma rede. Um NMS é responsável pelo pooling e recebimento de traps dos agentes. As solicitações de informação enviadas pelo gerente na forma de pooling são requisições feitas para um agente por informações gerenciáveis. A mensagem de trap é enviada pelo agente para o gerente para informar a ocorrência de eventos relevantes na operação do dispositivo de rede. 2- Dispositivo ou elemento gerenciado. Elemento de rede que faz parte da rede gerenciada. Neste elemento podem existir diversos objetos gerenciados que são partes físicas do dispositivo, como uma interface de rede de um roteador, ou mesmo partes do software como, por exemplo, informações relativas à operação do protocolo de roteamento. Em cada dispositivo gerenciado existe um agente de gerenciamento que se comunica com a entidade gerenciadora (gerente) e executa ações específicas de acordo com solicitações dos gerentes. Para organização dos objetos gerenciados existe uma base de informação de gerenciamento MIB (Management Information Base) que disponibiliza para a entidade gerenciadora o conteúdo dos objetos gerenciáveis disponibilizados pelo dispositivo de rede. Os objetos da MIB são nomeados e organizados de forma hierárquica de acordo com a estrutura de nomeação da ISO, onde cada ramo da árvore possui um nome e um número OID (Object Identifier). 3 - Protocolo de gerenciamento de rede. Atua entre o gerente e o agente, permitindo que o gerente consulte informações do dispositivo gerenciado e execute ações sobre eles mediante seus agentes, como alteração de valores. Figura 3: Arquitetura genérica de gerência SNMP. O protocolo SNMP é utilizado para transportar informações da MIB entre gerentes e agentes, neste contexto são permitidas operações de consulta GET e modificação SET para valores de objetos da MIB associados a um elemento gerenciado. O SNMP também é utilizado para permitir que os agentes enviem mensagens (não solicitadas) caracterizadas como eventos, mensagens estas chamadas de TRAPs. A figura 3 apresenta a arquitetura genérica da gerência SNMP. 3.3 Trabalhos relacionados Como trabalho relacionado, a proposta definida em [6] utiliza uma rede IP (Internet Protocol) convencional para transportar os pacotes Interest e Data entre os nós CCN. Neste cenário o protocolo IPFIX foi estendido para criar um agente IPFIX que captura 87 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ os pacotes na rede IP (porta fixa UDP 9695) e converte para um formato XML (Extensible Markup Language) com os atributos relacionados ao CCN. Para os pacotes Interest são considerados como atributos; message type, content name, chunk number, timestamp e address. De forma similar para os pacotes Data são considerados como atributos; content name e informações de performance como; bytes, packets ou data rate. Com essas informações, o agente IPFIX cria um novo fluxo de dados que é encaminhado para um servidor central denominado CCN Collector/Visualizer, esse servidor tem o papel de analisar as estatísticas do tráfego. Cada nó CCN também possui um agente SNMP que coleta diversas informações a respeito das características físicas do nó como; CPU, memória, HDD, interfaces de rede e também informações a respeito das tabelas; CS, PIT e FIB. O agente SNMP utiliza uma MIB CCN definida para coletar ou alterar dados dos objetos, assim como para o envio de mensagens de notificação ao Servidor SNMP. As informações coletadas dos nós CCN pelos agentes IPFIX (tabelas de fluxos) e SNMP (tabelas de objetos monitorados) são exibidas em uma interface Web para o usuário. 4. NONM: Projeto e arquitetura para gerência de redes orientadas a conteúdo Nesta seção apresentamos a proposta de arquitetura NONM (Named-Oriented Network Management) a partir da utilização do SNMP como protocolo inicial a ser utilizado na arquitetura. 4.1 Protocolo SNMP como primeira proposta NONM A modelagem de uma ferramenta SNMP Proxy CCN é o primeiro passo em direção à adoção de mecanismos para gerência de redes CCN, sejam nativas ou overlay, outro protocolo convencional (mais antigo ou mais moderno) também poderia ser traduzido para gerenciar elementos nativos das redes orientadas a conteúdo, optamos pelo SNMP apenas por se tratar de um protocolo largamente conhecido como primeira aproximação para suprir a necessidade. Um modelo de mapeamento das funcionalidades mínimas de arquiteturas de gerência tradicionais para uso em CCN tornará possível a coexistência de ferramentas gerentes de redes legadas interoperáveis com agentes em redes CCN nativas. 4.2 MIB CCN Neste trabalho definimos uma MIB para a rede CCN com o mesmo propósito da MIB apresentada em [6], que se diferencia nos aspectos relativos à gerência de objetos refletidos em uma gente CCN nativo ao contrário de um agente SNMP convencional. 88 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Tabela 1: Características das ferramentas de monitoramento CCN Trabalho relacionado SNMP Proxy CCN Define uma MIB CCN SIM SIM Agente CCN nativo NÃO SIM Gerencia de nós CCN nativos NÃO SIM Mapeamento das operações básicas do SNMP para CCN NÃO SIM A MIB CCN tem como objetivo criar novos ramos na árvore com a identificação de objetos exclusivos (OIDs) para monitoramento de elementos de rede CCN em redes nativas. A MIB CCN proposta neste trabalho fica no mesmo nível de hierarquia da MIB2 e está classificada em duas partes, uma parte reflete objetos adotados no padrão da MIB2 e a outra parte trata objetos específicos para monitoramento de nós CCN. Objetos relacionados com a MIB padrão. Propomos manter a relação de objetos já adotados na MIB para manter um padrão de arquitetura uma vez que estes objetos estão relacionados à gerência do elemento de rede propriamente dito, como exemplo, “System” para “ccnSystem”, “Interfaces” para “ccnInterfaces” e demais objetos. Objetos exclusivos para tratar características do nó CCN. O nó CCN possui características que o torna único em relação à arquitetura de outros elementos das redes legadas, pois ele possui tabelas de controle diferenciadas para tratamento e roteamento de pacotes/conteúdo. Pensando nesta tratativa especificamos alguns grupos de objetos para monitorar estas tabelas, como por exemplo: ccnStatus, ccnFace, ccnCS, ccnPTI e ccnFIB. A MIB CCN é apresentada na Figura 4. Figura 4: A MIB CCN e sua sub-árvore. 89 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 4.3 Estratégias para mapeamento das operações básicas do SNMP Levando em consideração que os elementos da rede CCN não suportam o protocolo SNMP, é necessário o uso de um mecanismo SNMP Proxy [7] que permite o mapeamento das operações básicas do protocolo SNMP para monitoramento dos elementos nativos da rede CNN. Neste contexto um sub-agente (executado no proxy) deve conhecer os objetos da MIB CCN para estabelecer a interface de comunicação entre as redes IP e CCN. Com esse propósito, adotamos um mecanismo de mapeamento denominado SCNAT (SNMP Content Network Address Translation) que faz o papel de “tradutor” da arquitetura utilizada na ferramenta SNMP Proxy CCN, apresentada na figura 5. Figura 5: Arquitetura do SNMP Proxy CCN. A arquitetura utilizará dois tipos de agentes, um sub-agente e um agente ccn nativo, como descritos abaixo: Sub-agente: Responsável por mapear as consultas SNMP feitas aos objetos (OIDs) da MIB CCN para pacotes Interest que serão encaminhados para a rede CCN. Agente CCN: Responsável por gerar os conteúdos mapeados de acordo com a MIB CCN, que serão encaminhados para o SNMP Proxy CCN no formato de pacotes Data (nativo CCN) como resposta às solicitações dos pacotes Interest. 5. Mapeamento das operações básicas do SNMP através do SCNAT 5.1 Nomeação e descoberta dos nós Antes do processo de mapeamento das operações básicas do SNMP para CCN, é necessário conhecer os elementos existentes na rede CCN. A descoberta dos nomes ou labels destes elementos pode ser feita de forma hierárquica durante o processo de troca de mensagens de controle do protocolo de roteamento adotado, desta forma o nome ou label se torna um identificador exclusivo de cada elemento na rede CCN, por exemplo; /<network>/site/<ne>/ [8]. Descoberta de nomes. Do lado da interface com a rede CCN, o SNMP Proxy CCN manterá uma tabela dinâmica com os nomes dos nós conhecidos na rede. 90 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 5.2 Mecanismo de tradução SCNAT O Proxy SNMP CCN deve ter um sub agente implementado com uma imagem da MIB CCN de modo que ele possa acessar os objetos definidos para gerenciamento dos nós CCN, e utilizará o campo “Community” (string formada em texto plano) da PDU do SNMPv1 e SNMPv2 como parâmetro para informar com qual Label/NE deseja se comunicar. O campo “ContextName” terá a função do “Community” para o protocolo SNMPv3. Consulta: Do lado da interface com a rede IP, o SNMP Proxy CCN mantém uma tabela correspondente ao OID e o campo “Community” da mensagem que será usado para identificar o nome ou label do nó de destino. A tabela é formada pelos campos; IP de origem, Porta de origem, IP de destino, Porta de destino, RequestID e OID (MIB CCN) de acordo com a consulta feita pelo Gerente (NMS). Neste caso, a ferramenta Proxy saberá que a mensagem recebida trata-se de uma mensagem que deve ser mapeada para o mundo CCN com a definição de valor de porta diferente da porta 161 (ex.: uma porta alta qualquer), que servirá como um indicador na mensagem GET do SNMP informando que se trata de uma mensagem para ser mapeada para CCN e não de uma mensagem para um agente SNMP no próprio Proxy, sendo assim uma porta específica do SNMP, de modo que o Proxy saiba que aquela mensagem é para ser convertida e encaminhada a um nó CCN. O campo RequestID do protocolo SNMP é utilizado para identificar as mensagens de requisição geradas pelo processo gerente, uma vez que um gerente pode fazer múltiplas requisições SNMP para o mesmo agente. O campo OID será mapeado para o campo “Conteúdo” que juntamente com a informação do campo “Community” formará o pacote de interesse contido no campo “Pacote de interesse” que finalmente será encaminhado para a rede CCN. Tabela 2: A string do campo “Community” será utilizada para identificar o NE que deseja se comunicar. IP origem (NMS) Porta Origem IP destino (Proxy) (NMS) Porta Destino Community ResquestID OID (Proxy) (NMS) (MIB CNN) (Proxy) 10.0.0.100/24 20000 10.0.0.1/24 64000 Label-NE1 0 1.3.6.1.2.x.1.1 10.0.0.100/24 20000 10.0.0.1/24 64000 Label-NE2 1 1.3.6.1.2.x.1.2 10.0.0.200/24 30000 10.0.0.1/24 64000 Label-NE2 0 1.3.6.1.2.x.1.3 91 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Tabela 3: Formação do pacote de interesse de acordo com o conteúdo das colunas “Community” e “Conteúdo” Community OID Conteúdo Pacote de Interesse (Proxy) (MIB CNN) Label-NE1 1.3.6.1.2.x.1.1 ccnSystem/sysDesc /Label-NE1/ccnSystem/sysDesc Label-NE2 1.3.6.1.2.x.1.2 ccnSystem/sysObjectID /Label-NE2/ccnSystem/sysObjectID Label-NE2 1.3.6.1.2.x.1.3 ccnSystem/sysUpTime /Label-NE3/ccnSystem/sysUpTime Resposta: Após a entrega do pacote Interest do SNMP Proxy CCN para a rede CCN nativa formado pelo mapeamento descrito anteriormente, a rede deve retornar como resposta um pacote Data levando em consideração a arquitetura do modelo CCN. Quando o SNMP Proxy CCN receber o pacote Data de volta como resposta, a mensagem PDU Response será formada de acordo com o conteúdo da tabela que mantém o mapeamento do campo IP origem e Porta de origem, na volta os valores serão utilizados agora como destino, para identificação do Gerente (NMS) que fez a solicitação no início. Tabela 4: Formação da “PDU Request”, para entrega do conteúdo solicitado de volta ao Servidor Gerente (NMS). IP destino (NMS) Porta destino ResquestID (NMS) IP origem Conteúdo (Proxy) (NMS) 10.0.0.100/24 20000 0 10.0.0.1/24 ccnSystem/sysDesc 10.0.0.100/24 20000 1 10.0.0.1/24 ccnSystem/sysObjectID 10.0.0.200/24 30000 0 10.0.0.1/24 ccnSystem/sysUpTime 6. Mapeamento das operações básicas do SNMP para CCN 6.1 Operação GET Com uso da arquitetura SCNAT será possível iniciar uma consulta ao nó CCN nativo através da operação GET do SNMP. Como exemplo, podemos usar uma consulta feita para o objeto “sysUptime” (sob o objeto ccnSystem) do elemento “NE1”. O servidor de gerência “Host Gerente” inicia uma consulta SNMP “GET Request” para o OID “1.3.6.1.2.x.1.3”, que reflete o objeto “ccnSystem/sysUpTime” (1), o campo “Community” deve ser preenchido com o “label/nome” do nó que deseja consultar, como exemplo, “label_NE1”. O SNMP Proxy CCN converte a mensagem para um pacote de interesse mapeado como “Interest /NE1/ccnSystem/sysUpTime” e envia o pacote para a rede de elementos CCN (2). Se o elemento “NE1” tem o conteúdo “/NE1/ccnSystem/sysUpTime” (como objeto do nó label_NE1 mapeado da MIB CCN), 92 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ ele responde a requisição imediatamente com a mensagem de dados, exemplo “Data /NE1/ccnSystem/sysUpTime”. O SNMP Proxy CCN converte a mensagem de dados “/NE1/System/sysUpTime” para uma mensagem padrão SNMP “GET Response”. Se a consulta fosse feita para outro elemento da rede mais distante, “NE2” por exemplo, o “NE1” armazena o interesse em sua tabela “PIT” e encaminha a mensagem para os próximos nós na rede até que o conteúdo seja localizado (3). Por fim, o conteúdo localizado é armazenado no “cache” de cada NE para satisfação das pendências do pacote de interesse (4). Como grande parte dos objetos gerenciáveis na MIB CCN são objetos dinâmicos (ex.: informação sobre o número de pacotes de interesse), é recomendado que apenas alguns valores de objetos sejam armazenados no cache dos nós intermediário na rede CCN (ex.: número de interface de rede físicas de um elemento). Após a entrega do conteúdo finalmente para o SNMP Proxy CCN (5), o mesmo é encaminhado para o Host Gerente que a solicitou no início da consulta (6). Os passos descritos acima são apresentados na figura 6. As demais operações básicas do SNMP tais como: “GET-NEXT”, “GET-BULK” e “SET” embora mais complexas, podem ser mapeadas seguindo o mesmo princípio, com a diferença que a operação “GET-NEXT” consulta o próximo OID na hierarquia e o “GET-BULK” consulta um número maior de OIDs, de acordo com o valor do parâmetro max-repetitions. A operação “SET” tem como objetivo alterar o valor de um objeto. Figura 6: Passos para mapeamento da consulta da operação “GET”. 6.2 Uso do Publishe/Subscribe para mapeamento da TRAP Com base no modelo de comunicação Publishe/Subscribe [14, 15, 16], temos como proposta inicial o uso do mecanismo “Publishe/Subscribe Event Notification” para tratar a notificação de eventos na plataforma SNMP Proxy CCN. A ferramenta SNMP Proxy CCN deve implementar o processo “Forwarding Tables/Notification Service” que fará o gerenciamento das mensagens de publicação e assinaturas de eventos, também deverá implementar o processo “Sub-agente Consumer” que deve agir como Consumer/Subscriber do sistema. O Agente CCN deve implementar o processo “Producer/Publisher” que fornecerá a publicação dos eventos relacionados aos objetos gerenciados que podem mudar o seu estado (ex.: linkDown, linkUP). 93 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Os processos no SNMP Proxy CCN e nó CCN estão classificados abaixo: SNMP Proxy CCN Forwarding tables/Notification Service Consumer/Subscriber Nó CCN Producer/Publisher 6.3 Mapeamento da operação "TRAP" do SNMP para CCN O sub-agente da ferramenta Proxy deve cadastrar os servidores gerentes que receberão as TRAPs, como é feito no modo convencional (1). A ferramenta SNMP Proxy CCN deve implementar os processos “Consumer” e “Notification Service”, o processo Consumer expressará ao processo Notification Service o interesse em eventos específicos que deseja monitorar, como por exemplo; “Interest/label_NE/ccnSystem/linkDown” e “Interest /label_NE/ccnSystem/linkUP” (2). O processo “Producer” implementado no elemento CCN deve informar ao Proxy a publicação dos conteúdos “/NE1/ccnSystem/linkDown” e “NE1/ccnSystem/linkUP” (3). Se o conteúdo/estado do “Interest /label_NE/ccnSystem/linkUP” é alterado para “Interest /label_NE/ccnSystem/linkDown”, o mesmo é encaminhado para o Proxy (4). Em seguida o pacote é convertido para o formato de uma TRAP SNMP e encaminhado para os servidores gerentes cadastrados para receber as TRAPs (5). Figura 7: Arquitetura “Publishe/Subcribe Event Notification” para o SNMP Proxy CCN. 94 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 7. Conclusão e Trabalhos Futuros Uma solução eficiente para gerencia de elementos CCN nativos com uso de gerentes SNMP em redes IP, abre espaço para novas discussões sobre a interoperabilidade entre redes legadas e redes orientadas a conteúdo. Entre as vantagens da arquitetura proposta, é apresentada a possibilidade de tornar os sistemas convencionais (SNMP, NETCONF ou outros) compatíveis com novos sistemas e paradigmas (ex.: CCN), uma vez que a migração destas arquiteturas pode ser feita de forma gradual sem a necessidade de grandes alterações na infraestrutura já existente. Desta forma podemos afirmar que a ferramenta SNMP Proxy CCN serve como um facilitador no processo de migração das plataformas legadas. Outro ponto a se observar é a possível diminuição de custos de operação das redes de telecomunicações, uma vez que o elemento gerenciado passa a ser localizado através do seu “label/nome” que se mostra totalmente desacoplado do endereçamento IP convencional, no que se refere ao controle destes endereços em grandes redes (centenas e milhares de elementos) devido a sua arquitetura mais complexa de planejamento. Como trabalhos futuros inclui-se o desenvolvimento de uma prova de conceito da arquitetura para avaliação experimental no Mini-CCNx [17] e a inclusão dos resultados como contribuição para futuras discussões. Existe também a possibilidade de novas pesquisas para a criação de um gerente CCN nativo além do agente CCN já proposto neste trabalho. Referências [1] de Brito, G. M., Velloso, P. B., and Moraes, I. M. (2012). “Redes Orientadas a Conteúdo: Um Novo Paradigma para a Internet”, In Minicursos SBRC 2012. [2] Jacobson, V., Smatters, D. K., Thornton, J, D., Plass, M, F., N, H., Briggs, R, L., Braynard, “Networking Named Content”. Palo Alto Research Center. Palo Alto, CA, USA. 2009. [3] T. Koponen, M. Chawla, B.-G. Chun, A. Ermolinskiy, K. H. Kim, S. Shenker, and I. Stoica: “A Data-Oriented (and Beyond) Network Architecture”, In ACM SIGCOMM 2007. [4] Jokela, P., Zahemszky, A., Rothenberg, C., Arianfar, S., Nikander, P.: “LIPSIN: Line Speed Publishe/Subscribe Inter-Networking”, In ACM SIGCOMM 2009. [5] Xylomenos, G. and et al..: ”A Survey of Information-Centric Networking Research”, Communications Surveys & Tutorials, IEEE, 2013 [6] Kang, W., Sim B., Kim, J., Paik, E., Lee, E.: “A Network Monitoring Tool for CCN”, Daejeon, Seoul, Korea 2012 95 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ [7] Chavan, S. S. and et al..: ” Generic SNMP Proxy Agent Framework Management of Heterogeneous Network Elements”, Communication Systems and Networks and Workshops, IEEE, 2009 [8] A, K, M, Mahmudul Hoque, Syed Obaid Amin, Adam Alyyan, Beichuan Zhang, Lixia Zhang, Lan Wang, “NLSR: Named-data Link State Routing Protocol”, In ACM SIGCOMM Workshop on ICN, Aug. 2013. [9] Webnms (2014) – Introdução ao protocolo TL1. Disponível online: http://www.webnms.com/webnms/help/developer_guide/management_protservic es/mgmnt_protocols/tl1/proto_tl1_intro.html [10] Nunes, S., David, G.: “Uma Arquitectura Web para Serviços Web”, in XATA 2005. [11] Netconf Central (2014) – Acesso: Marc/2014, Disponível online: http://www.netconfcentral.org/netconf_docs [12] Kurose, J. F, Ross, K. W: “Redes de Computadores e a Internet – Uma abordagem top-down”, 3 Edição, 2005 [13] Mauro, R. D, Schmidt, K. J: “Essential SNMP, Second Edition”, 2005 [14] Virgillito, A., “Publishe/Subscribe Communication Systems: from Models to Applications”, Phd Thesis, Universita “La Sapienza”, Aug. 2003 [15] Eugster, P., Felber P. A., Guerraoui, R., Kermarrec, A., “The Many Faces of Publishe/Subscribe”, ACM Comput. Surv. 35, 2 (June 2003) Jun. 2003 [16] Carzaniga, A., Palpaline, M., Wolf, L. A., “Content-Based Publishe/Subscribe Networking and Information-Centric Networking”, ACM SIGCOMM Workshop on ICN, Aug. 2011 [17] Cabral, C., Rothenberg, C., Magalhães, M.: “Mini-CCNx: prototipagem rápida para Redes Orientadas a Conteúdo baseadas em CCN”, In Salão de Ferramentas do SBRC 2013. 96 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Cloud Disk Drive: Uma Abordagem para a Criação de Discos Virtuais de Baixo Custo Utilizando Redes p2p Anderson Fonseca e Silva1 , Vinicius Cardoso Garcia1 , Rodrigo Elia Assad2 , Frederico Durão3 1 2 Universidade Federal de Pernambuco - Centro de Informática (UFPE) Recife – PE – Brasil Universidade Federal Rural de Pernambuco - Departamento de Informática (UFRPE) Recife – PE – Brasil 3 Universidade Federal da Bahia Instituto de Matemática, Departamento de Ciências da Computação Salvador, BA – Brazil {afs8,vcg}@cin.ufpe.br, [email protected], [email protected] Resumo. Este trabalho apresenta uma proposta para a disponibilização de unidades virtuais para o armazenamento de dados em nuvem, através da associação de tecnologias e conceitos, tais como: iSCSI e redes p2p. Desta forma, os arquivos podem ser distribuı́dos em nós conectados à rede, permitindo a oferta de armazenamento em disco de maneira compartilhada e a redução de custos pelo ofertante do serviço. 1. Introdução Devido à necessidade das empresas em expandir sua capacidade de armazenamento em rede, motivado pelo alto volume no tráfego de e-mails com anexos, ambientes colaborativos de trabalho, banco de dados e dados multimı́dia, ou por pressões de negócios em âmbito global, que devem estar alinhado com diferentes modelos regulatórios em vários paı́ses, torna-se importante o uso de arquitetura de armazenamento, dos quais se destacam: Direct-attached storage (DAS), Network-attached storage (NAS) e Storage-area networks (SANs). Segundo a Intel1 , a SAN é a arquitetura mais escalável se comparada com as duas anteriores, porém, requer o uso de software e hardware especializado, tornando alto o custo inicial para a aquisição de equipamentos. Como solução, a empresa propôs a utilização da arquitetura SAN associada ao advento do iSCSI [Meth et al. 2004] surgido em 2003. Com o advento da computação em nuvem, surgiram modelos de serviços com foco no armazenamento de dados, tais como: Storage as a Service (STas) e Data as a Service (DaaS). O primeiro permite que as aplicações em nuvem escalem além da limitação de onde estão hospedados, permitindo que usuários armazenem seus dados em discos remotos, acessando-os em qualquer lugar e a qualquer momento [Jiyi et al. 2010], e o segundo, além de fornecer as mesmas funcionalidades do primeiro, permite informações 1 http://www.broadberry.co.uk/pdf/intel10gbe/ISCSISANNetworks.pdf 97 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ sobre análise de crédito e contabilidade de empresas para clientes. O modelo DaaS oferece funcionalidades que permitem seus clientes adquirirem ou fornecerem dados sob um modelo de serviços, desconsiderando se a informação ofertada é gratuita ou comercial [Truong and Dustdar 2009]. Neste contexto, este trabalho apresenta uma proposta para a oferta de espaço para armazenamento de dados de forma compartilhada, provendo uma cota pré-definida para cada usuário, porém, alocada de forma virtual, proporcionando uma economia na disponibilização de recursos pelo ofertante. Além disso, a proposta dispensa o uso de instaladores ou graphical user interface (GUI) proprietárias, facilitando assim a administração na implantação da solução. No restante deste artigo, as seções estão estruturadas da seguinte forma: Seção 2, tecnologias relacionadas; Seção 3, a solução proposta, arquitetura e projeto, bem como, sua validação; e Seção 4, considerações finais e trabalhos futuros. 2. Tecnologias relacionadas O propósito desta seção é apresentar as tecnologias e conceitos que embasam a construção desta proposta. As seguintes subseções discorrem sobre o iSCSI, importante para a comunicação entre os clientes e servidores; o JXTA [Gong 2001], selecionado como tecnologia para a implementação da solução, utilizando tecnologias p2p; e por fim, o USTO.RE uma solução de armazenamento em nuvem privada, utilizada na validação da proposta. 2.1. iSCSI Segundo a SearchStorage2 , o iSCSI resulta da junção do SCSI (Small Computer System Interface) e, o IP Internet Protocol desenvolvido pela IETF. Trafegando comandos SCSI sobre redes IP, o iSCSI facilita a transferência de dados sobre intranets, facilitando o gerenciamento no armazenamento em longas distâncias. Deste modo, este modelo de conectividade tem se tornado uma das tecnologias-chave para a a implantação e transmissão de dados no mercado de SAN (Storage Area Network), aumentando sua capacidade e performance. Devido a ubiquidade das redes IP, o iSCSI pode ser utilizado para transmitir dados em LAN (Local Area Networks), ou Internet permitindo um modelo de armazenamento de dados independente de localização. 2.2. JXTA (Juxtapose) No contexto de tecnologias para a construção de redes p2p, o JXTA se apresenta como uma alternativa para a implementação utilizando a plataforma Java. As vantagens relativas à utilização de redes p2p comparadas com o modelo cliente/servidor tradicional estão na escalabilidade e tolerância a falhas [Das et al. 2010]. O JXTA é uma especificação para a plataforma p2p desenvolvida pela Sun Microsystems sob a direção de Bill Joy e Mark Clary. Uma das principais funcionalidades da plataforma é fornecer um padrão, permitindo que desenvolvedores comerciais e de código-aberto criem serviços interoperáveis e aplicações. O JXTA foi modelado utilizando um pequeno número de protocolos para o 2 http://searchstorage.techtarget.com/definition/iSCSI 98 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ tratamento de serviços. Estes protocolos podem ser implementados utilizando qualquer linguagem, permitindo dispositivos heterogêneos se comunicarem um com o outro em uma rede p2p. 2.3. USTO.RE O projeto USTO.RE [Durao et al. 2013] consiste em uma solução de baixo custo para o armazenamento de arquivos de forma distribuı́da utilizando redes p2p. Nesta solução, os arquivos são separados em chunks (pedaços com tamanho pré-definido) e gravados em outros nós conectados à rede, de acordo com o algoritmo de replicação em execução. 3. Cloud Disk Drive Nesta seção serão apresentadas as definições relativas a proposta, bem como sua análise, projeto e implementação utilizando como infra-estrutura a associação entre o iSCSI e a solução USTO.RE. Figura 1. Visão geral. Na Figura 1.A é possı́vel verificar a solução tradicional para armazenamento de dados utilizando iSCSI, onde os equipamentos acessam o iSCSI-Target através do iSCSIInitiator, que se encontra disponı́vel na maioria dos sistemas operacionais. Neste modelo, quando o usuário ou aplicação solicita alguma operação, um pacote com um cabeçalho é adicionado antes dos pacotes IP serem enviados (1), e, quando da chegada dos pacotes na outra ponta, estes são separados entre comandos iSCSI e o conteúdo da requisição (2), por fim, os comandos são enviados para o controlador iSCSI, e em seguida, repassados para o dispositivo de armazenamento. As vantagens dessa abordagem estão na facilidade de execução sobre redes Ethernet. Ainda na Figura 1.B, o modelo proposto segue os mesmos moldes de comunicação da proposta da Figura 1.A, porém, o diferencial está no armazenamento dos dados enviados pelos usuários. Neste, o ofertante do iSCSI-Target não necessita de unidade de armazenamento, a proposta se volta para a utilização dos nós conectados à rede p2p, disponibilizando uma cota de espaço em seus discos rı́gidos, o que torna possı́vel um melhor aproveitamento dos recursos já adquridos pela empresa. 99 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 3.1. Design da solução Para a implementação deste trabalho foi tomado como requisito principal, prover ao usuário por meio de uma comunicação iSCSI, uma unidade de disco pré-formatada, utilizando um sistema de arquivos, com um tamanho de armazenamento pré-definido, podendo variar entre 500GB ou 1TB. Contudo, a forma de alocação da área de dados da partição escolhida, no lado do servidor, não deveria acontecer, simulando deste modo, uma quantidade virtualmente disponı́vel de armazenamento. Figura 2. Layout do sistema de arquivos FAT32. Na implementação inicial foi selecionado o sistema de arquivos FAT32 [Corporation 2004], devido à sua disponibilidade de documentação, sobre como obter o retorno dos arquivos e metadados. Conforme a Figura 2 o modelo FAT32 é simples, onde o primeiro setor é sempre o Volume ID, seguido por espaços não utilizados (Reserved Sector), consequentemente, seguem duas cópias do sistema de alocação de arquivos (FAT). O restante do sistema de arquivos é organizando em clusters, sendo esta, a área que consiste na maior parte do tamanho do disco, utilizado para armazenar todos os arquivos e diretórios. Sendo assim, esta trabalho propôs a separação dos setores iniciais do disco (Volume ID, Reserved Sector, FAT1 e FAT2), da área de clusters. Deste modo, como as informações necessárias para inicialização da partição já estão contidas nas primeiras seções do disco, é possı́vel oferecer um disco com capacidade de 1 TB, alocando tão somente 1 GB de dados, o que representa uma economia inicial de 99 por cento na alocação de espaço. 3.2. Implementação e Funcionamento Para a implementação da proposta foi utilizada a tecnologia Java e um conjunto de ferramentas, tais como: jSCSI3 para a adaptação do iSCSI-Target; FAT32 Format, para permitir a formatação de volumes maiores que o permitido pelo Windows, neste caso, 500GB ou 1TB, e por fim, o SGBD MySQL 4 , para armazenar os endereços dos clusters. Na Figura 3 é apresentada a visão de implementação, onde o usuário solicita a inicialização da partição através de um aplicativo web (1) e, em seguida, inicia a conexão com o iSCSI-Target através de um endereço pré-definido (2). A partir deste momento, o Target recupera o arquivo contendo as informações da partição (particao.dat), onde estão 3 4 http://jscsi.org/ http://mysql.org/ 100 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Figura 3. Visão de implementação. contidas as informações de inicialização. Por fim, a unidade é exibida no gerenciador de arquivos do usuário. Neste contexto, no momento em que os usuários enviam arquivos ou criam pastas, as informações são enviadas em segmentos para o Target e gravados inicialmente no arquivo de partição. A justificativa para esta abordagem é permitir uma redução da latência no envio dos dados. Em outro momento, havia sido cogitado a gravação dos segmentos em uma estrutura fora da partição, o que gerou uma alta taxa de I/O, degradando a performance da aplicação. Dentro deste processo, o segmentos recebidos são registrados em um banco de dados, bem como, o identificador de sua partição. Para o envio dos dados para a solução de armazenamento em nuvem, foi criada uma abordagem utilizando uma execução em Batch. Porém, para a leitura das informações na partição, foi criado um extrator que entende como são gravados os dados na FAT32, recompondo-os em forma de arquivos, ao invés de segmentos, para que o Batch, consiga transferir para a solução em nuvem desejada, neste caso, o USTO.RE. Além disso, o Batch tem a responsabilidade de controlar os arquivos extraı́dos e já enviados, evitando o reenvio ou a recuperação e escrita desnecessária. 3.3. Validação inicial Neste primeiro momento a validação se deu, com o objetivo de verificar a viabilidade da proposta. O ambiente de execução foi montado utilizando uma rede de 100Mbps, para o iSCSI Initiator, um notebook com CPU core i5, 4GB RAM e 500GB de disco rı́gido. O iSCSI-Target foi montado em um equipamento com um processador core i-5, 4GB de RAM, sistema operacional Windows 7-64 Bits e 2TB de disco rı́gido. Neste contexto, foi simulado um disco de 1TB, neste os arquivos de inicialização da FAT ocuparam 1GB de espaço do arquivo. A vazão média aferida para o envio de 1000 arquivos foi de 10.11 segundos, e, 9.96 para 10.000 arquivos. Considerando o envio para o iSCSI, desprezando a execução do batch para o envio dos dados para o USTO.RE inicialmente. 101 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 4. Considerações finais Esta proposta forneceu as ideias iniciais para a elaboração de um sistema de armazenamento colaborativo de baixo custo, emulando um disco virtual com capacidade superior ao que é possı́vel ofertar de forma fı́sica, através do envio dos dados para uma solução em nuvem. Neste, é possı́vel reduzir a curva no aprendizado na utilização da solução, através do uso dos aplicativos de gerenciamento de arquivos já fornecidos pelos sistemas operacionais, possı́vel através do uso do iSCSI. Este trabalho se encontra em andamento, e questões como performance, bufferização, latência na recuperação dos arquivos e outras issues, serão consideradas à medida em que o trabalho evolui. 5. Agradecimentos Este trabalho foi apoiado parcialmente pelo Instituto Nacional de Ciência e Tecnologia para Engenharia de Software (INES)5 , financiado pelo CNPq e FACEPE, processos 573964/2008-4 e APQ-1037-1.03/08. Referências Corporation, M. (2004). Microsoft fat specification. pages 1–37. Das, S., Agrawal, D., and Abbadi, A. E. (2010). Elastras: An elastic transactional data store in the cloud. CoRR, abs/1008.3751. Durao, F. A., Assad, R. E., Fonseca, A., Carvalho, J. F. S., Garcia, V. C., and Trinta, F. (2013). Usto.re: A private cloud storage software system. In Daniel, F., Dolog, P., and Li, Q., editors, ICWE, volume 7977 of Lecture Notes in Computer Science, pages 452–466. Springer. Gong, L. (2001). JXTA: A Network Programming Environment. IEEE Internet Computing, 5(3):88–95. Jiyi, W. J. W., Ping, L. P. L., Ge, X. G. X., Wang, Y. W. Y., and Fu., J. F. J. (2010). Cloud storage as the infrastructure of cloud computing. Meth, S. J. K., Sapuntzakis, C., Chadalapaka, M., and Zeidner, E. (2004). Internet small computer systems interface (iscsi). In IETF, editor, Internet Small Computer Systems Interface (iSCSI). IETF-RFC-3720. Truong, H.-L. T. H.-L. and Dustdar, S. (2009). On analyzing and specifying concerns for data as a service. In IEEE, editor, IEEE Asia-Pacific Services Computing Conference (APSCC), pages 555–566. IEEE. 5 http://www.ines.org.br/ 102 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ HyperDHT - DHT de Um Salto Baseada em Hipercubo Virtual Distribuído Jefferson Paulo Koppe, Luis Carlos E. de Bona, Elias P. Duarte Jr. Departamento de Informática - Universidade Federal do Paraná (UFPR) Caixa Postal 19081 - 81531-990 - Curitiba - PR - Brazil {jpkoppe,elias,bona}@inf.ufpr.br Abstract. A Distributed Hash Table (DHT) is a P2P network that provides an efficient and scalable solution for searching distributed information. This work proposes a new DHT, called HyperDHT which is based on a distributed virtual hypercube, consisting of nodes spread across the Internet connected by virtual links. HyperDHT uses the overlay network constructed by the Distributed Virtual Hypercube Algorithm (DiVHA), which is a hierarchical distributed diagnosis algorithm with well-known maximum limits for the number of tests required as well as the diagnosis latency. HyperDHT is different from most other strategies in that the position of new participants is deterministic, a new participant is located where it is most needed. The overlay network allows the hash keys to be partitioned, balanced and consistently mapped to the working nodes. HyperDHT was implemented in a simulation environment and results are presented for the latency of event dissemination, the overhead in terms of network resources consumed, and the search success rate in the presence of churn. Resumo. As DHTs (Distributed Hash Table) são redes P2P que oferecem uma solução eficiente e escalável para localização de informações distribuídas. Este trabalho propõe uma nova DHT, chamada de HyperDHT. O HyperDHT é baseado em um hipercubo virtual distribuído, formado por nodos espalhados pela Internet e interligados por enlaces virtuais. O HyperDHT utiliza a rede de sobreposição construída pelo algoritmo DiVHA (Distributed Virtual Hypercube Algorithm), que é um algoritmo de diagnóstico distribuído hierárquico com os limites máximos conhecidos e definidos para o número de testes executados e para a latência. Diferentemente do que é usualmente empregado nos sistemas DHTs, o posicionamento de um novo participante no HyperDHT é realizado de forma determinística, a fim de posicioná-lo no local da rede onde é mais necessário. A rede sobreposta forma a base na qual é realizado o particionamento, o balanceamento e o mapeamento consistente das chaves hash. O HyperDHT foi implementado em um ambiente de simulação e os resultados obtidos são apresentados em função da latência de disseminação de eventos, da sobrecarga em relação aos recursos de rede e do impacto do churn na taxa de sucesso das consultas. 1. Introdução As DHTs (Distributed Hash Table) disponibilizam uma função de consulta similar à encontrada em tabelas hash tradicionais, sendo que as chaves são distribuídas pelos diversos 103 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ nodos do sistema [Androutsellis-Theotokis and Spinellis 2004, E. K. Lua and Lim 2005]. Para encaminhar uma consulta a partir do nodo requerente até aquele responsável pela chave procurada, as DHTs fazem uso de tabelas de roteamento. Cada vez que uma consulta é encaminhada para um novo nodo é dito que houve um salto. De maneira geral, quanto maior a quantidade de saltos necessários para resolver uma consulta, maior será a latência, ou seja, maior será o intervalo de tempo para que o nodo que originou a consulta obtenha a sua resposta. O uso de grandes tabelas de roteamento permite que as consultas sejam resolvidas em um número menor de saltos, mas se deve considerar que quanto maior a quantidade de informação de roteamento armazenada em cada nodo, maior será a demanda de comunicação para sua manutenção [J. Risson and Moors 2006]. Deste modo, as DHTs devem balancear a latência das consultas com a demanda de comunicação para manutenção das tabelas de roteamento. As primeiras DHTs, a exemplo do Pastry [Rowstron and Druschel 2001], Tapestry [B. Y. Zhao and Joseph 2001], Chord [I. Stoica and Balakrishnan 2001] e CAN [S. Ratnasamy and Shenker 2001], são classificadas como Multi Hop DHT pois fazem uso de tabelas de roteamento parciais e necessitam que uma consulta seja roteada por diversos nodos. As DHTs cujas tabelas de roteamento contêm informações sobre todos os participantes do sistema são conhecidas por Single Hop DHT, e o que as diferencia das multi-hop é a capacidade de resolver as consultas em um único salto, usando apenas a tabela de roteamento local. Uma Single Hop DHT requer que os eventos de entrada, saída ou falha de qualquer nodo do sistema sejam reportados para todos os participantes do sistema [A. Gupta and Rodrigues 2004]. Por este motivo, a preocupação principal passa a ser como realizar a disseminação dos eventos de maneira rápida e eficiente [J. Risson and Moors 2006]. Este trabalho apresenta uma nova DHT de salto único, chamada de HyperDHT. A proposta do HyperDHT é prover uma solução onde o procedimento de localização de uma informação ou um objeto distribuído em uma rede P2P seja realizado de forma rápida, eficiente e escalável. Sendo o HyperDHT uma DHT de salto único, as questões relativas à escalabilidade não estão relacionadas com o algoritmo de localização, mas sim voltadas aos procedimentos realizados para manutenção da tabela de roteamento. O HyperDHT utiliza a rede de sobreposição construída pelo algoritmo DiVHA (Distributed Virtual Hypercube Algorithm), que é um algoritmo de diagnóstico distribuído hierárquico com os limites máximos conhecidos e definidos para o número de testes executados (log2 N ) e para a latência (N × log2 N ) [L. C. E. Bona 2008]. Permitindo ao HyperDHT adotar estratégias para maximizar a chance das consultas serem respondidas em um único salto, mesmo nas situações em que o sistema não está estabilizado, com eventos ainda em fase de disseminação. O HyperDHT incorpora no protocolo de entrada mecanismos para posicionar deterministicamente um novo participante no local da rede onde ele é mais necessário. Esta abordagem diferencia o HyperDHT das demais DHTs que, usualmente, deixam o problema do posicionamento de um novo participante por conta da função hash, acreditando que o efeito avalanche irá fazer uma distribuição razoavelmente homogênea dos participantes na rede de sobreposição. Como resultado, podemos esperar que o balanceamento 104 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ de carga em um sistema HyperDHT seja mais homogêneo, comparado com as DHTs que utilizam o hash para posicionar os participantes na rede. O HyperDHT foi implementado em um ambiente de simulação e os resultados obtidos são apresentados em função da latência de disseminação de eventos, da sobrecarga em relação aos recursos de rede e do impacto do churn na taxa de sucesso das consultas. O restante deste artigo está organizando da seguinte maneira. A seção 2 apresenta trabalhos relacionados. Na seção 3 o HyperDHT é especificado. A análise dos resultados das simulações são apresentados na seção 4. A seção 5 conclui este trabalho. 2. Trabalhos Relacionados Devido ao compromisso entre a latência de uma consulta e o consumo de recursos de rede necessários para manter a tabela de roteamento, a maioria das DHTs propostas optaram por soluções onde as consultas são resolvidas em múltiplos saltos (p.ex., [S. Ratnasamy and Shenker 2001, Fraigniaud and Gauron 2003, Kaashoek and Karger 2003, D. Malkhi and Ratajczak 2002, B. Y. Zhao and Joseph 2001, I. Stoica and Balakrishnan 2001, ?]), de maneira a minimizar o tráfego destinado para manutenção do sistema. As DHTs classificadas como de salto único, diferentemente das de múltiplos-saltos, têm como principal compromisso minimizar ao máximo a latência das consultas [C. Zhuo and Yi 2012]. Nesta classe o foco principal passa a ser como realizar a disseminação dos eventos de entrada e saída de participantes de maneira rápida e eficiente [J. Risson and Moors 2006], visto que a realização de consultas em DHTs de salto único é trivial pois todos nodos têm conhecimento sobre todos participantes do sistema. O sistema OneHop [A. Gupta and Rodrigues 2004] foi a primeira DHT proposta a garantir que a maior parte das consultas sejam resolvidas em um único salto, mesmo em ambientes dinâmicos. A topologia da rede de sobreposição adotada pelo OneHop é similar àquela empregada pelo Chord, onde os nodos são distribuídos e ordenados por seus identificadores em um anel, mas com a diferença que cada nodo, além de conhecer seu sucessor, também conhece seu antecessor. A hierarquia definida por OneHop facilita o agrupamento de eventos de maneira a minimizar os custos de manutenção das tabelas de roteamento, mas tem como efeito colateral um alto nível de desbalanceamento de carga de manutenção entre os nodos de diferentes níveis da hierarquia, como mostrado nos resultados publicados em [P. Fonseca and Liskov. 2009]. Além disso, os próprios autores apontam limitações de escalabilidade nos casos onde nodos não possuem banda de rede suficiente para exercer suas atribuições no sistema OneHop. A D1HT [Monnerat and Amorim 2006] propõe resolver grande parte das consultas em apenas um único salto, com baixa demanda de rede e em ambientes dinâmicos típicos das aplicações P2P. Os participantes e objetos de um sistema D1HT recebem um identificador/chave e são dispostos ordenadamente em um anel, de forma similar ao que acontece em um sistema Chord. As chaves, como também ocorre no Chord, são associadas ao nodo sucessor no sentido horário, na topologia formada pelo anel. Os nodos mantêm uma tabela de roteamento com os endereços IP de todos os participantes do sistema para viabilizar que as consultas sejam resolvidas em apenas um salto. Para manter a tabela de roteamento atualizada e sincronizada em todos os nodos, a D1HT utiliza um algoritmo de disseminação de eventos batizado de EDRA (Event Detection and Report Algorithm). Em [Monnerat and Amorim 2006] o autor enfatiza o baixo consumo de recur- 105 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ sos de rede demandados para manutenção das tabelas de roteamento se comparado com outros sistemas tipo single hop DHT, como por exemplo [A. Gupta and Rodrigues 2004]. O autor descreve, ainda, algumas situações em que uma consulta pode levar mais tempo do que o esperado em decorrência de um evento ainda não ter sido totalmente propagado no sistema. 3. HyperDHT: DHT de Um Salto Baseada em Hipercubo Virtual Distribuído Nesta seção será apresentado e discutido o HyperDHT. As sub-seções estão organizadas da seguinte maneira. A sub-seção 3.1 apresenta algumas considerações preliminares. A sub-seção 3.2 define o modelo do sistema. A sub-seção 3.3 descreve a abordagem adotada para o particionamento do espaço de chaves hash. Finalizando com a sub-seção 3.4 onde são discutidas as questões relativas às consultas de salto único. 3.1. Considerações Preliminares A proposta do HyperDHT é fazer uso da infra-estrutura fornecida pelo algoritmo DiVHA para implementar os serviços necessários de uma DHT de salto único. O DiVHA permite a cada peer calcular de forma independente seus enlaces virtuais, os quais inter-conectam os participantes em uma estrutura baseada em um hipercubo, formando a rede de sobreposição. Os enlaces virtuais são utilizados pelo HyperDHT para detecção e disseminação de eventos, e para troca das informações necessárias para manutenção da tabela de roteamento. No topo desta infra-estrutura de base, o HyperDHT implementa as seguintes funcionalidades: mecanismos para posicionamento e busca dos objetos na rede P2P; particionamento e mapeamento consistente das chaves da tabela hash entre os peers; protocolos de entrada de novos participantes na rede; esquema de replicação das informações ou objetos armazenados na rede; e as funções DHT clássicas lookup, put e get. O posicionamento e a posterior localização dos objetos distribuídos na rede é baseado em identificadores numéricos (chaves) que são atribuídos aos peers e aos objetos quando estes entram no sistema HyperDHT. O particionamento da tabela hash entre os peers é realizado através de técnicas de hash consistente [D. Karger and Lewin 1997]. Com isso, o remapeamento do espaço de chaves e a transferência dos objetos acontecem de forma localizada, somente entre peers adjacentes ao peer que originou um evento de entrada, saída ou falha. Para ingressar em um sistema HyperDHT, um peer pretendente deve seguir o protocolo de entrada. Este procedimento determina, com base na topologia atual da rede, uma posição adequada para alocar o novo peer. A saída de um participante do sistema pode se dar de duas maneiras: o peer anuncia sua saída para seus vizinhos e segue o protocolo de saída para garantir a disponibilidade dos valores em um único salto; ou, ele simplesmente sai do sistema, ocasionando saltos extras para réplicas nas eventuais consultas em chaves pertencentes ao peer que saiu. Os peers da HyperDHT mantêm uma tabela de roteamento completa, com referências para todos os demais participantes da rede. Cada entrada desta tabela associa o identificador de um determinado peer ao seu endereço de rede. A operação de consulta lookup(key) faz uso desta tabela para encontrar o peer responsável por uma determinada chave e viabiliza a implementação das funções put(key, value) e get(key). 106 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 3.2. Modelo do Sistema Considere um sistema S composto por um conjunto V de vértices, onde vi ∈ V corresponde a um vértice do hipercubo H(S), sendo que i determina o identificador numérico de vi em H(S). Os vértices deste sistema representam posições na rede de sobreposição que podem, ou não, ser ocupados por um peer. Se em um dado momento o vértice contém um peer ele é dito ocupado, caso contrário o vértice é dito vazio. O sistema é considerado totalmente conectado, ou seja, os peers podem se comunicar diretamente, sem intermediários. Ao ingressar na rede, um peer recebe um identificador i que o relaciona a um dos vértices em H(S). Um peer pi qualquer pode estar em um de dois estados, disponível ou indisponível. Os peers disponíveis são capazes de realizar testes em outros peers e determinar corretamente o estado do peer testado. Um teste consiste em um procedimento que permite determinar se o peer está apto para participar do sistema. Um evento é definido pela mudança de estado tanto de um vértice (vazio ou ocupado) quanto de um peer (disponível/indisponível). O sistema é considerado dinâmico de forma que os peers podem entrar e sair da rede aleatoriamente, bem como os vértices e peers podem apresentar alternância de seus estados frequentemente. Um peer que passa do estado indisponível para disponível pode manter as informações que ele armazenava anteriormente, mas deve se atualizar sobre as eventuais mudanças ocorridas na configuração da rede antes de voltar à prover seus serviços. Os testes são realizados periodicamente, dentro de um intervalo de testes fixo determinado em função dos requisitos desejados para o sistema. Um teste consiste em um procedimento executado pelo peer testador sobre o peer testado. A resposta ou a falta da resposta dentro do intervalo esperado permite ao peer testador classificar o estado do peer testado entre disponível ou indisponível. Uma rodada de testes é definida como o período de tempo em que todos os peers no estado disponível executam seus testes. A latência do sistema é definida como o tempo necessário, em rodadas de testes, para que todos os peers disponíveis descubram a ocorrência de um novo evento. O grafo H(S) é usado como base para construção da rede de sobreposição, a qual é representada pelo grafo T (S). Em essência, T (S) é uma cópia de H(S) no qual, se necessário, são adicionadas arestas extras para compensar os caminhos interrompidos por vértices vazios ou peers indisponíveis. Uma aresta direcionada em T (S) do peer i para o peer j representa o enlace virtual entre estes peers. Através dos enlaces virtuais são trocadas as mensagens de testes. O grafo T (S) é gerado de forma independente por cada peer através do algoritmo DiVHA. A figura 1 ilustra um grafo T (S) para um sistema de 8 vértices ocupados. Os vértices brancos representam peers disponíveis, enquanto que os vértices em preto representam peers indisponíveis. O DiVHA utiliza H(S) e o conhecimento dos resultados dos testes compartilhados entre os peers para garantir que o maior caminho entre qualquer par de vértices em T (S) seja de no máximo log2 N arestas. A construção de T (S) pode ser dividida em duas fases. Na primeira fase T (S) recebe todas as arestas correspondentes ao hipercubo dos nodos sem falha, de forma que cada nodo sem falha fica responsável por testar seus log2 N nodos vizinhos. A ocorrência de nodos falhos pode exigir a inclusão de arestas de teste adicionais. A inclusão de um teste adicional entre um par de nodo 107 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ qualquer i e j baseia-se na distância no hipercubo entre este par de nodos bem como a atual distância dos mesmos no grafo de testes T (S). O DiVHA permite que o HyperDHT determine o estado de todos os nodos do sistema em no máximo log2 N rodadas de testes. O número máximo de testes por rodada é de N × log2 N . A latência média do algoritmo DiVHA é, em geral, menor que sua latência máxima de log2 N . Resultados experimentais indicam que a maior parte dos eventos são diagnosticados em cerca de (log2 N )/2 rodadas [L. C. E. Bona 2008]. A cada rodada de testes os peers disponíveis testam os peers adjacentes a ele em T (S), este conjunto é denotado por T(i), sendo i o índice do peer testador. Para atualizar as informações sobre o estado dos participantes do sistema, um peer i ao testar um peer pj ∈ T(i), pi recebe de pj Figura 1. Grafo T (S) para um sistema de 8 informações sobre todos os peers vértices ocupados. k com distância de pj menor ou igual a log2 N − 1. A distância é definida como sendo o menor caminho em T (S) entre um par de peers qualquer. Quando um peer pi detecta um novo evento, ele executa o algoritmo DiVHA para atualizar T(i). O valor máximo para a latência (log2 N rodadas de testes) e o valor máximo para a quantidade de testes necessários (N × log2 N por rodada de testes) são garantidos pelo algoritmo DiVHA e são formalmente provados em [L. C. E. Bona 2008]. 3.3. Particionamento do Espaço de Chaves Hash No HyperDHT as chaves são calculadas através da função criptográfica SHA-1 de 160bits, formando um conjunto de 2160 possíveis chaves. Subconjuntos deste espaço de chaves são associados aos vértices vi ∈ H(S). Cada vértice do hipercubo H(S) recebe uma faixa de chaves determinada por [i ∗ 2160−d , ..., (i + 1) ∗ 2160−d ), onde i é o índice do vértice em H(S), e d é a dimensão do hipercubo que modela o sistema HyperDHT corrente, que também corresponde à quantidade de níveis de clusters de H(S), conforme mostra a figura 2. Figura 2. Particionamento do espaço de chaves em um sistema HyperDHT. Em um sistema completo, no qual todos os vértices de H(S) estão sendo ocupados por peers, o mapeamento do espaço de chaves para cada peer pi se dá de forma direta 1 : 1, pelo índice i do vértice e do peer, ou seja, o peer pi responderia pelo espaço de chaves associado ao vértice vi . Nas configurações em que há a ocorrência de vértices vazios, o peer cujo vértice é o mais próximo do vértice vazio em H(S) fica responsável por aquele subconjunto de chaves. Este procedimento é detalhado a seguir. 108 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Para encontrar o vértice mais próximo, o HyperDHT faz uso da seguinte propriedade. Cada vértice de um hipercubo é identificado por um número binário de n bits, no qual cada bit representa uma dimensão e cada dimensão tem dois valores possíFigura 3. Identificadores binários e cálculo veis. Dados dois identificadores da distância entre vértices em um hiperde vértices, o número de bits que cubo. os diferem corresponde à menor distância entre estes vértices, e a posição do bit mais significativo que os difere determina a menor dimensão na qual estes vértices estão unidos. Para exemplificar, considere os vértices 2 (010) e 4 (100) da figura 3, eles estão separados por uma distância de dois passos, pois existem 2 bits que os diferem. Ainda neste exemplo, temos que o bit diferente mais significativo é o terceiro, logo a menor dimensão que contém ambos os vértices é d = 3. Os vértices são agrupados em clusters, sendo a quantidade de vértices de um cluster definida por sua dimensão d e determinada por uma potência de 2 (2d ). Um mesmo vértice pode pertencer à clusters progressivamente maiores. A figura 3 ilustra como esse agrupamento é realizado para um sistema de 8 vértices. A lista dos vértices de um determinado cluster é calculada pela função C(i, d), onde i é o índice de um dos vértices contidos no cluster de interesse, e d é a dimensão do cluster. A função C(i, d) pode ser definida da seguinte forma: Ci,d = i ⊕ z, ∀z ∈ Z≥0 : z ≤ 2d − 1 Neste esquema de particionamento, um peer pi responde pelo subconjunto das chaves associadas ao seu próprio vértice, somado aos subconjuntos das chaves dos vértices vazios cuja diferença do identificador binário os torna mais próximos de pi do que de qualquer outro peer, não importando o estado de pi (disponível ou indisponível). Com isso, o HyperDHT consegue realizar hash consistente, onde os eventuais remapeamentos de chaves ocorrem somente nos peers adjacentes ao peer que originou um evento e os demais peers do sistema não são afetados. O cálculo para determinar o peer 01. find_vertice_owner ( v, S ) { responsável por um dado subconjunto 02. z = 0 i = v de chaves é realizado de forma indepen- 03. 04. WHILE ( vertice i is VAZIO in S ) { dente por cada um dos participantes do 05. z++ i = v XOR z sistema. Este conhecimento é baseado 06. 07. } nas informações do estado dos vértices 08. RETURN i do sistema. O algoritmo da figura 4 09. } descreve como este cálculo é realizado. Figura 4. Pseudo-código - peer resA função find_vertice_owner reponsável pelas chaves associadas a um vértice. cebe como parâmetro de entrada um identificador v, especificando o vértice para o qual se deseja encontrar o peer responsável, baseado no estado dos vértices que compõem o sistema S. Nas linhas 2 e 3 do pseudo-código da figura 4 são inicializadas duas variáveis auxiliares, z e i. Na quarta linha, temos um laço que é executado até que seja encontrado um vértice i em S cujo estado 109 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ é ocupado. Na linha 5, z tem seu valor incrementado e este valor representa a distância entre dois vértices. O próximo vértice a ser testado pela condição do laço é calculado na linha 6, através da operação ou-exclusivo entre o identificador v e a distância z. O resultado deste algoritmo é consistente entre todos os participantes, mesmo nos momentos em que um ou mais parâmetros que descrevem o sistema estejam divergentes entre os peers devido a latência de propagação de eventos. Para exemplificar, suponha que existe apenas um peer i ocupando a posição 0 no sistema da figura 5 e os demais vértices estão vazios. Nesta condição este peer fica responsável por todos os subconjuntos de chaves dos vértices deste sistema {0, 1, 2, 3}, pois o resultado da função find_vertice_owner para cada um dos vértices é 0, conforme exibido na tabela 1. Considere que um novo peer pj entre neste sistema e, pelas regras de entrada, pj ocupa a posição 2. Nesta nova configuração o espaço de chaves é dividido entre os dois peers, onde pi fica responsável pelas chaves dos vértices {0, 1}, e pj pelas chaves dos vértices {2, 3}, conforme mostra a tabela 2. Figura 5. Divisão do espaço de chaves na entrada de um novo peer. find_vertice_owner(0, S) => 0 find_vertice_owner(1, S) => 0 find_vertice_owner(2, S) => 0 find_vertice_owner(3, S) => 0 find_vertice_owner(0, S) => 0 find_vertice_owner(1, S) => 0 find_vertice_owner(2, S) => 2 find_vertice_owner(3, S) => 2 Tabela 1. Exemplo 1 - Resultados da função find_vertice_owner. Tabela 2. Exemplo 2 - Resultados da função find_vertice_owner. A figura 6 estende o exemplo de particionamento do espaço de chaves para um sistema de 4 dimensões e 16 vértices, no qual inicialmente existem 6 peers disponíveis. Os peers estão ocupando os vértices em branco, enquanto que os vértices em preto estão vazios. Observe que neste exemplo de sistema a distribuição das chaves entre os peers não está balanceada, configurações como esta surgem devido à saída de peer de uma dada região. Entretanto, no HyperDHT isso é resolvido com a entrada de novos participantes, pois o protocolo de entrada irá posicionar os eventuais novos peers nas regiões menos povoadas. A figura também ilustra o particionamento do espaço de chaves, que está dividido em regiões e cada região contém o índice do peer responsável por aquela faixa de chaves. Note que, apesar da distribuição irregular dos peers no sistema, a distribuição do espaço de chaves é, relativamente, mais balanceada. Para finalizar a explicação, suponha que o peer 8 saiu da rede, neste caso o peer 9 irá passar a responder pelo subconjunto de chaves deixados por p8 . Considere ainda que, algum tempo depois, p9 e p10 saíram simultaneamente da rede, nesta situação o peer 110 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 15 será responsável por todas as chaves do cluster Ckd (15, 3), o qual contém os vértices [v8 , v9 , v10 , v11 , v12 , v13 , v14 , v15 ]. 3.4. Consultas em um Único Salto O HyperDHT, a fim de viabilizar que cada consulta (operação de lookup) seja resolvida em um único salto, mantém uma tabela de roteamento com referências para todos os participantes do sistema. A taxa de sucesso real de uma consulta depende da precisão desta informação. Neste trabalho denominamos o conhecimento sobre o estado de todos os participantes de um sistema distribuído como sua composição. Uma alteração na composição do sistema, que se dá Figura 6. Exemplo de particionamento do na ocorrência de qualquer evento, espaço de chaves em um sistema HyperDHT. levanta duas questões importantes. Primeiro, como um participante irá detectar o novo evento para atualizar sua visão local da composição e, segundo, como se dará a transmissão da informação sobre esta mudança para os demais peers da rede P2P, de modo que todos os participantes possam manter a informação atualizada sobre a composição e, consequentemente, realizar consultas em um único salto. A primeira questão, referente à detecção de novos eventos por peers participantes do sistema, é resolvida no HyperDHT pelos protocolos de entrada e saída de peers, e pelo resultado dos testes que cada participante realiza baseado no grafo T (S). O grafo T (S) também auxilia o HyperDHT na solução da segunda questão, pois ele determina os enlaces virtuais que cada peer deve estabelecer e utilizar para troca de mensagens sobre as alterações na composição. Para manter a visão da composição e a tabela de roteamento corretas e atualizadas, as notificações de eventos devem alcançar todos os participantes do sistema o mais rápido possível, mas sem comprometer os recursos de rede. O algoritmo DiVHA permite alcançar este objetivo, pois ele fornece a garantia de que o maior caminho que uma notificação deverá percorrer para atingir todos os peers do sistema é de log2 N saltos, onde N é a quantidade de vértices existentes no sistema. Resultados da simulação mostram que, na média, a maioria dos eventos é totalmente propagada na metade deste tempo. O processamento de uma consulta que recebe como entrada uma chave qualquer do espaço de chaves, implica em determinar corretamente qual o peer responsável pela chave. No HyperDHT as consultas são trivialmente resolvidas com base apenas no conhecimento local, o que torna possível realizar operações de put e get em apenas um único salto. O pseudo-código da figura 7 especifica como o algoritmo de lookup é executado no HyperDHT. O primeiro passo é determinar o vértice que acomoda a chave k, 111 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ calculado pela expressão da linha 2. Em seguida, na linha 3, a chamada para função find_vertice_owner retorna o identificador do peer responsável pelo vértice v. Na quarta linha, este identificador é utilizado para indexar a tabela de roteamento que contém as informações necessárias para contactar o peer i. No HyperDHT existe uma única situação onde podem 01. lookup ( k, d, S ) { 02. v = floor( k / pow( 2, 160-d ) ) ser necessários saltos adicionais 03. i = find_vertice_owner ( v, S ) RETURN address of peer i from routing table para completar as operações 04. 05. } put e get. Esta situação ocorre Figura 7. Pseudo-código - algoritmo lookup quando um lookup é realizado em do HyperDHT. uma chave cujo peer responsável tornou-se indisponível, e a notificação associada a este evento ainda está em fase de propagação. Neste caso, não é possível concluir com sucesso a operação e, com base nesta resposta, o participante que gerou a consulta atualiza sua visão da composição do sistema e determina o peer que passou a responder por aquela chave, sem precisar esperar pela notificação que ainda está sendo disseminada. 4. Resultados Experimentais Nesta seção são apresentados os resultados obtidos das simulações conduzidas com o sistema HyperDHT. A implementação foi realizada em linguagem de programação C e as simulações foram executadas utilizando a biblioteca de simulação de eventos discretos SMPL (Simple Portable Simulation Language) [MacDougall 1987]. A primeira série teve como objetivo mensurar a latência para propagação de eventos e o uso dos recursos de rede para manutenção do sistema HyperDHT. O sistema simulado teve seu tamanho progressivamente aumentado, sendo que a carga de eventos foi mantida equivalente em relação ao tamanho do sistema. Foram simulados sistemas de 1 até 9 dimensões, o que corresponde a tamanhos de rede de 2 até 512 vértices. Todos os vértices foram iniciados em estado ocupado e com o respectivo peer em estado disponível. Durante a simulação, a produção de um novo evento foi condicionada à inexistência de eventos em fase de propagação, ou seja, um novo evento é criado apenas quando o evento anterior é completamente propagado. Os vértices geradores de eventos são escolhidos de forma randômica, da mesma maneira que o evento, entre os quatro tipos possíveis, é escolhido aleatoriamente. No caso do vértice sorteado não suportar o evento escolhido, como por exemplo um evento de indisponibilidade em um vértice vazio, um novo sorteio é realizado até que se encontre uma combinação possível. A latência para disseminação de um evento foi mensurada pelo número de rodadas de testes necessários para que todos os peers em estado disponível fossem notificados sobre a ocorrência do evento. A sumarização dos dados coletados é exposta na figura 8. A curva com pontos representa a latência média, em rodadas de testes, para cada tamanho de sistema simulado. A área mais escura ao redor desta curva corresponde ao intervalo de confiança de 95%, e as barras verticais mostram as latências máxima e mínima registradas. 112 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 9 8 7 Latência (em rodadas de testes) O resultado da simulação demonstra que, na média, os eventos são completamente disseminados em um número de rodadas de testes equivalente à metade da latência máxima teórica (log2 N ). O intervalo de confiança mostra que a distribuição das latências está 95% concentrada próxima ao valor médio. Os valores máximos e mínimos registrados estão dentro do limite teórico especificado pelo algoritmo DiVHA. 6 5 ● ● 4 ● ● 3 ● 2 ● ● ● ● 1 Para avaliar o custo de 1 2 3 4 5 6 7 8 9 manutenção do HyperDHT tamTamanho do Sistema (em dimensões d , onde N = 2 ) bém foram computados, durante Figura 8. Latência média com intervalo de a primeira série de simulações, a confiança de 95%. quantidade de mensagens e o volume de dados trocados entre os peers. O volume total de dados inclui o overhead decorrente dos cabeçalhos da pilha de protocolo TCP/IP. d 0.5 0.4 0.3 0.2 0.1 ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● Uso médio da banda de rede por peer (em Kbps) O consumo médio dos recursos de rede por peer é exibido na figura 9. Os valores aferidos são relativamente inexpressivos se comparados com a disponibilidade de banda atualmente disponível. Com intervalo de testes de 30 segundos seria possível, inclusive, fazer uso de tecnologias mais antigas como os modens dial-up para conexão de peers em uma rede HyperDHT. Ou, quando a banda de rede é abundante, pode-se considerar o uso de intervalos de testes menores para redução da latência e, consequentemente, minimizar os casos onde saltos extras em consultas são necessários. 0.0 1 16 32 64 128 256 512 Tamanho do Sistema (em quantidade de peers) Figura 9. Uso médio dos recursos de rede por peer. Por fim, cabe salientar que os resultados do consumo dos recursos de rede da D1HT e OneHop DHT são originalmente apresentados em outra métrica ou não consideram o overhead, impossibilitando a comparação com os resultados obtidos pelo HyperDHT. A segunda série de simulações teve como objetivo principal verificar o impacto de 113 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ diferentes cargas de eventos (churn) na taxa de sucesso das operações get em um único salto. O sistema simulado teve dimensão d = 8 de 256 vértices, onde cada vértice foi inicializado em estado ocupado com seus respectivos peers em estado disponível. No primeiro instante da simulação foram introduzidos, através de operações put, valores pré-determinados na DHT, os quais posteriormente eram utilizados para testar o sucesso das operações get em um único salto. Os gets foram realizados ao final de cada rodada de testes, para tanto os peers sorteavam uma chave entre as previamente introduzidas. O fator de replicação foi de k = 9, ou seja, existiam no mínimo 10 cópias de um dado valor em peers distintos. Somente após a fase de inserção e replicação dos valores é que se iniciou a geração de eventos. O vértice e o tipo do evento, como na primeira série, foram escolhidos de forma aleatória, mas sem a condição que impedia eventos simultâneos. O sistema também não podia ter sua dimensão alterada, o que implicou ignorar entradas de novos peers no caso de todos os vértices estarem em estado ocupado. No caso da ocorrência de um evento de saída de um peer, o simulador também deveria escolher entre os dois tipos de saída possíveis: (1) seguindo o protocolo de saída, ou (2) saída imediata, sem comunicar os vizinhos. Para este fim, foi determinado que a chance do peer sair de forma imediata é de 33%. Caso contrário, o peer permanece na rede por d rodadas de testes, honrando o protocolo de saída para garantir a disponibilidade dos valores em um único salto. Para uma dada configuração de sistema, foram simuladas 3 cargas diferentes de eventos, onde a carga de eventos 1 indica que o simulador manteve apenas 1 evento concorrente por vez. Na carga de eventos 2 eram mantidos 2 eventos concorrentes durante a simulação e, da mesma forma, a carga de eventos 3 corresponde a 3 eventos concorrentes. Além disso, também foram simulados sistemas com diferentes intervalos de testes (30, 20 e 10 segundos), para verificação do efeito deste parâmetro no consumo dos recursos de rede. O resultado desta série é composto pelos dados obtidos em 9 simulações distintas. O gráfico da figura 10 sumariza, com foco na ocorrência de gets em múltiplos saltos, os resultados da segunda série de simulações. O valor das barras representa a porcentagem desta Intervalo de testes (em seguntos) 10 20 30 0.0471 Ocorrência de get s com multiplos saltos (em porcentagem) Durante a simulação foram registradas a quantidade de gets respondidos em um único salto, bem como os gets que necessitaram de saltos extras para obtenção da resposta. A quantidade de gets realizados por simulação depende do intervalo de testes simulados, sendo que a menor quantidade de gets registrado em uma simulação foi de 29.130, e a maior foi de 67.496. 0.0353 0.0337 0.0295 0.0263 0.0231 0.0184 0.0121 0.0041 1 2 3 1 2 3 1 2 3 Ocorrência de Eventos (ch urn) Figura 10. Impacto do Churn na taxa de sucesso de gets em salto único. 114 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ ocorrência em relação à quantidade total de gets. Os resultados são apresentados em função da carga de eventos e estão agrupados pelos respectivos intervalos de testes. A configuração que apresentou a maior ocorrência de gets em múltiplos saltos (0.0471%) foi o sistema com intervalo de testes de 30 segundos e carga de eventos 3. Este resultado condiz com o que era esperado, pois quanto maior o intervalo entre os testes, potencialmente maior será o tempo para detecção de um evento e para sua propagação. Outro fator que tem influência na taxa de sucesso de gets de salto único é a dimensão do sistema pois, quanto maior a dimensão, potencialmente maior será o número de rodadas de testes necessário para a propagação de um evento. Em ambos os casos, maior será a probabilidade de incidência de gets em uma chave relacionada a um peer cujo evento de indisponibilidade está em fase de disseminação. A quantidade de gets de múltiplos saltos registrada foi inexpressiva em relação à ocorrência total de gets, não impactando no funcionamento geral dos sistemas simulados. A D1HT e a OneHop DHT não apresentam um estudo relativo a este parâmetro, impossibilitando uma comparação. De qualquer forma, se considerarmos que as três DHTs têm, no pior caso, tempo de disseminação logarítmico em função do tamanho do sistema, o HyperDHT é o único que apresenta, nos protocolos de entrada e saída, mecanismos para aumentar a disponibilidade dos valores em um único salto. Isso é possível no HyperDHT pois o DiVHA garante a latência máxima. O mesmo não ocorre na D1HT e na OneHop DHT, onde a latência máxima, em certas circunstâncias, pode ser maior que o log2 de N . 5. Conclusões O HyperDHT foi apresentado como uma DHT de salto único que utiliza o algoritmo DiVHA para a construção e manutenção da rede de sobreposição, herdando os procedimentos de diagnóstico distribuído, bem como o limite máximo para latência. Um dos pontos de destaque do HyperDHT, em comparação com outras DHTs de salto único, é a incorporação de mecanismos no protocolo de entrada, para posicionar deterministicamente um novo participante no local da rede onde ele é mais necessário. Em geral, as demais DHTs deixam o problema do posicionamento de um novo participante por conta da função hash, acreditando que o efeito avalanche irá fazer uma distribuição razoavelmente homogênea. Este trabalho apresenta os protocolos e algoritmos necessários para construção de uma DHT de salto único: o particionamento, o mapeamento consistente, o balanceamento das chaves hash, a especificação dos protocolos de entrada e saída de participantes e, os mecanismos para posicionamento e busca dos pares chave/valor. Além disso, também são especificados mecanismos para replicação dos pares chave/valor a fim de evitar a falha de consultas. Foram apresentados resultados experimentais para latência requerida em diversos tamanhos de sistemas e para a influência de diferentes cargas de churn na taxa de sucesso das operações get. Os trabalhos futuros serão iniciados portando-se o código implementado no simulador para a execução de experimentos em um ambiente mais próximo do modelo real, como o PlanetLab. Outro ponto que poderá ser considerado em trabalhos futuros, é a análise dos efeitos que peers maliciosos podem causar na rede HyperDHT, e as possíveis contra-medidas que podem ser tomadas para proteger o sistema durante este tipo de ataque. 115 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Referências A. Gupta, B. L. and Rodrigues, R. (2004). Efficient routing for peer-to-peer overlays. Proceedings of the Symposium on Networked Systems Design and Implementation (NSDI). Androutsellis-Theotokis, S. and Spinellis, D. (2004). A survey of peer-to-peer content distribution technologies. ACM Computing Surveys. B. Y. Zhao, J. Kubiatowicz, A. and Joseph (2001). Tapestry: An infrastructure for faulttolerant wide-area location and routing. Tech. Rep., University of California at Berkeley, Computer Science Department. C. Zhuo, F. Gang, Z. Y. and Yi, L. (2012). Sdht: Efficient one- hop dht lookup framework for p2p live streaming. China Communications, 9(8):88–104. D. Karger, E. Lehman, T. L. R. P. M. L. and Lewin, D. (1997). Proceedings of the twentyninth annual acm symposium on theory of computing. ACM Press New York, NY, USA. D. Malkhi, M. N. and Ratajczak, D. (2002). Viceroy: A scalable and dynamic emulation of the butterfly. In Proceedings of the 21st ACM Symposium on Principles of Distributed Computing (PODC). E. K. Lua, J. Crowcroft, M. P. R. S. and Lim, S. (2005). A survey and comparison of peer-to-peer overlay network schemes. IEEE Communications Surveys & Tutorials. Fraigniaud, P. and Gauron, P. (2003). The content-addressable network d2b. Technical Report LRI-1349, Universie de Paris Sud. I. Stoica, R. Morris, D. K. M. K. and Balakrishnan, H. (2001). Chord: A scalable peerto-peer lookup service for internet applications. Proceedings of SIGCOMM’01, San Diego, CA, USA. J. Risson, A. H. and Moors, T. (2006). Stable high-capacity one-hop distributed hash tables. Proceedings of the 11th IEEE Symposium on Computers and Communications (ISCC’06). Kaashoek, M. and Karger, D. (2003). Koorde: A simple degree-optimal distributed hash table. In Proceedings of IPTPS. L. C. E. Bona, E. P. Duarte Jr., e. a. (2008). Hyperbone: A scalable overlay network based on a virtual hypercube. The 8th International Symposium on Cluster Computing and the Grid (CCGRID 2008). MacDougall, M. H. (1987). Simulating computer systems: Techniques and tools. The MIT Press, Cambridge, MA. Monnerat, L. R. and Amorim, C. L. (2006). D1ht: A distributed one hop hash table. Technical Report ES-705/06, COPPE/UFRJ. P. Fonseca, R. Rodrigues, A. G. and Liskov., B. (2009). Full information lookups for peer-to-peer overlays. IEEE Transactions on Parallel and Distributed Systems. Rowstron, A. and Druschel, P. (2001). Pastry: Scalable, decentralized object location and routing for large-scale peer-to-peer systems. IFIP/ACM International Conference on Distributed Systems Platforms (Middleware), Heidelberg, Germany. S. Ratnasamy, P. Francis, M. H. R. K. and Shenker, S. (2001). A scalable contentaddressable network. ACM SIGCOMM, San Diego, CA, USA. 116 32º Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos Florianópolis - SC IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo (Wp2p+) Sessão Técnica 4 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Towards the Application of WebRTC Peer-to-Peer to Scale Live Video Streaming over the Internet Flávio Ribeiro Nogueira Barbosa1, Luiz Fernando Gomes Soares2 1 WebMedia – Globo.com Rio de Janeiro – RJ – Brazil 2 Department of Informatics – PUC-Rio Rio de Janeiro – RJ – Brazil [email protected], [email protected] Abstract. Given the growth on the number of Internet users and the quality of their connections, building large Internet live broadcasts has become increasingly challenging. This paper introduces the use of WebRTC peer-to-peer technology to analyze a hybrid CDN-P2P structure in order to decrease the number of requests to CDN servers, reducing the cost of transmission and enhancing system’s scalability. 1. Introduction Following audience growth on the Internet and the users’ inherent preference for multimedia over text-based content consumption, it is widely believed that video distribution will dominate the traffic over the Internet. Despite the audience records and the desire of large broadcast companies to increase the amount of online broadcasts, challenges related to scalability, economic costs and the quality of consumer’s experience of these transmissions are still an open issue. Assuming that the absolute majority of the audience watches online videos using web browsers, this paper makes use of WebRTC peer-to-peer technology to propose a simple hybrid P2P-CDN model that tries to relieve the amount of requests to video chunks on content servers, reducing transmission cost and taking advantage of peer-to-peer distributed computing to improve user experience and system scalability. 2. Motivation The last big events broadcasted worldwide have received a huge number of online viewers and this phenomenon is expected to continue in the coming years. As examples, Red Bull Stratos 2012 was broadcasted by Google’s YouTube Live Streaming platform and attracted more than 8 million concurrent users [Katz 2012]. FIFA’s Confederations Cup 2013 was broadcasted only to Brazilian residents by Globo.com and reached almost half a million users at its peak. Not only audience is growing but also the quality of videos produced. As users get better connections, they become more demanding, and content producers are trying to meet their expectations. Sochi 2014 Winter Olympics was streamed in Brazil in High Definition (at 720p), with 3.5Mbps as its maximum bitrate. Netflix is expecting to be delivering 4K videos within a year or two [Sandoval 2013]. Analyzing the prediction of transmission quality of FIFA’s next World Cup and comparing it with the last two World Cup online broadcasts, we can observe an exponential growth in the quality of videos delivered (Figure 1). The high desire to consume high-quality video brings several technical challenges. Usually, big companies that broadcast videos to hundreds of thousands, or even millions of people, use Content Delivery Networks (CDN’s) in order to meet all the audience’s demand. 119 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Figure 1. Maximum Delivered Video Bitrate by Globo.com at FIFA World Cup The main purpose of a CDN is to distribute contents over a set of agglomerated web servers highly distributed around the world (also known as Points of Presence or just PoP’s), so as to guarantee a reliable, scalable and efficient delivery of the contents to end users [Bronzino et al 2012]. However, this approach has some downsides: Scalability. CDN’s serve users through PoP’s. When someone is far from the PoP, he depends on some communication links to reach the requested content. This way, CDN’s scale adding PoP’s wherever they can. In countries with poor telecommunications and slow Internet exchange points (IXP), the necessity for more PoP’s is greater and this problem is further aggravated. Cost. CDN providers are, in fact, expensive. According to [Spangler 2009], Google YouTube would spend 1 million dollars per day on bandwidth accounts in 2009. Quality of Experience. It was noticed that last large online transmissions based entirely on CDN’s had several network issues, and audience’s experience was severely degraded [Zimmerman 2014] [Nordyke 2014]. CDN-based approaches have shown that the crucial dependency of certain PoP’s makes the system relatively fragile, and the overload of one PoP can lead to a domino effect. 3. Background Before explaining the proposed model and our implementation, an introduction regarding the techniques and protocols used in this study is required. 3.1 Current Video Distribution Techniques Since the beginning of multimedia online broadcasts, stateful protocols such as Real-Time Transport Protocol (RTP) and Real-Time Messaging Protocol (RTMP) were preferred instead of stateless ones. These protocols have the capability of maintaining one connection between server and client while sending streams of video, audio and data packages [Parmar and Thornburgh 2012]. The mentioned protocols require specialized media servers to generate the streaming and handle users’ connection. They are mostly implemented on top of User Datagram Protocol (UDP) [Yuste and Melvin 2012], and several network providers, and even some firewalls, block or penalize UDP traffic. These limitations gave space to the creation of some stateless HTTP-based streaming protocols on top of TCP, like Microsoft Smooth Streaming, Adobe HTTP Dynamic Streaming (HDS), Apple HTTP Live Streaming (HLS) and MPEG DASH. HTTP is the foundation of data communication for the World Wide Web (WWW), which eliminates the issues related to traffic penalization. All the content is served by ordinary web servers like Apache HTTP Server or Nginx and favors the use of CDN’s. The downside of HTTP-based protocols is the 120 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ insertion of delay, since the act of slice the video and playlist creation or update can take a few seconds. This work focuses on HTTP Live Streaming that was developed by Apple and documented as an Internet Draft, the first stage in the process of submitting it to the IETF as an Informational Request for Comments (RFC). 3.2 WebRTC Since October 2011, The World Wide Web Consortium (W3C) is developing a Working Draft to add Real-Time Communications (WebRTC) capabilities between web browsers [Berkvist et al 2011]. These capabilities include the direct sharing of video, audio and data. Although being a draft, WebRTC capabilities are already integrated in 2 of the 3 most used browsers in Brazil (Google Chrome and Mozilla Firefox) and at the time this document is being written, almost 73% of the users who visit Globo.com already have WebRTC in their browsers. Before WebRTC Working Draft, direct communication between browsers was possible only with third-party plugin software and significant proprietary server infrastructure [Naylor 2013]. 3.3 Peer-to-Peer Peer-to-Peer (P2P) is a distributed network architecture in which nodes share a part of their resources to contribute to the service and content offered by the network. With the advent of WebRTC on browsers, P2P is presented as a promising technique for the scalability problem in video streaming over the Internet. 4. Proposed Solution Using the browsers’ ability to connect to others through WebRTC, we propose a hybrid peerto-peer network to assist video chunks delivery. The proposal is called hybrid due to the fact that one node can exchange messages and request chunks to other peers or request it directly to the CDN. CDN-P2P models are widely studied [Huang et al 2008] [Bronzino et al 2012] and the application of these models in our scenario can provide many benefits. An inherent characteristic of P2P services is that network performance does not deteriorate (and usually improve) as network size increases and when resource relevance is high, cooperation in a P2P solution evolves naturally [Roussopolous et al 2004]. This way, huge broadcasts can take advantage of peer’s upload bandwidth to exchange video chunks. Peer-assisted data sharing can decrease the upload bandwidth of content servers up to about 96% [Cho et al 2010], decreasing the cost of transmission and reducing bottlenecks, resulting on the improvement of the audience’s experience. The implementation of this approach was released under Apache 2.0 License and can be obtained in http://github.com/flavioribeiro/bemtv. 4.1 Peer entrance and Signaling In our work, we use ISP-location and Geolocation Awareness concepts [Kovacevic 2009] to build clusters of nodes that can exchange messages between then. These clusters are called peer swarms. When a node wants to watch a live streaming, it first reaches a URL that will estimate peer’s location and Internet provider, returning a swarm name for the node to connect to their common. The act of connecting to their common is basically to announce the node and swarm name, captured on the earlier step, to a central signaling server, which will propagate the announcement to all nodes in the swarm. Every node that receives the announce will try to connect directly to the node throughout STUN servers [Rosenberg et al 2008] and, if it 121 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ succeeds, both earn a directly peer-to-peer channel communication (WebRTC Data Channel). Nodes store all communication channels in a hash table to use for chunk negotiation on next steps. 4.1 Video Chunks Exchange Protocol In this section we describe a protocol used to exchange chunks between peers on the same swarm. As in every HTTP-Based Streaming Protocol, when the user presses play, the video player requests a playlist from the CDN. On HLS, when a playlist doesn’t have the EXT-XENDLIST tag at playlist’s end, it means that it is a live streaming and the player will need to hit the same playlist periodically looking for new video chunks. After the player has received and parsed the playlist, it starts to request video chunks. Instead of the common HTTP request for the chunk from the CDN, the node sends a DESIRE to every node of the peer swarm and each node that receives the DESIRE searches for the chunk in its cache. Our implementation stores the last 10 chunks watched, and if the chunk requested is cached, the node sends back a DESACK. The desiring peer looks for the best node from the pool of nodes that sent DESACK and sends a REQ to the chosen one. Every peer that receives a REQ is ensured by the previous step that the chunk is in its cache and then it sends an OFFER with the chunk to the desiring peer. When the desiring peer sends the DESIRE to swarm, it waits for a timeout of 0.7 seconds and if nobody answers, it requests directly to the CDN using the traditional serverclient HTTP schema. The same occurs if the node chosen to send the chunk takes more than 1 second to send the file itself. On Figure 2, Peer A presents the desiring peer. Figure 2. Chunks Exchange Protocol 4.2 Early Experiments We submitted a live stream to the model proposed in this paper looking for the reduction in the number of requests to the CDN. We used a total of ten Apple MacBook White with 2 CPU cores and 2GB SDRAM running a Mozilla Firefox 27.1 browser, fully compatible with WebRTC’s last draft specification, and Apple Safari 6.0.5 Browser which is capable of playing HLS streams natively. All computers were in the same wireless 10/100 Mbps hotspot, which means that they were in the same geolocation and Internet provider and, consequently, peers in the same swarm. The streaming was split in chunks with 5 seconds of duration and 600Kbps of bitrate quality using HTTP Live Streaming Protocol. The CDN was represented by one server with 1 logical core and 512MB of SDRAM. Swarm name discoverer and signaling server were also running on this instance. 122 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ All computers were subjected to one hour of streaming consumption using the native Apple Safari player and then compared with one hour of streaming using the player implementation described on this paper. 4.2.1 Results The results have shown that the native player made 7457 requests to the CDN while our player made 4482. Since none of the players had playback issues, it suggests that 2975 chunks were exchanged throughout P2P, meaning a reduction of 39.89% on the total of direct requests to the CDN. Figure 3. Number of Requests using CDN-only and CDN-P2P 5. Conclusion Based on the experiment described and aware that web browsers are evolving, we can assume that the application of WebRTC in a CDN-P2P architecture to support HTTP-based live streams are quite promising. We believe that improvements on the data exchange protocol can increase much more the percentage of chunks trade around peers, reducing the cost of transmissions, increasing the scalability of the system and enabling a better experience for the consumer. 5.1 Future Work A lot of challenges still remain. The proposed protocol demonstrated to be quite unstable, as shown by the fluctuation of requests per minute in Figure 3. This section describes some improvements that need to be applied to the protocol in order to be considered a truly robust and production-ready system. Peers Convergence and Over swarming. The approach used on this paper has shown effective for a small amount of peers. However, build swarms to support all users on a given Geolocation and ISP can accumulate hundreds or even thousands of users leading to an excessive exchange of DESIRE and DESACK messages. The use of reputation [Xiong and Liu 2004], partnership [Li et al 2008] or leader election [Kutten 2013] should be investigated. Video Chunks Exchange Protocol. With the improvement on swarm formations, we believe that the proposed protocol’s stability should be improved and the number of chunks transferred over the P2P overlay should increase. However, researches regarding the ideal chunk size, video bitrate and node’s cache size are required. The protocol must also ensure that chunks negotiation and transfer cannot interfere in the user experience. All these scenarios must be explored. Content Security. The protocol described in this paper does not guarantee that the content exchanged between peers is indeed the same as in the CDN. Algorithms that detect poisoned chunks and DoS starvation such [Medina-López et al 2013] needs to be applied. 123 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ References Berkvist, A., Burnett, D., Jennings, C. Narayanan, A. (2011) “WebRTC 1.0: Real-Time Communication Between Browsers”. Working Draft. Bronzino, F. Gaeta, R. Grangetto, M. Pau, G. (2012) “An Adaptive Hybrid CDN/P2P Solution for Content Delivery Networks”. VCIP, page 1-6, IEEE. Cho, S., Cho, J., Shin, S. (2010) “Playback Latency Reduction for Internet Live Video Services in CDN-P2P Hybrid Architecture”. 2013 IEEE International Conference on Communications. Huang, C., Wang, A., Li, J., Ross, K. (2008) “Understanding hybrid CDN-P2P: why limelight needs its own Red Swoosh”. Proceedings of the 18th International Workshop on Network and Operating Systems Support for Digital Audio and Video. Katz, T. (2012) “Mission Complete: Red Bull Stratos lands safely back on Earth”. http://goo.gl/bX31hl, accessed in March 2014. Kovacevic, A., Graffi, K., Pussep, K., Steinmetz, R. (2009) “Underlay awareness in P2P systems: Techniques and challenges”. IEEE Symposium on Parallel & Distributed Processing. Kutten, S., Panduragan, G., Peleg, D., Robinson, P., Trehan, A. (2013) “On the complexity of universal leader election”. Proceedings of the ACM symposium on Principles of distributed computing. Li, B., Xie, S., Qu, Y., Keung, G.Y. (2008) “Inside the New CoolStreaming: Principles, Measurements and Performance Implications”. IEEE 27th Conference on Computer Communications. Medina-López, C., Naranjo, J.A.M., García-Ortiz, J. P., Casado, L. G., González-Ruiz, V. (2013) “Execution of the P2PSP protocol in parallel environments”. XXIV Jornadas de Paralelismo. Madrid, Spain. Naylor, A. (2013) “WebRTC is almost here, http://goo.gl/IgxF33, accessed in March 2014. and it will change the web”. Nordyke, K, (2014) “HBO Go Crashes During ‘True Detective’ Finale”. http://goo.gl/zixUr7, accessed in March 2014. Parmar, H. and Thornburg, M. (2012) “Adobe’s Real Time Messaging Protocol”. http://goo.gl/cGMWPI, accessed in March 2014. Rosenberg. J, Mahy, R., Matthews, P. Wing, D. (2008) “Session Traversal Utilities for NAT (STUN)”. IEFT Proposed Standard. Roussopolous, M., Baker, M., Rosenthal D. S. H., Giuli T. J., Maniatis, P., Mogul, P. (2004) “2 P2P or Not 2 P2P?”. Third International Workshop, IPTPS 2004. Sandoval, G. (2013) “. Netflix Chief Product Officer: expect 4k Streaming within a year or two”. http://goo.gl/F4S133, accessed in March 2014. Spangler, T. (2009) “YouTube May Lose http://goo.gl/oNgAzY, accessed in March 2014. $470 Million in 2009: Analysts”. Xiong, L. and Liu, L. (2004) “PeerTrust: Supporting Reputation-Based Trust for Peer-to-Peer Electronic Communities”. IEEE Transactions on Knowledge and Data Engineering. Yuste, L. and Melvin, H. (2012) “A Protocol Review for IPTV and WebTV Multimedia Delivery Systems”. Scientific Letters of the University of Zilina, vol 14. Zimmerman, A., (2014) “ABC Promised to Livestream the Oscars and Totally Failed”. http://goo.gl/sTNb7d, accessed in March 2014. 124 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ S4Q: Um Algoritmo para Seleção de Vizinhos Baseada em QoE para Sistemas P2P de Transmissão de Vídeo Peron Rezende de Sousa1 , Sidney Cunha de Lucena2 , Morganna Carmem Diniz2 , Antonio Augusto de Aragão Rocha1 , Daniel Sadoc Menasché3 1 Instituto de Computação Universidade Federal Fluminense (UFF) 2 Centro de Ciências Exatas e Tecnológicas Universidade Federal do Estado do Rio de Janeiro (UNIRIO) 3 Departamento de Ciência da Computação Universidade Federal do Rio de Janeiro (UFRJ) {sidney, morganna}@uniriotec.br, {prezende, arocha}@ic.uff.br, [email protected] Abstract. Much research has been conducted in order to provide certain levels of QoS to P2P networks, for they represent a scalable and cost-effective alternative. Among these studies met the challenge of selecting peers. In this work we present a new algorithm in this area. It makes decisions with the aid of a new QoE metric, called “stress level” and also presented here. Despite the new metric has not yet been validated with users, it was possible to apply it and get positive results. Our proposal comes to have, at least, 19% fewer pieces of video absences at the time of reproduction other algorithms of the state of the art and a more rapid decrease in “stress level” 32%. Resumo. Muitas pesquisas tem sido realizadas com o intuito de prover certos níveis de QoS as redes P2P, por elas representarem uma alternativa escalável e de baixo custo. Entre esses estudos encontramos o desafio da seleção de pares. Neste trabalho apresentamos um novo algoritmo nessa área. Ele toma suas decisões com o auxílio de uma nova métrica em QoE, denominada “nível de estresse” e também apresentada aqui. Apesar da nova métrica ainda não ter sido validada com usuários, já foi possível aplicá-la e obter resultados positivos. Nossa proposta chega a ter, pelo menos, 19% menos ausências de pedaços de vídeo no momento da reprodução que outros algoritmos do estado da arte e uma redução no “nível de estresse” 32% mais rápida. 1. Introdução As aplicaccões de distribuição de vídeo, sem dúvida, estão entre as de maior sucesso na Internet atual. Além dos sistemas Par-a-Par (Peer-to-Peer - P2P), existem outras soluções para fornecimento de vídeo, como o modelo cliente-servidor, o multicast e as redes de distribuição de conteúdo (Content Delivery Network - CDN). Porém, nenhum desses modelos se compara ao P2P em custo e escalabilidade. Assim como as demais soluções, o P2P nem sempre consegue oferecer determinados níveis de qualidade de serviço (Quality of Service - QoS). A transmissão de vídeo requer uma grande largura de banda passante e é sensível ao atraso, jitter e perda de pacotes. Garantir valores adequados a esses indicadores de QoS e escalabilidade são grandes 125 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ desafios para qualquer arquitetura que venha ser empregada [Moraes et al. 2008]. Quando se fala de sistemas P2P para transmissão de vídeo, um mecanismo exerce um papel fundamental na eficiência do seu funcionamento: a seleção de vizinhos dos pares da rede. Selecionar estrategicamente os melhores pares pode ser essencial para se alcançar o nível de QoS requerido pela aplicação. Diferentes mecanismos já foram propostos na literatura com o objetivo de tornar mais eficiênte a seleção de pares [Xie et al. 2008, Choffnes and Bustamante 2008, Polaczyk and Cholda 2010]. No entanto, até o limite do nosso conhecimento, não foram encontradas na literatura propostas para seleção de pares que façam uso de métricas explícitamente associadas à qualidade da experiência do usuário (Quality of Experience - QoE). Podemos encontrar uma idéia semelhante em [Ghareeb, Ksentini e Viho 2011], onde o sistema se baseia em avaliações de QoE para ajustar a transmissão de fluxos de vídeo SVC sobre vários caminhos. O método seleciona dinamicamente os melhores caminhos na sobreposição usando as estimativas de largura de banda disponível. A manutenção dos caminhos selecionados é, então, feita automaticamente com base no feedback da qualidade como ela é percebida pelo usuário final. Para avaliar a QoE no destinatário, os autores usaram um módulo compatível com SVC e uma ferramenta híbrida para Avaliação da Qualidade Pseudo-Subjetiva (Pseudo Subjective Quality Assessment - PSQA). Outro parecido é o de [Rosário et al 2013] que molda o roteamento de uma rede wireless por meio de QoE. Nossa implementação, intitulada Seleção por Qualidade (S4Q), verifica em cada participante de uma rede BitTorrent (um tipo de implementação P2P), com quais outros participantes foi mantida uma comunicação contínua ao longo do tempo, formando com isso o que será conhecido ao longo deste texto como Lista de Pares Estáveis (LPE). Dessa forma cada par da rede poderá ter uma LPE e cada uma delas pode ser útil aos outros pares se partirmos do pressuposto que, caso os integrantes da LPE de determinado par estejam tendo uma boa “experiência” com suas respectivas LPEs, existe uma chance desse par também ter caso ele utilize a LPE dos integrantes de sua LPE. Logo, mecanismos de seleção de pares podem tirar proveito dessa informação. Restava apenas saber como definir a qualidade da “experiência” e atribuir essa impressão as LPEs. Com esse propósito desenvolvemos uma nova metodologia, denominada Avaliação Áurea de Qualidade (A2 Q). Nossa metodologia produz uma métrica em QoE, que está relacionada a ausência de pedaços do vídeo no momento da reprodução, cujo resultado denominamos “nível de estresse”. Com isso o QoE obtido é atribuído à LPE. Ao promover a troca de LPEs com boa QoE esperamos realizar transmissões mais rápidas e com mínimo de interrupções. A eficiência da nossa implementação é comparada com o BitTorrent tradicional e com outros três algoritmos do estado da arte (Ono, P4P e Yukka). Os resultados mostram que nossa proposta chega a ter, pelo menos, 19% menos ausências de pedaços de vídeo no momento da reprodução que os outros algoritmos e uma redução no “nível de estresse” 32% mais rápida. Com a vantagem do S4Q não depender de informações obtidas de fontes externas à rede P2P. Este trabalho possui a seguinte organização: a Seção 2 discute os termos e as teorias que formam a base dessa pesquisa; a Seção 3 explica a nova métrica e o processo de escolha dos pares; a Seção 4 descreve o ambiente de experimentação, apresenta os resultados e uma análise dos mesmos; por último, a Seção 5 descreve as conclusões. 126 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 2. Fundamentação Teórica O BitTorrent é um protocolo P2P, criado por Bram Cohen, que tem o objetivo de favorecer o compartilhamento de conteúdo entre os usuários (peers), que fazem parte de um grupo (swarm). Esses usuários são qualificados em fornecedor do conteúdo (seeder), possuidor da lista de participates (tracker) e interessados pelo material (leecher) [Moraes et al. 2008]. Na distribuição, o arquivo (ou bundle de arquivos) que será compartilhado é dividido em pedaços (chunks), de normalmente 512 KBytes. Para cada um deles é calculado um código hash (SHA1) de 20 bytes correspondente ao seu conteúdo, esse código serve para verificar a integridade do pedaço, após seu recebimento. A sequência de códigos hash e o endereço do tracker são informações obtidas no arquivo de metadados (.torrent). Com essas informações um leecher pode entrar em um swarm. Ao entrar em um swarm, o leecher solicita um pedaço escolhido aleatóriamente (modo Random First Piece). Depois de receber esse pedaço ele passa a solicitar o mais raro (modo Rarest First). Por último, quando todos os pedaços já foram solicitados, o leecher dispara requisições do que falta a todos os outros peers (modo Endgame). Repare que seguindo a estratégia acima os pedaços tendem a chegar de forma desordenada, prejudicando o interesse de quem tem a intenção de assistir um vídeo com BitTorrent durante o download. No decorrer deste trabalho vamos nos refererir a essa estratégia como Algoritmo de Seleção Aleatória de Pedaços (ASAP). Não demorou muito para surgir propostas à requisição ordenada de pedaços. Essa idéia consegue melhorar a reprodução de um vídeo durante sua transmissão, mas provoca uma maior latência e outros tipos de problemas. Neste trabalho vamos nos referir a essa estratégia como Algoritmo de Seleção Sequencial de Pedaços (ASSP). Sobre o modelo tradicional de seleção de pares do BitTorrent, podemos dizer que ele não utiliza uma central de alocação de recursos, isto é, cada par é responsável pela maximização do seu download e escolha dos pares para os quais realizará upload seguindo a estratégia tit-for-tat. Nessa estratégia os pares não colaborativos são “afogados” (choke), ou seja, deixam de receber upload. De tempos em tempos um par afogado é escolhido aleatoriamente para voltar a receber dados. Entre as diversas implementações do BitTorrent escolhemos para este trabalho o Vuze (atual Azureus), por ser open source, multiplataforma, por aceitar acréscimos de funcionalidades por meio de PlugIns, por ter sido a escolha dos outros algoritmos aqui avaliados e por possuir uma versão chamada Vuze Play Now, que permite a visualização de um vídeo durante seu download. 2.1. Algoritmos para Seleção de Pares Nesta seção apresentamos 3 algoritmos de seleção de pares propostos na literatura. Iremos comparar nossa proposta contra estas 3 outras soluções e com o método tradicional do BitTorrent. Entre as soluções com os melhores resultados e mais referenciadas, sobre o desafio da seleção de pares, está o P4P, que usa dados fornecidos pelos ISPs (Internet Service Providers) sobre suas redes para identificar pares melhores. Nem todos os ISPs têm 127 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ suporte para P4P, portanto seu uso nem sempre representa vantagens atualmente, mas quando existe esse suporte ocorre uma melhora no desempenho para o usuário final e também há uma redução no tráfego entre ISPs, o que representa um custo menor para os provedores [Xie et al. 2008]. Também encontramos o Ono entre as mais difundidas. Sua estratégia é fazer uso de informações sobre o redirecionamento das CDNs para identificar colegas próximos e potencialmente acelerar downloads, além de reduzir o trafégo entre ISPs. Segundo [Choffnes and Bustamante 2008], esse método consegue aumentar a taxa média de download em até 31%. Outra proposta é o método Yukka. Essa solução realiza consultas aos Regional Internet Registries (RIRs), para promover agrupamentos geográficos a partir da atribuição de uma nota de similaridade entre os pares. Os resultados em [Polaczyk and Cholda 2010] mostram uma redução de até 25% no tempo de download. 2.2. Quality of Experience (QoE) Atualmente, o termo QoE é utilizado em diversas áreas e representa as métricas utilizadas para qualificar a percepção do usuário no uso de determinado produto/serviço. Diferentemente das métricas objetivas essas medidas trabalham com o subjetivo, pois dependem da opinião do usuário. No entanto, podemos relacioná-las às medidas objetivas de QoS. Entre os estudos sobre os métodos usados como métrica para QoE encontramos a PSQA, que constrói um mapeamento entre certos fatores de qualidade e o que é recebido pelos usuários finais. Essa relação pode ser aprendida através de uma ferramenta estatística, a Rede Neural Aleatória (Random Neural Network - RNN). O resultado final é uma função capaz de imitar, de alguma forma, a maneira que um ser humano médio avalia a qualidade de um fluxo de vídeo [Rodríguez-Bocca 2008]. Outras métricas de qualidade são encontradas em [Wang 2006], conforme Tabela 1. Em seu trabalho, Wang descreve o PSNR (Peak-Signal-to-Noise-Ratio), desenvolvido inicialmente para avaliação de fotografias e depois adaptado para avaliação de vídeos. Apesar de simples, o PSNR é considerado pouco assertivo na correlação com métodos subjetivos. Sobre o MPQM (Moving Pictures Quality Metric), o autor ressalta que o mesmo apresenta uma grande margem de erro. Wang também destaca que a performace da avaliação do SSIM (Structural Similarity Index), no momento da transmissão de um vídeo, é desconhecida e, tanto esta métrica quanto a VQM (Video Quality Metric), precisam conferir o vídeo recebido com o original. O VQM mede ofuscamento, movimento não natural, ruído global, distorção de bloco e distorção da cor, e os combina em uma única métrica que tem forte correlação com a avaliação subjetiva da qualidade de vídeo. Por fim, temos o NQM (Noise Quality Measure) que não possui nenhum estudo que relacione seus resultados com a percepção dos usuários. As métricas da Tabela 1 e a PSQA não foram aqui adotadas devido a complexa implementação exigida. Buscamos em outras áreas do conhecimento uma forma mais simples de avaliar a percepção dos usuários e encontramos no mercado de capitais a Teoria de Elliott, que prevê o comportamento humano utilizando a Sequência Fibonacci [Elliott 1938]. Nossa proposta se baseia na Teoria de Elliott para medir a QoE. 128 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Tabela 1. Métricas de Qualidade em Vídeo [Wang 2006] Métrica de Qualidade Complexidade Matemática PSNR MPQM VQM SSIM NQM Simples Complexo Muito Complexo Complexo Complexo Correlação com Subjetivos Ruim Instável Bom Razoável Desconhecido Métodos 3. Proposta Nesta seção descrevemos o funcionamento do algortimo, mas antes vamos explicar a razão de algumas escolhas. Para avaliarmos a qualidade de um vídeo de forma mais simples, decidimos nos apoiar na ausência de pedaços e não na ausência de quadros, como foi sugerido por [Rodríguez-Bocca 2008]. Sobre a taxa de reproção do vídeo, consideramos as taxas comuns utilizadas, por exemplo pelo NetFlix, que são 512 Kbits/s (baixa resolução) e 1.536 Kbits/s (alta definição). Por uma questão prática, neste trabalho optamos pela primeira. Considerando que o protocolo BitTorrent utiliza pedaços de 512 KBytes, podemos concluir que, em vídeos de baixa resolução, cada pedaço conterá cerca de 8 segundos. Como um vídeo, por padrão, trabalha a uma taxa de 23 quadros por segundo, cada um destes pedaços conterá cerca de 8 × 23 = 184 quadros. A perda de um único pedaço, contendo 8 segundos de vídeo, pode parecer muito se comparamos esse tempo com o que foi avaliado em [Krishnan and Sitaraman 2012], nesse trabalho os autores estudaram o impacto da qualidade na transmissão de vídeo utilizando extensivos traces da rede Akamai, que incluem 23 milhões de visualizações feitas por 6,7 milhões de visitantes. O artigo mostra que os espectadores abandonam o vídeo se este levar mais do que dois segundos para iniciar e para cada segundo adicional há um aumento de 8% na taxa de abandono. A pesquisa também mostra que uma quantidade “moderada” de interrupções pode diminuir significativamente o número de espectadores. Nossa proposta não ataca o tempo de inicialização, nesse ponto é preciso atentar para certas diferenças entre as redes P2P e as CDNs. No entanto, o trabalho sobre a rede Akamai serviu de inspiração para a metodologia de inferência de QoE proposta a seguir, pois nos ajudou a perceber um fato relacionado a variação da QoE no tempo e que torna plausível o tempo de 8 segundos. Também existe a questão dos Coders-Decoders (CODEC) de vídeo, que podem resultar em variações na quantidade de quadros, logo segundos, por pedaços e efeitos diversos na visualização que tem relação com a estratégia utilizada pelos formatos como, por exemplo, perdas de key-frames predecessores de intra-frames. Com o objetivo de simplificar a análise não utilizamos variados tipos de formatos. A literatura sobre relações entre perdas de pedaços e QoE é escassa, o mesmo vale para perdas de quadros. Resolvemos estabelecer um paralelo com os trabalhos [Agboma, Smy e Liotta 2008, Mwela and Adebomi 2010]. Esses artigos pontuaram a percepção dos usuários sobre perdas de pacotes, fazendo uso de avaliações subjetivas baseadas em Mean Opinion Score (MOS). Um MOS específico para perdas de pedaços será elaborado em trabalhos futuros. 129 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ A Tabela 2 foi elaborada empiricamente considerando que 10% de ausências é o máximo tolerado. Ela foi dividida em 3 níveis por ser o padrão adotado na elaboração das Escalas de Estresse Percebido (Perceived Stress Scale - PSS). Cada rodada do nosso experimento leva 2.000 segundos, mesmo tempo utilizado no trabalho com o GoalBit [Bertinat et al. 2009], onde 10% equilave a 25 pedaços. Reduzimos o teto para 24 pedaços por ser um valor divisível por 3 e para não produzir um acumulado de Fibonacci muito alto. Nos trabalhos de [Agboma, Smy e Liotta 2008, Mwela and Adebomi 2010] podemos ver que o MOS é muito baixo quando o sistema sofre 10% de perda de pacotes, por isso decidimos fazer esse vínculo entre o percentual de perdas de pacotes e o percentual de ausência de pedaços. Tabela 2. Escala de estresse com três níveis Níveis de Estresse Baixo Médio Alto Ausências de Pedaços 0a8 8 a 16 16 a 24 Acumulado de Fibonacci 0 a 54 54 a 2.583 2.583 a 121.392 Nosso objetivo é estabelecer uma relação entre o histórico de perda de pedaços e a QoE. Para tal, estabelecemos pontuações distintas para reproduções bem sucedidas e ausências de pedaços. Vamos chamar de “nível de estresse” o valor obtido, com esse processo de pontuação, em determinado instante. A A2 Q foi inspirada no trabalho de Elliott. Com o propósito de quantificar a psicologia humana associada às oscilações dos preços, ele catalogou diversos padrões gráficos criando regras específicas, originando assim o Princípio das Ondas de Elliott ou, simplesmente, Teoria de Elliott. A identificação dos padrões gráficos permitiu encontrar as “formas” existentes no mercado de capitais. Então, Elliott usou a Proporção Áurea ou Número de Ouro (aproximadamente 1,618) que foi extraída da sequência de números de Fibonacci, na caracterização das “formas” encontradas [Elliott 1938]. A Sequência Fibonacci é uma sucessão de números que aparece em muitos fenômenos da natureza. Ela é infinita e começa com 0 e 1. Os números seguintes são sempre a soma dos dois números anteriores. Portanto, depois de 0 e 1, vêm 1, 2, 3, 5, 8, 13, 21 e assim por diante. Por sua inerente simplicidade, resolvemos estabelecer uma relação entre a Sequência Fibonacci e a ausência de pedaços implementando duas sequências distintas. Uma sequência é responsável por aumentar o “estresse” a cada ausência de pedaço, enquanto a outra reduz o “estresse” a cada pedaço reproduzido com sucesso. Para entender melhor, veja o exemplo hipotético da Figura 1a. Começamos com a Sequência Fibonacci Direta (SFD) para ausências de pedaços marcando 3 e com a Sequência Fibonacci Inversa (SFI) para reproduções bem sucedidas marcando 1. No momento seguinte, verificamos se o pedaço a reproduzir está presente e, ao constatarmos a presença do mesmo, os ponteiros se movem no sentido da SFI e é subtraído no nível de estresse o valor nela marcado, ou seja, 1. No momento seguinte, verificamos se o pedaço a reproduzir está presente e ao constatarmos sua ausência, os ponteiros se movem no sentido da SFD e é acrescentado ao nível de estresse o valor marcado nela, ou seja, 3. Na Figura 1b podemos ver o exemplo de um gráfico que mostra uma série de 10 ausências, seguida por uma série de 10 reproduções. É possível notar valores pro- 130 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ (a) (b) Acumulado 160 Nível de estresse 140 120 100 80 60 40 20 0 0 20 40 60 80 100 120 140 160 Segundos Figura 1. Elementos básicos da avaliação de qualidade: (a) as duas Sequências Fibonacci e ilustração da variação de SFD e SFI em função do tempo, e (b) variação do nível de estresse em função do tempo gressivamente maiores quando os erros estão próximos. Note que, partindo do princípio de que pessoas muito estressadas não se acalmam imediatamente, os valores caem lentamente quando a constatação das ausências ainda está recente. Vale reparar que a forma do gráfico lembra uma exponencial. Na avaliação da percepção do usuário [Mwela and Adebomi 2010] observou que o MOS parece seguir uma exponencial, conforme o percentual das perdas de pacotes aumenta. Com a implementação do algoritmo (S4Q), decidimos que a estimativa do nível de estresse deve iniciar 40 segundos após a solicitação de um vídeo. Esse tempo foi escolhido por ser o mesmo necessário à chegada dos primeiros dados e formação de buffer no AnySee, também por ser equivalente a 5 pedaços de vídeo, quando o mesmo possui uma taxa total de 512 Kbits/s e está dividido em pedaços de 512 KBytes. Escolhemos o AnySee por ele exigir apenas 40 segundos, enquanto que outros, como o CoolStreaming, necessitam de até 120 segundos [Liao et al. 2006]. Após o tempo de recebimento dos primeiros dados e buffering do vídeo, o algoritmo começa a verificar, a cada 8 segundos, a presença do pedaço necessário à reprodução segundo dois critérios: corte e pausa. Estes dois critérios representam os cenários encontrados tanto nos sistemas de TV convencionais (ausências de sinal causam cortes na transmissão), quanto na maioria das transmissões pela Internet (vídeos do YouTube pausam diante da ausência de dados). Ele também começa a guardar, a cada 8 segundos, a lista atual de pares. Após a décima lista é feita uma consolidação, onde apenas os pares que aparecem em todas as listas farão parte de uma única lista (neste trabalho esse resultado recebe o nome de Lista de Pares Estáveis - LPE). Utilizamos 10 listas porque uma quantidade menor poderia não ser representativa e uma maior faria com que o algoritmo demorasse para atuar. A determinação da quantidade ideal é assunto para trabalhos futuros. A formação da LPE é um processo cíclico que se mantém durante toda a transmissão. Ao gerar uma LPE, o algoritmo verifica o Nível de Estresse por Corte (NEC) e/ou o Nível de Estresse por Pausa (NEP). Caso ambos estejam baixos, (ver Tabela 2) nada será feito. Do contrario, uma mensagem perguntando o NEC e o NEP é enviada a cada leecher da LPE. Os seeders (no VoD) e os broadcasters (na live streaming) não são considerados porque seus níveis de estresse tendem a zero e não há garantia que eles tenham uma LPE com bons fornecedores. Na Figura 2a vemos um exemplo em que o par D solicita os 131 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ (a) NEC 12 NEP 50 NEC 143 NEP 20 C D A E F (c) NEC 12 NEP 50 NEC 143 NEP 20 F C NEC 12 NEP 50 NEC 143 NEP 20 E NEC 20 NEP 57 F (b) NEC 12 NEP 78 NEC 232 NEC 80 NEP 120 NEP 42 B A F D E NEC 20 NEP 57 D (d) NEC 12 NEP 78 NEC 12 NEP 50 C D E C E NEC 20 NEP 57 C NEC 232 NEC 80 NEP 120 NEP 42 B A NEC 12 NEP 78 NEC 232 NEC 80 NEP 120 NEP 42 B A NEC 12 NEP 78 E F D NEC 232 NEC 80 NEP 120 NEP 42 B A Figura 2. O funcionamento do algoritmo para seleção de pares níveis de estresses aos integrantes da sua LPE (os pares A, E e F), por estar com nível de estresse médio em NEP, conforme Tabela 2. Depois de receber as respostas, o par D compara seu maior valor entre NEC e NEP, com o correspondente de cada resposta, isto é, NEC se compara com NEC e NEP com NEP, apenas. Não existindo valor menor que o seu, nada será feito, em caso contrário, uma mensagem solicitando a LPE é enviada ao leecher que apresentou o menor nível de estresse. Na Figura 2b vemos a continuação do nosso exemplo, onde os pares A, E e F respondem à solicitação do par D com seus níveis de estresse (A com NEP 42, E com NEP 78 e F com NEP 20). Na Figura 2c, o par D verifica que o menor nível de estresse é o NEP 20 do par F e que este NEP é menor que seu próprio NEP, que está em 57. Diante disso, o par D solicita ao par F a LPE dele. Com a resposta de F, a LPE recebida é acrescentada a lista de pares (Figura 2d), passando o solicitante (par D) a se comunicar com os novos pares adicionados - neste caso, o par C, pois D é o próprio solicitante e E já faz parte da LPE de D. O recebimento de uma nova LPE não provoca a substituição da atual, apenas provoca o acréscimo de pares. A manutenção dos pares segue por conta da política tradicional do BitTorrent. A LPE recebida pode conter pares fora do perímetro de qualidade mínima para comunicação. Por exemplo, um par A pode ter uma boa comunicação com um par B e indicá-lo ao par C, por meio de sua LPE. Porém, o par C pode não conseguir uma boa comunicação com B devido a distância geográfica, questões de infra estrutura ou por motivos diversos. Dessa forma, com esta proposta, esperamos: (i) reduzir o tempo de download, (ii) reduzir as interrupções na reprodução do vídeo durante sua transmissão, (iii) promover a chegada sequencial dos pedaços sem interferir no ASAP e sem provocar os problemas do ASSP, (iv) produzir uma melhor e mais homogênea QoE entre os pares, (v) promover 132 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ agrupamentos sem uso da taxa de upload, posição geográfica ou informações de fontes externas, (vi) acelerar a formação de supernodes (pares colaborativos com grande capacidade de upload) e (vii) desestimular free riders (pares pouco ou nada colaborativos). A redução no tempo de download pode ser alcançada porque o algoritmo possibilita o encontro de bons fornecedores (pela troca das LPEs) indicados por quem está tendo bons resultados (baixo NEC/NEP). Uma reprodução do vídeo com menos interrupções, durante sua transmissão, pode ser obtida porque os valores de NEC e NEP têm relação com a chegada do pedaço antes da necessidade de sua reprodução pelo player de vídeo. Quem tem um baixo NEC/NEP está recebendo pedaços em uma sequência que permite uma reprodução contínua do vídeo. A organização dos grupos por NEC/NEP induz a uma seleção sequencial de pedaços, mas sem interferir no algoritmo do BitTorrent que trata esse assunto, reduzindo tanto interrupções no ASAP quanto no ASSP. O algoritmo produz uma melhor e mais homogênea QoE entre os pares porque a troca das LPEs tende a nivelar o NEC/NEP dos pares. A solução promove agrupamentos sem uso de (a) taxa de upload, que pode apresentar problemas com jitter, (b) distância em saltos que exige maior trafego de controle ou (c) informações de fontes externas que deixam o algoritmo dependente da boa performace e disponibilidade do serviço consumido. O agrupamento ocorre pela troca das LPEs, pois os pares tendem a ter uma boa comunicação com os integrantes das LPEs dos integrantes de sua própria LPE, desde que colhidos de um par com baixo NEC/NEP. Mesmo que isso não se revele uma verdade, o algoritmo tradicional do BitTorrent trata as exceções com um choke, isso significa que, um par BitTorrent pode “afogar” seu vizinho, no momento que este não coopera com ele, interrompendo todos os uploads ao mesmo. Acelerar a formação de supernodes é uma tarefa que pode ser alcançada partindo do princípio que esses pares são bons fornecedores e naturalmente aparecem nas LPEs que são trocadas pela rede. Por outro lado, não descartamos a possibilidade de que ocorra uma convergência a um pequeno grupo de pares, podendo ocasionar sobrecarga, clusterização ou que as LPEs causem um sincronismo. Por exemplo, quando um par fica saturado e há excessiva concentração, o NEC/NEP podem aumentar e, hipoteticamente, provocar uma migração para um mesmo novo par (sincronismo). Porém, este caso não foi observado durante os experimentos. Finalmente, nota-se que o efeito oposto do que ocorre com os supernodes ocorrerá com os free riders, já que eles não conseguem montar uma LPE e não serão selecionados pelos outros pares para compor uma LPE. Logo, os free riders não tiram proveito dos benefícios do algoritmo. 4. Resultados Experimentais Nesta seção, apresentamos os resultados experimentais e análises decorrentes dos mesmos. Nossos objetivos são (a) mostrar que o S4Q consegue uma transmissão com poucas ausências de pedaços, (b) que nosso algoritmo obtem bons resultados mesmo utilizando o ASAP e (c) que ele reduz rapidamente os níveis de estresse, decorrentes do atraso na inicialização, proporcionando uma melhorar na QoE geral do sistema. Por uma questão de síntese vamos apresentar com maiores detalhes apenas os dados provenientes dos experimentos com ASAP e com o critério pausa. 133 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 4.1. Ambiente de Experimentação Os experimentos foram realizados utilizando o ambiente do Planetlab, onde diversas máquinas foram pré-selecionadas de acordo com as suas respectivas disponibilidades e características e escolhidas a cada rodada do experimento (detalhes em [de Sousa 2013]). Cada cenário foi repetido 30 vezes, eles emulavam uma distribuição de vídeo com o objetivo de comparar a QoE de cada solução para cada algoritmo de seleção de pedaços e quantidades diferentes de leechers no swarm. Nosso experimento foi executado em grupos de 25, 50, 75, 100 e 125 peers, com um tracker e um seeder. Os dados estatíticos foram extraídos do arquivo “Azureus_stats.xml’, que é gerado, por padrão, a cada 30 segundos, quando as estatísticas estão ativadas. Desse xml coletamos o downloaded e o uploaded de cada peer com o respectivo IP. O registro dos dados aconteceu durante 2.000 segundos. Também foi coletado diretamente do sistema operacional os níveis de consumo da memória em cada par. Durante as rodadas recebemos vários alertas do PlanetLab sobre o consumo excessivo de memória e em análise verificamos que se tratava do Ono. Essa solução apresentou um grande consumo médio de memória física não swapped (Resident Set Size - RSS) durante a execução de suas tarefas. 4.2. Avaliação dos Resultados Experimentais A execução do experimento levou mais de 3 meses e desde o início nos preocupamos em garantir uma igualdade de condições entre as soluções, por isso algumas informações foram colhidas e verificadas a fim de identificar possíveis distorções. Não julgamos suficiente apenas selecionar aleatoriamente as máquinas que iriam compor cada grupo em cada rodada, queriamos nos certificar de que nada fora do normal alterasse os dados e beneficiasse uma solução em detrimento das outras, por isso analisamos e classificamos 4 tipos de situações: (1) máquinas em que não foi possível obter os traces (dados) foram consideradas “desligadas”; (2) que geraram traces, mas não estabeleceram conexão com outras máquinas foram classificadas como “download zero’; (3) que não completaram o download como “download parcial” e, por último, (4) as demais como “download completo”. Os dois primeiros casos (desligadas e download zero) têm relação direta com igualdade de condições em que cada solução foi submetida e esses valores, entre as soluções, foram muito próximos em todos os casos. Os dois últimos tiveram maiores variações, mas julgamos que essas diferenças são provenientes da estratégia usada por cada algoritmo. As variações apontadas para o caso download completo foram estudadas por meio do intervalo de confiança (IC), com nível de confiança em 95%, para o tempo médio de download. Com ASAP o IC indica um empate técnico entre as soluções para pequenos swarms, ao aumentar o número de leechers o IC cai para aproximadamente 2% em todas as soluções. Também avaliamos o download parcial junto com o download completo, por meio do IC, para o tempo médio de início do download. Neste caso o uso do ASAP gerou o mesmo efeito já relatado, chegando a 11,52% (Ono com 25 pares) e reduzindo com o aumento no número de leechers. Resolvemos não mostrar os ICs nos gráficos para maior clareza na leitura. O empate a pouco citado pode ter relação com o comportamento do protocolo. No BitTorrent, por padrão, os leechers solicitam um lista de pares ao tracker a cada 30 134 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ minutos e a responda pode conter até 50. Isso faz com que, em um swarm com até 50 peers, um algoritmo para seleção de pares não tenha muito o que decidir. Na avaliação do upload a partir do seeder com ASAP constatamos uma variação entre 5% e 10% da transmissão total do sistema e com ASSP uma oscilação de 15% a 20%, em ambos os casos os valores tendem a 2% conforme o número de pares aumenta. Logo, podemos concluir que o seeder é mais requisitado em pequenos grupos e mais ainda quando utilizamos o ASSP. Esse esforço extra do seeder, com ASSP, pode prejudicar o sistema como um todo. Foi possível notar que o ASSP aumenta a latência reduzindo a velocidade do download, mas também que ele proporciona uma melhor QoE devido a chegada sequencial dos pedaços, que, por sua vez, mantém os níveis de NEC/NEP mais baixos se o compararmos com o ASAP. Sobre os dados que têm relação direta com a QoE, podemos verificar que o S4Q tende a ter menos ausências de pedaços. Repare nas Figuras 3 e 4, nossa proposta conseguiu se destacar (ficando em primeiro ou segundo lugar) em quase todos os grupos, exceto no grupo com 100 pares por uma diferença mínima de 0,2 pedaços. O Ono também conseguiu uma boa colocação, mas note que os outros valores indicam grandes oscilações, enquanto que o S4Q é mais constante em seus resultados. 60 50 Ono P4P Vuze Yukka S4Q 50 40 Pedaços 40 Pedaços 60 Ono P4P Vuze Yukka S4Q 30 30 20 20 10 10 0 0 0 400 800 1200 1600 2000 0 200 400 600 800 Segundos 1000 1200 1400 1600 1800 2000 Segundos Figura 3. Média amostral da ausências de pedaços no critério pausa com ASAP ao longo do experimento com 50 (esquerda) e 75 pares (direita) 60 50 Ono P4P Vuze Yukka S4Q 50 40 Pedaços 40 Pedaços 60 Ono P4P Vuze Yukka S4Q 30 30 20 20 10 10 0 0 0 200 400 600 800 1000 1200 1400 1600 1800 2000 Segundos 0 400 800 1200 1600 2000 Segundos Figura 4. Média amostral da ausências de pedaços no critério pausa com ASAP ao longo do experimento com 100 (esquerda) e 125 pares (direita) Nas Figuras 5 e 6 podemos ver que o tempo que o S4Q leva para reduzir o nível de estresse. Elas mostram que o aumento no número de pares faz com que o S4Q melhore a QoE cada vez mais rápido e que as outras soluções oscilam muito em seus resultados. 135 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 90000 60000 Ono P4P Vuze Yukka S4Q 80000 70000 Nível de estresse 70000 Nível de estresse 90000 Ono P4P Vuze Yukka S4Q 80000 50000 40000 30000 60000 50000 40000 30000 20000 20000 10000 10000 0 0 0 400 800 1200 1600 2000 0 400 800 Segundos 1200 1600 2000 Segundos Figura 5. Média amostral do nível de estresse no critério pausa com ASAP ao longo do experimento com 50 (esquerda) e 75 pares (direita) 90000 90000 Ono P4P Vuze Yukka S4Q 80000 60000 70000 60000 Nível de estresse Nível de estresse 70000 Ono P4P Vuze Yukka S4Q 80000 50000 40000 30000 50000 40000 30000 20000 20000 10000 10000 0 0 400 800 1200 1600 2000 Segundos 0 0 400 800 1200 1600 2000 Segundos Figura 6. Média amostral do nível de estresse no critério pausa com ASAP ao longo do experimento com 100 (esquerda) e 125 pares (direita) Na avaliação dos dados produzidos pela A2 Q, podemos ver que, em todos os casos (observe as Figuras 5 e 6), há uma aumento acentuado do nível de estresse nos primeiros 200 segundos (mesma faixa de tempo escolhida para entrada dos leechers no swarm). Isso pode ser explicado observando na Figura 7, nela podemos ver que o tempo para início do download varia de 50 à 150 segundos. Repare que até o menor valor ficou acima de 40 segundos, ou seja, após o tempo de espera definido para início das verificações de pedaços e constituição da nova métrica. Logo, o tempo perdido para iniciar o download já produz uma elevação do nível de estresse. A queda no nível de estresse que surge em seguida revela o fim do download que ocorre entre 200 e 600 segundos, entre os leechers bem sucedidos. Ao avaliar a duração das ausências podemos notar que o S4Q consegue reduzir esse tempo em relação as demais soluções, veja na Figuras 8 a distribuição da duração das ausências em escala logaritmica. Analisando os dados verificamos que o S4Q ainda tem chances de apresentar um resultado melhor. Ao avaliar a velocidade alcançada pelos peers, notamos que o experimento teve uma grande concentração de máquinas com velocidade de 1 MByte/s, com uma pequena redução no grupo com 125 pares. As máquinas que atingem 1Mbyte/s conseguem baixar um vídeo de 127 MBytes em apenas 127 segundos, não dando “tempo de reação” ao S4Q, uma vez que a LPE é formada a cada 80 segundos. Reduzindo a velocidade máxima das máquinas, aumentando o tamanho do vídeo, aumentando a taxa do vídeo e/ou o tempo do experimento, podemos exigir dos pares uma maior troca de LPEs. Logo, isso poderá fazer com que o S4Q alcance resultados melhores. 136 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ No geral as soluções apresentaram um tempo de download maior e um nível de estresse menor quanto utilizando o ASSP, porém foi possível observar que o S4Q consegue níveis de estresse próximos utilizando o ASAP. Isso ocorre em função da indução a chegada sequencial de pedaços. 700 600 Segundos 500 400 300 200 100 0 Ono P4P VuzeYukka S4Q 25 Pares Ono P4P VuzeYukka S4Q 50 Pares Ono P4P VuzeYukka S4Q 75 Pares Ono P4P VuzeYukka S4Q 100 Pares Ono P4P VuzeYukka S4Q 125 Pares Figura 7. Tempo de início (barra inferior) e download (barra superior) com ASAP 1 1 Ono P4P Vuze Yukka S4Q 0.8 P[duração da ausência > t] P[duração da ausência > t] 0.8 0.6 0.4 Ono P4P Vuze Yukka S4Q 0.2 0.6 0.4 0.2 0 0 100 1000 100 Segundos 1000 Segundos Figura 8. Função de Distribuição Cumulativa da duração das ausências de pedaços no critério pausa com ASAP ao longo do experimento com 75 (esquerda) e 125 pares (direita) 5. Conclusão Este trabalho apresentou uma nova métrica em QoE, ainda não validada pela percepção de usuários reais por meio de MOS, para transmissão de vídeo, partindo da verificação de pedaços e utilizando a Sequência Fibonacci sobre dois critérios: corte e pausa. Também foi apresentado um novo algoritmo para seleção de vizinhos que atribui a uma lista de pares estáveis o valor obtido com a nova métrica. Dessa forma, as melhores listas são trocadas entre os pares, com o propósito de promover agrupamentos e acelerar a formação de supernodes, para com isso obter um menor tempo de download e uma reprodução de vídeo com menos interrupções, durante sua transmissão pela rede. A partir dos resultados obtidos podemos concluir que (1) é possível tratar a seleção de pares com algoritmos simples, eficazes e que não dependem de informações contidas em fontes externas, uma vez que o S4Q chega a ter, pelo menos, 19% menos ausências de pedaços de vídeo no momento da reprodução que outros algoritmos do estado da arte e uma redução no “nível de estresse” 32% mais rápida; (2) podemos realizar agrupamentos sem estabelecer limitações, como taxa de upload ou localização geográfica, pois nossa 137 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ solução realiza essa tarefa com a troca das LPEs; (3) não precisamos nos preocupar em identificar os supernodes para aproveitar seus recursos, por serem bons fornecedores eles acabam fazendo parte das LPEs; (4) é viável construir soluções que são orientadas pela QoE, sem utilizar recursos complexos, pois conseguimos produzir avaliações dinâmicas dos NEC/NEP e utilizá-los na seleção de pares. Referências Agboma, Florence; Smy, Malcolm e Liotta, Antonio (2008). QoE analysis of a peer-topeer television system. Em IADIS International Telecommunications, Networks and Systems, Páginas 114-119. Bertinat, M. E., Vera, D. D., Padula, D., Amoza, F. R., Rodríguez-Bocca, P., Romero, P., and Rubino, G. (2009). GoalBit: The First Free and Open Source Peer-to-Peer Streaming Network. IEEE LANC. Choffnes, D. R. and Bustamante, F. E. (2008). Taming the Torrent: A Practical Approach to Reducing Cross-ISP Traffic in Peer-to-Peer Systems. ACM SIGCOMM. de Sousa, Peron Rezende (2013). Seleção de Pares Baseada em QoE para Transmissão de Vídeo em Redes P2P BitTorrent. CCET - UNIRIO. Dissertação de M.Sc. Elliott, R. N. (1938). The Wave Principle. Republicado (2012), Editora Snowball Publishing, New York, NY, USA. Ghareeb, M.; Ksentini, A. e Viho, C. (2011). An adaptive QoE-based multipath video streaming algorithm for Scalable Video Coding (SVC). Em IEEE Symposium on Computers and Communications (ISCC), Páginas 824-829, Kerkyra. Krishnan, S. and Sitaraman, R. (2012). Video Stream Quality Impacts Viewer Behavior: Inferring Causality Using Quasi-Experimental Designs. ACM IMC. Liao, X., Jin, H., Liu, Y., Ni, L. M., and Deng, D. (2006). AnySee: Peer-to-Peer Live Streaming. IEEE INFOCOM. Moraes, I. M., Campista, M. E. M., Moreira, M. D. D., Rubinstein, M. G., Costa, L. H. M. K., and Duarte, O. C. M. B. (2008). Distribuição de Video sobre Redes Par-a-Par: Arquiteturas, Mecanismos e Desafios. Minicursos do XXVI SBRC. Mwela, J. S. and Adebomi, O. E. (2010). Impact of Packet Loss on the Quality of Video Stream Transmission. School of Computing at Blekinge Institute of Technology. Dissertação de M.Sc. Polaczyk, B. and Cholda, P. (2010). BitTorrent Traffic Localization via Operator-related Information. IEEE ICC. Rodríguez-Bocca, P. (2008). Quality-Centric Design of Peer-to-Peer Systems for LiveVideo Broadcasting. l’Université de Rennes. Tese de D.Sc. Rosário, D.; C., R.; S., A.; B., T. and C., E. (2013). QoE-aware Multiple Path Video Transmission for Wireless Multimedia Sensor Networks. XXXI SBRC, 2013. Wang, Y. (2006). Survey of Objective Video Quality Measurements. EMC Corporation Hopkinton. Xie, H., Yang, Y. R., Krishnamurthy, A., Liu, Y., and Silberschatz, A. (2008). P4P: Provider Portal for Applications. ACM SIGCOMM. 138 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Predição de Fluxos em Redes de Computadores Orlando Silva-Junior1 , Carlos Alberto Kamienski1 , Ana Carolina Lorena2 1 Centro de Matemática, Computação e Cognição Universidade Federal do ABC (UFABC) Santo André – SP – Brasil 2 Instituto de Ciência e Tecnologia (ICT) Universidade Federal de São Paulo (UNIFESP) São José dos Campos – SP - Brasil {osilva,cak}@ufabc.edu.br, [email protected] Abstract. A major challenge for Software Defined Networks is to minimize the number of queries sent by switches to the controller. One solution to this problem is to previously install the expected flows on the controller, which, moreover, can overwhelm the memory of switches. The use of an intelligent system for an earlier flow prediction can be a key to obtain this trade-off. This work contributes in solutions for predicting flows in computer networks. A peer-to-peer and an e-mail networks are mapped into different topological models, which are used as underlying physical networks. Algorithms of Complex Networks Analysis are used together with several machine learning techniques to predict the flows that will persist and exist in future. Experimental results show significant results via Machine Learning techniques. Resumo. Um importante desafio nas Redes Definidas por Software é minimizar a quantidade de consultas enviadas pelo switch ao controlador. Uma das soluções para esse problema é a instalação prévia dos fluxos no controlador, que, por outro lado, pode sobrecarregar a memória dos switches. A utilização de um sistema inteligente que faça a predição antecipada dos fluxos pode ser a chave para tratar esse trade-off. Este trabalho colabora com soluções em predição de fluxos em redes de computadores. Uma rede peer-to-peer e uma rede de e-mails são mapeadas em diversos modelos topológicos, que são utilizados como redes fı́sicas subjacentes. Algoritmos de Análise de Redes Complexas são utilizados em conjunto em diversas técnicas de Aprendizado de Máquina para predizer os fluxos que se manterão e que existirão em um instante futuro. Os resultados experimentais mostram desempenhos significativos das técnicas de Aprendizado de Máquina. 1. Introdução As Redes Definidas por Software (Software Defined Networks, ou SDN) [ONF 2012] têm ganhado destaque no mercado e também na comunidade cientı́fica recente. Ao contrário de outras abordagens em redes de computadores, as SDNs separam o plano de dados do plano de controle, fazendo com que os elementos da rede que trabalham no plano de dados (switches) tenham apenas a função de encaminhar os pacotes com base em uma tabela de fluxos. Nos casos em que o switch não tem informações suficientes para tratar 139 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ com o pacote, ele envia uma solicitação ao controlador, que executa o plano de controle de modo logicamente centralizado [Guedes et al. 2012]. Um desafio importante de pesquisa é a minimização das consultas enviadas pelo switch ao controlador, que produzem um atraso inicial na comunicação e geram sobrecarga no próprio controlador [Sezer et al. 2013]. Uma maneira de tratar essa questão é o controlador realizar predição de tráfego e instalar fluxos de maneira antecipada nos switches, permitindo uma autorização prévia da comunicação antes que da chegada do primeiro pacote. Os fluxos são gerados nas redes fı́sicas e provêm das aplicações da rede. Em geral, as aplicações estruturam uma nova rede a partir do tráfego, chamada de rede lógica. Um problema na formação da rede lógica é que ela nem sempre adquire a mesma topologia da rede fı́sica subjacente. Em uma rede peer-to-peer (P2P), por exemplo, a conexão entre dois usuários nem sempre é realizada no nó da rede fı́sica (switch). Embora isso possa dificultar a predição dos fluxos nas SDNs, as conexões da rede lógica podem colaborar na solução do problema se indicarem o padrão de formação das conexões das aplicações e, por conseguinte, do fluxo das informações na rede fı́sica. Este trabalho tem como objetivo colaborar nas soluções de predição de fluxos em redes de computadores. A metodologia empregada nessa investigação utiliza duas redes de aplicação reais, que são modeladas como redes complexas. As conexões dessas redes geram fluxos de dados para as redes fı́sicas subjacentes, que são caracterizadas neste trabalho por diferentes modelos topológicos comuns da Teoria de Redes Complexas. A ideia central é combinar algoritmos de Predição de Links (PL) [Liben-Nowell and Kleinberg 2007] com diferentes técnicas de Aprendizado de Máquina (AM) e compará-las entre si. Este trabalho contribui principalmente para as soluções de predição de fluxos em SDN e na modelagem de problemas de PL, na qual uma nova abordagem é proposta: usualmente, deseja-se predizer as ligações futuras [Hasan et al. 2006] ou aquelas que irão persistir no tempo [Silva-Junior et al. 2013]. Neste trabalho é adotada uma abordagem conjunta, que prediz simultaneamente as conexões que se manterão e as que surgirão em um instante futuro. Este artigo está organizado do seguinte modo: na Seção 2 são apresentados alguns conceitos fundamentais para a compreensão da PL, seus principais algoritmos e as técnicas de AM utilizadas neste trabalho; a Seção 3 descreve a metodologia adotada e a aplicação da nova abordagem proposta; na Seção 4 são apresentados e discutidos os resultados obtidos; a Seção 5 apresenta as considerações finais do trabalho. 2. Background A Análise de Redes Complexas é uma das áreas mais interdisciplinas nas ciências atualmente, trabalhando junto a outras disciplinas para conceituar e investigar o comportamento das relações sociais humanas ou analisar a estrutura fı́sica dos relacionamentos entre diferentes tipos de entidades. Em geral, as redes complexas são formuladas como grafos do tipo G = (V, E), em que V é o conjunto de nós e E é o conjunto de arestas da rede. Uma das subáreas das Redes Complexas é a Predição de Links, que investiga a probabilidade de associações futuras entre as entidades de uma rede. Essas entidades podem representar pessoas, computadores, grupos ou organizações, enquanto as associações representam o tipo de conexão existente entre elas. 140 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ A PL tem sido utilizada em diversas tarefas, como na predição de conexões ocultas [Fire et al. 2011] ou na projeção de ligações futuras [Hasan et al. 2006] de uma rede. Entre os métodos comumente utilizados para essas tarefas estão aqueles que estimam escores ou pesos para todos os pares de nós do grafo. Nesse método, todos os escores são ranqueados conforme algum método de amostragem e um limiar é extraı́do desse conjunto, indicando a probabilidade mı́nima para a formação de arestas. Em muitos casos, a rede investigada não possui nenhum parâmetro que permita confirmar a real predição futura. Por essa razão, esses métodos são chamados de não-supervisionados [Lichtenwalter et al. 2010, Lu et al. 2010], uma vez que não existe um “supervisor” externo confirmando a predição. Nos casos em que a rede apresenta um parâmetro temporal, essa abordagem também pode ser utilizada. Porém, pesquisas recentes [Lichtenwalter et al. 2010, Scellato et al. 2011] têm indicado o uso de técnicas de AM como uma alternativa para obteção de melhores resultados. Atualmente, a PL permite resolver dois diferentes problemas: a predição de novos links e a predição de links que permanecem conectados no futuro, chamada de persistência de links. Este trabalho sugere uma abordagem conjunta, na qual a predição e a persistência não mais sejam realizadas isoladamente, mas simultaneamente. Nessa abordagem, os preditores inferem os links futuros e também aqueles que persistem no tempo. A Figura 1 ilustra a abordagem proposta. O conjunto X representa a rede no instante inicial. Esse conjunto é dito como conjunto de treinamento e é a partir dele que as medidas de ARC são extraı́das. O conjunto Y corresponde ao conjunto de avaliação, o qual contém os rótulos reais dos links (se formam/mantêm ou não) que podem ser extraı́dos. O conjunto de aprendizado é o conjunto de todos os pares de nós (U ) utilizado pelos preditores. No caso em que algoritmos de AM supervisionado são usados, há a presença do rótulo para cada par de vértices, indicando se o link se formou no conjunto Y ou não. Os links que se formaram ou persistiram são chamados de links positivos, enquanto os links que não existem mais ou não se formaram são chamados de links negativos. Figura 1. Método de construção do conjunto de aprendizado Uma caracterı́stica inerente da PL é o alto desbalanceamento na proporção de links positivos e links negativos. Um conjunto de dados é considerado desbalanceado se cada classe não está representada de modo aproximado. Em PL, a existência de exemplos negativos, ou a ausência de links, é usualmente muito maior que de exemplos positivos. Esse problema afeta principalmente a construção do conjunto de aprendizado e a avalição de desempenho das técnicas que solucionam os problemas de PL. Além disso, um conjunto de dados altamente desbalanceado tende a deteriorar o desempenho dos 141 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ algoritmos de AM [Hasan et al. 2006]. Esse problema é resolvido neste trabalho por meio do mapeamento entre as redes de aplicação e diversos modelos topológicos comuns de redes complexas, permitindo menor desbalanceamento. Caracterizado o conjunto de dados, aplica-se o algoritmo de PL, que é um preditor H que observa as ligações da rede em um instante de tempo t e prediz, com precisão p, as ligações no instante de tempo posterior t + 1. As métricas de avaliação de desempenho empregadas na área visam calcular a quantidade de links que o preditor acerta em cada uma das classes, positiva e negativa, de maneira conjunta e também de maneira separada. Para avaliar e permitir a comparação entre os diversos preditores, este trabalho utiliza a Precisão (PR), que formula a razão entre os links positivos preditos corretamente e todos os links preditos como positivos. Essa métrica pode ser expressa deste modo: P R(H) = |links preditos corretamente ∩ links preditos como positivos| |links preditos como positivos| (1) As próximas subseções apresentam as técnicas tradicionalmente utilizadas em PL e o funcionamento dos algoritmos de AM a serem adotados neste trabalho. 2.1. Algoritmos Tradicionais de Predição de Links Os algoritmos tradicionais de PL são preditores que atribuem um escore a cada um dos pares de nós de um conjunto de dados. Em geral, diversos preditores são utilizados, a fim de verificar qual deles alcança melhor desempenho. Neste trabalho foram utilizados nove preditores frequentemente utilizados pela literatura de PL [Silva-Junior and Lorena 2013, Lü and Zhou 2011]. Nos algoritmos listados a seguir, Γ(u) define o conjunto de vizinhos do nó u, ou Γ(x) = {y | y ∈ V, (x, y) ∈ E}: • Grau do nó (g): é uma medida de centralidade e indica a popularidade do nó no grafo. O grau do nó pode ser calculado como: g(u) = |Γ(u)| (2) • Vizinhos Comuns (CN): é uma das medidas mais importantes em PL. O número de vizinhos comuns informa a probabilidade de uma aresta ser formada ou ser removida entre dois nós, e é definida como: CN (u, v) = |Γ(u) ∩ Γ(v)| (3) • Conexão Preferencial (CP): fornece a probabilidade de novos nós poderem se conectar a cada vértice. Nas redes de aplicação, indica a tendência dos usuários em terem mais conexões no futuro. A conexão preferencial é definida como: CP (u, v) = |Γ(u)| · |Γ(v)| (4) • Índice de Jaccard (JC): este ı́ndice calcula a similaridade entre conjuntos de amostras e definine o estado da ligação entre dois nós, bem como a força dessa ligação. O ı́ndice de Jaccard é expresso como: JC(u, v) = 142 |Γ(u) ∩ Γ(v)| |Γ(u) ∪ Γ(v)| (5) Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ • Coeficiente de Adamic/Adar (AA): é uma medida semelhante à dos vizinhos comuns. Essa medida define um escore de similaridade entre dois nós por meio da ponderação dos vizinhos comuns mais raros e com maior peso. O coeficiente de Adamic/Adar informa o grau de exclusividade ou estabilidade entre um vizinho comum e o par de nós. A medida é definida como: X AA(u, v) = w ∈ Γ(u)∩Γ(v) 1 log |Γ(w)| (6) • Índice de Alocação de Recursos (RAI): é um ı́ndice de similaridade motivado pela alocação dinâmica de recursos em redes complexas. Dados dois nós não conectados, seus vizinhos comuns atuam como transmissores de recursos entre esses dois nós. Cada um dos transmissores distribui igualmente entre os vizinhos seus recursos disponı́veis [Lü and Zhou 2011]. A medida pode ser calculada do seguinte modo: X 1 RAI(u, v) = (7) |Γ(w)| w ∈ Γ(u)∩Γ(v) • Medida Katz (KZ): é uma medida de centralidade de redes que aprimora o cálculo do caminho mais curto entre dois nós. É realizada a soma direta ponderada de todos os caminhos entre os nós. É computada pelo cálculo da equação abaixo, hli onde pathsx,y designa o conjunto de todos os caminhos de tamanho l entre o nó u e o nó v. O parâmetro β colabora para o cálculo dos caminhos. KZ(u, v) = ∞ X β l · |pathshli u,v | (8) l=1 • Índice do Hub Promovido (HPI): é um ı́ndice que quantifica as sobreposições topológicas dos pares de nós em conjuntos de amostras. O algoritmo verifica se as conexões adjacentes aos hubs são suscetı́veis a receberem altos escores, uma vez que o denominador da equação é determinado pelo menor grau entre os nós. HP I(u, v) = |Γ(u) ∩ Γ(v)| min {|Γ(u)|, |Γ(v)|} (9) • Índice do Hub Deprimido (HDI): é um ı́ndice oposto ao HPI. Ele é utilizado neste trabalho para medir o valor das conexões de valor oposto ao HPI, auxiliando-as em sua formação. HDI(u, v) = |Γ(u) ∩ Γ(v)| max {|Γ(u)|, |Γ(v)|} (10) 2.2. Algoritmos de Aprendizado de Máquina AM é uma das diversas áreas existentes na Inteligência Artificial (IA) moderna. Dado um conjunto de dados com informações passadas, as técnicas de AM buscam a solução de um problema por meio de um processo indutivo, em que conclusões genéricas são inferidas a partir de situações particulares. Para induzir hipóteses, o algoritmo de AM se utiliza 143 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ de um conjunto prévio de dados, em que cada elemento agrega diversos atributos que descrevem e qualificam suas caracterı́sticas. Em técnicas de AM supervisionado, os conjuntos de dados ainda possuem atributos de saı́da, cujos valores são obtidos a partir dos demais atributos, chamados de atributos de entrada [Faceli et al. 2011]. A etapa de indução é denominada treinamento e consiste no aprendizado de uma hipótese que relacione os atributos de entrada de um registro com seu respectivo atributo de saı́da (rótulo). Quando o algoritmo aprende uma hipótese válida também para os dados fora do subconjunto de treinamento, diz-se que essa hipótese possui capacidade de generalização. Neste trabalho são utilizados três algoritmos de AM: • Algoritmo C4.5: o algoritmo C4.5 é uma técnica de AM que infere uma hipótese construindo um modelo de árvore de decisão. A árvore de decisão gerada pelo algoritmo é um grafo acı́clico direcionado, em que cada nó da árvore é um nó folha ou um nó de divisão. Os nós folha são rotulados com uma função, indicando o resultado do problema. No caso abordado neste trabalho, deve indicar se um link é positivo ou negativo. Por outro lado, os nós de divisão são aqueles que agregam testes condicionais, baseados nos valores dos atributos; • Naı̈ve Bayes: é um dos métodos probabilı́sticos mais simples em AM. O naı̈ve Bayes assume que os atributos de entrada do conjunto de dados são independentes entre si e computa todas as probabilidades necessárias para gerar um classificador para os novos dados; • Algoritmo dos k-Vizinhos Mais Próximos (k-NN): no k-NN, cada registro é representado como um ponto em um espaço de entrada, sendo possı́vel calcular a distância entre dois pontos. Usualmente a distância euclidiana é usada. Para obter previsões, é feito o cálculo da distância entre o vetor de valores de atributos de cada registro não rotulado e cada registro presente no conjunto de treinamento. Os exemplos mais próximos fornecem a previsão final. Neste trabalho, cada atributo de entrada corresponde ao resultado obtido em cada algoritmo de PL. Deste modo, por exemplo, o cálculo da medida Katz para o par de nós e = (u, v) corresponderá ao 7o atributo de entrada do C4.5 para o registro e. Ao contrário dos algoritmos de PL, as técnicas de AM podem agregar diversos atributos, abrangendo a quantidade de informações a realização de uma tarefa preditiva. 3. Metodologia Esta seção descreve a metodologia experimental utilizada na avaliação deste trabalho. 3.1. Coleta e Caracterização dos Dados Os dados utilizados nesta pesquisa podem ser classificados em duas categorias: dados da rede lógica e dados de modelos topológicos. Os dados da rede lógica são constituı́dos por conjuntos de dados de duas redes de aplicação: uma rede P2P e uma rede de e-mails. A rede P2P foi construı́da a partir dos dados disponı́veis na base de dados Can-O-Sleep [Fast et al. 2005]. As informações dessa base de dados foram coletadas de um servidor OpenNap entre fevereiro e maio de 2003, e possui registros de todas as transferências de arquivos entre os usuários ativos da rede P2P 144 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Gnutella. A base de dados está disponı́vel no formato XML e foi pré-processada nesta pesquisa para permitir a construção de redes complexas. O pré-processamento efetuado permitiu que diversos snapshots – ou seja, conjuntos de dados representando um instante da rede – pudessem ser gerados. Para a predição a partir da rede de e-mails foi utilizado o conhecido conjunto de dados Enron [Klimt and Yang 2004]. Assim como na rede P2P, os dados do corpus Enron foram pré-processados para permitir a construção de redes complexas, especialmente para problemas de PL. As redes complexas de ambas as redes utilizadas neste trabalho estão disponı́veis em [Silva-Junior 2013]. É importante destacar que elas foram escolhidas para este trabalho por serem redes reais, permitindo validar e aplicar a metodologia deste trabalho em situações concretas. Cada uma das redes representa um grafo orientado. Na rede P2P, os nós correspondem aos usuários ativos da rede P2P Gnutella, e as arestas, do tipo e = (u, v), representam a transferência de um arquivo do usuário u para o usuário v. Na rede de e-mails, os nós representam os usuários de e-mails, e as arestas, também do tipo e, correspondem ao envio de e-mails do usuário u para o usuário v. A Tabela 1 mostra algumas caracterı́sticas quantitativas das redes P2P e de e-mails. As estatı́sticas compreendem um perı́odo de 24 horas para a rede P2P e um intervalo de quatro anos para a rede de e-mails. O grau médio corresponde à média dos graus de todos os nós da rede. O coeficiente de assortatividade indica a tendência em encontrar nós altamente conectados que estão conectados uns com os outros. E o coeficiente médio de agrupamento mede a probabilidade dos nós adjacentes de um nó estarem também conectados. É possı́vel notar maiores valores de grau, assortatividade e coeficiente de agrupamento para a rede Enron, que é mais densa que a rede P2P utilizada. Tabela 1. Caracterı́sticas das redes Nós Arestas Grau Médio Assortatividade Coef. Médio de Agrupamento Rede P2P 1161 3086 2,658 -0,151 0,017 Rede de E-mails 144 1311 9,104 0,096 0,384 A geração dos dados dos modelos topológicos para as redes fı́sicas constitui a segunda parte da coleta de dados. Optou-se por gerar, empiricamente, topologias de três diferentes modelos de redes complexas com variação no número de nós (10, 25 e 50 nós). Os modelos utilizados e suas respectivas configurações são: • Rede Aleatória: geração de uma rede aleatória conforme o modelo proposto em [Erdös and Rényi 1959], com 25% de chance de um nó formar aresta (p = 0, 25), permitindo que todos os nós de todas as gerações tenham, ao menos, uma aresta; • Rede de Mundo Pequeno: geração de uma rede complexa conforme o modelo proposto em [Watts and Strogatz 1998], com grau médio igual a quatro e 25% de chances de um nó formar arestas; • Rede sem Escala: utilização do modelo de [Barabasi and Albert 1999], com conexão preferencial igual a dois. 145 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ 3.2. Modelagem do Problema Inicialmente, os dados de cada uma das redes de aplicação foram divididos em dois subconjuntos não-sobrepostos, um conjunto de treinamento X e um conjunto de avaliação Y . Para a rede P2P, os subconjuntos foram divididos igualmente, ficando com 12 horas cada um deles. Para a rede de e-mails, o subconjunto de treinamento abrangeu os três primeiros anos (1998-2000) e o subconjunto de avaliação ficou com o último ano (2001). Após a criação das redes de treinamento e avaliação, os nós de treinamento foram mapeados em quatro modelos topológicos de maneira uniforme: os três modelos citados na Subseção 3.1 e um modelo sem topologia, no qual apenas a variação do número de nós foi adotada. Esse procedimento estabelece uma relação entre ambas as redes: a partir das conexões temporais existentes nas redes lógicas são formados os fluxos nos modelos topológicos, que se assemelham às topologias fı́sicas de redes de computadores. Além disso, esse novo modelo permitirá concluir mais acertadamente sobre a influência da topologia na predição dos fluxos. A Figura 2 ilustra o processo de mapeamento, em que P1 a P6 são os nós da rede de aplicação e S1 a S4 são os nós da rede fı́sica. O seguinte mapeamento aleatório foi feito: P1 e P3 foram conectados a S4, P4 e P5 a S1, P2 a S2 e P6 a S3. Na Figura 2(b), a comunicação entre P1 e P6, por exemplo, gerará os seguintes fluxos na rede da Figura 2(a): P1 transmite a informação a S4, que solicita, então, ao controlador SDN que instale um fluxo para S3. Esse nó fı́sico encontra o nó P6 conectado a ele e transmite a informação a esse nó. Figura 2. Ilustração do processo de mapeamento. Por fim, foram mapeadas completamente as redes de treinamento e avaliação. As arestas presentes na rede de avaliação mas ausentes na rede de treinamento foram eliminadas antes do processo de predição. Além de reduzir o desbalanceamento, esse mapeamento colabora para que as predições feitas nos modelos estejam alinhadas às realizadas nas redes de aplicação. Esse processo gera um conjunto de dados com, no |−1) máximo, |V |∗(|V registros, sendo V a quantidade de nós da rede. 2 Independentemente da topologia adotada, todos os modelos puderam gerar conjuntos com a mesma quantidade de registros. A Tabela 2 apresenta a quantidade de registros em cada uma das redes de aplicação. Nota-se na tabela a presença de mais links 146 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ negativos que positivos. Na rede P2P, a quantidade de positivos decai com o aumento no número de nós. Na rede de e-mails, o maior desbalanceamento ocorre em 10 nós, onde não há nenhum link negativo. Essa não formação de links negativos impede que a predição seja realizada. Deste modo, os conjuntos de dados de e-mails com 10 nós foram descartados dos experimentos. Tabela 2. Caracterização dos conjuntos de dados Nós 10 25 50 Registros 45 300 1225 Rede P2P Positivos Negativos 38 (84,4%) 7 (15,6%) 78 (26%) 222 (74%) 107 (8,73%) 1118 (91,27%) Rede de E-mails Positivos Negativos 45 (100%) 0 (0%) 29 (9,67%) 271 (90,33%) 258 (23,86%) 823 (76,13%) Para as técnicas de AM, as medidas da Seção 2.1 foram usadas como atributos preditivos. Foram incluı́das ainda duas medidas não-topológicas para ajudar na predição. Essas medidas são funções de agregação e representam a quantidade de conexões existentes em cada registro de modo temporal: • Quantidade de Itens (I): quantidade de itens (peers ou e-mails, neste trabalho) transferidos pelo nó u no instante de tempo t. Essa medida é representada algebricamente pela seguinte equação: I(u) = πCOU N T (∗) (πF ROM,T O,COU N T (∗) σDAT E=t AN D F ROM =u ) (11) • Total de Itens (I T ): corresponde ao total de itens presentes na aresta. É a soma dos itens presentes no nó de entrada com os itens do nó de saı́da. É expressa pela seguinte equação: I T (u, v) = I(u) + I(v) (12) 3.3. Avaliação dos Preditores Muitos algoritmos de AM supervisionado podem tratar um problema de classificação binária. Neste trabalho foram selecionados os algoritmos tradicionais mais aplicados na área de PL [Silva-Junior and Lorena 2013]. Todos os algoritmos foram executados na plataforma Weka [Hall et al. 2009] em suas configurações padrão. Para o algoritmo k-NN, foi definido k = 1, com base em experimentos anteriores [Silva-Junior et al. 2013]. Todos os modelos de predição construı́dos foram testados com validação cruzada, com dez partições. As primeiras nove partições foram utilizadas para geração do modelo de treinamento e a última foi utilizada para a avaliação do modelo. Esse método foi utilizando tanto para a avaliação dos modelos de PL quanto de AM, sendo repetido dez vezes, alterando as amostras de teste. 4. Resultados e Discussão As Figuras 3 e 4 mostram a comparação de desempenho para os diferentes preditores de PL utilizados nos modelos topológicos nas redes P2P e de e-mail, respectivamente. A métrica de desempenho apresentada nos gráficos é a precisão. Uma observação prévia a notar é a diferença de escalas nos gráficos, ocorrida em razão das grandes diferenças entre desempenhos em algumas redes. 147 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Figura 3. Precisão dos algoritmos de PL na rede P2P Na rede P2P (Figura 3), as medidas de PL mais eficazes são aquelas baseadas no nó e na vizinhança, como o grau do nó (P R = 0, 349 no nó de destino da rede de mundo pequeno em 50 nós) e o coeficiente de Jaccard (P R = 1, 0 na rede sem escala de 50 nós), respectivamente. Na rede sem topologia e na rede aleatória, o aumento da quantidade de nós na rede subjacente deteriora o desempenho dos preditores. Nas redes de mundo pequeno e sem escala, ao contrário, o aumento no número de nós beneficia o desempenho da maior parte dos algoritmos. Mais da metade dos preditores alcança P R = 1, 0 quando o número de nós é máximo na rede sem escala. Também na rede de e-mails (Figura 4) os algoritmos de PL mais eficazes mostram ser aqueles associados ao nó e à vizinhança do nó. Na rede sem topologia, apenas o uso de Vizinhos Comuns (P R = 0, 136) melhora a predição com o aumento do número de nós na rede subjacente. As redes aleatória e de mundo pequeno comportam-se de maneira semelhante entre elas: enquanto a maior parte das medidas mantêm-se constante ou decai no desempenho, apenas o grau do nó de destino melhora a predição com o aumento da quantidade de nós. Na rede sem escala, apenas o grau do nó de origem (P R = 0, 125) e a conexão preferencial (P R = 0, 119) tiveram desempenho inferior com 50 nós, tendo as demais medidas alcançado a precisão máxima (P R = 1, 0). 148 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Figura 4. Precisão dos algoritmos de PL na rede de e-mails Os resultados em ambas as redes de aplicação apontam para uma melhor adequação dos preditores às redes cujo topologia subjacente está mais próxima da topologia real da rede de aplicação, que são as redes de mundo pequeno e sem escala. Nesses modelos, os algoritmos deterioram-se em menor escala em relação às redes sem topologia e aleatória, que fornecem menor estabilidade preditiva. Embora o uso desses algoritmos possa ser suficiente em alguns casos particulares, este trabalho também investigou o uso combinado das medidas de ARC em diversas técnicas de AM. Dada as condições de espaço, são apresentados nas Figuras 5 e 6 apenas os resultados obtidos para os modelos de mundo pequeno e sem escala na rede P2P e na rede de e-mails, respectivamente. De maneira geral, o desempenho dos algoritmos de AM decai com o aumento do número de nós na rede subjacente. Por outro lado, a precisão permanece maior em todas as situações, se comparada aos algoritmos de PL. Na rede P2P (Figura 5), o algoritmo C4.5 é o que deteriora mais rapidamente o desempenho (P R = 0, 0, para ambos os modelos topológicos com 50 nós). O Naı̈ve Bayes é o algoritmo de AM que apresenta melhores resultados no conjunto P2P, alcançando, com 10 nós, P R = 0, 818 na rede de mundo 149 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Figura 5. Precisão dos algoritmos de AM na rede P2P pequeno e P R = 0, 893 na rede sem escala. A precisão do algoritmo C4.5 é deteriorada na rede de mundo pequeno (de P R = 00, 643 com 25 nós para P R = 00, 475 com 50 nós), mas é aprimorada na rede sem escala (de 0,4 para 0,5). Essa observação somada à análise dos resultados da rede sem topologia indicam que a estrutura topológica na qual a rede de aplicação está construı́da influencia a predição de conexões da rede subjacente. Figura 6. Precisão dos algoritmos de AM na rede de e-mails Para a rede de e-mails (Figura 6), o algoritmo Naı̈ve Bayes é o que melhor se adapta aos dois modelos topológicos. Em ambos os casos, a precisão do algoritmo é melhorada quando o número de nós na rede subjacente aumenta. Na rede de mundo pequeno, o Naı̈ve Bayes alcança P R = 0, 328 com nós 50 nós, melhorando em 67,3% a precisão preditiva da rede de 10 nós (P R = 0, 196). 5. Conclusão O trade-off entre o número de requisições enviadas ao controlador e a quantidade de memória ocupada pelos fluxos nos switches é um desafio em Redes Definidas por 150 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Software. Com essa motivação, este trabalho colabora para as soluções de predição de fluxos em redes de computadores. Duas redes de aplicação são mapeadas em uma nova abordagem de Predição de Links em diversos modelos da Teoria de Redes Complexas, representando o tráfego de informação de uma rede de computadores. Por meio dessa aborgem são preditos os links que se formam e os links que persistem ao longo na rede. Diversos algoritmos de Predição de Links e Aprendizado de Máquina supervisionado são experimentados e comparados para avaliar o problema da predição de fluxos. Os resultados obtidos mostram bom desempenho entre os algoritmos tradicionais de Predição de Links, especialmente aqueles baseados no grau e na vizinhança do nó. Por outro lado, as predições de fluxos alcançam melhores resultados com as técnicas de Aprendizado de Máquina supervisionado, que aprimorou os resultados individuais de cada algoritmo e superou o alto desbalanceamento natural do domı́nio. Entre as diversas técnicas experimentadas, o Naı̈ve Bayes foi o que apresentou melhores resultados, de maneira geral. Por fim, este trabalho corrobora a influência preditiva entre a rede de fı́sica e as redes de aplicação. Os quatro modelos de redes complexas adotados mostraram que nem sempre um determinado preditor apresenta os mesmos resultados em diferentes variações topológicas. Tanto os resultados dos algoritmos tradicionais quanto das técnicas de Aprendizado de Máquina confirmaram essa influência. 6. Agradecimentos Este trabalho foi apoiado financeiramente pelo Conselho Nacional de Desenvolvimento Cientı́fico e Tecnológico (CNPq) e pela Fundação de Amparo à Pesquisa do Estado de São Paulo (FAPESP). Referências Barabasi, A. L. and Albert, R. (1999). Emergence of scaling in random networks. Science (New York, N.Y.), 286(5439):509–512. Erdös, P. and Rényi, A. (1959). On random graphs, I. Publicationes Mathematicae (Debrecen), 6:290–297. Faceli, K., Lorena, A. C., Gama, J., and de Carvalho, A. C. (2011). Inteligência Artificial: Uma Abordagem de Aprendizado de Máquina. LTC, Rio de Janeiro. Fast, A., Jensen, D., and Levine, B. N. (2005). Creating social networks to improve peer-to-peer networking. In Proceedings of the eleventh ACM SIGKDD international conference on Knowledge discovery in data mining, KDD ’05, pages 568–573, New York, NY, USA. ACM. Fire, M., Tenenboim, L., Lesser, O., Puzis, R., Rokach, L., and Elovici, Y. (2011). Link prediction in social networks using computationally efficient topological features. In Privacy, security, risk and trust (passat), 2011 ieee third international conference on and 2011 ieee third international conference on social computing (socialcom), pages 73 –80. Guedes, D., Vieira, L., Vieira, M., Rodrigues, H., and Nunes, R. V. (2012). Redes definidas por software: uma abordagem sistêmica para o desenvolvimento de pesquisas 151 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ em redes de computadores. Minicursos do Simpósio Brasileiro de Redes de Computadores-SBRC 2012, 30(4):160–210. Hall, M., Frank, E., Holmes, G., Pfahringer, B., Reutemann, P., and Witten, I. H. (2009). The weka data mining software: an update. SIGKDD Explor. Newsl., 11(1):10–18. Hasan, M. A., Chaoji, V., Salem, S., and Zaki, M. (2006). Link prediction using supervised learning. In In Proc. of SDM 06 workshop on Link Analysis, Counterterrorism and Security. Klimt, B. and Yang, Y. (2004). Introducing the Enron corpus. In First Conference on Email and Anti-Spam (CEAS). Lü, L. and Zhou, T. (2011). Link prediction in complex networks: A survey. Physica A: Statistical Mechanics and its Applications, 390(6):1150 – 1170. Liben-Nowell, D. and Kleinberg, J. (2007). The link-prediction problem for social networks. Journal of the American Society for Information Science and Technology, 58(7):1019–1031. Lichtenwalter, R. N., Lussier, J. T., and Chawla, N. V. (2010). New perspectives and methods in link prediction. In Proceedings of the 16th ACM SIGKDD international conference on Knowledge discovery and data mining, KDD ’10, pages 243–252, New York, NY, USA. ACM. Lu, Z., Savas, B., Tang, W., and Dhillon, I. S. (2010). Supervised link prediction using multiple sources. In Proceedings of the 2010 IEEE International Conference on Data Mining, ICDM ’10, pages 923–928, Washington, DC, USA. IEEE Computer Society. ONF (2012). Software-defined networking: The new norm for networks. ONF White Paper. Palo Alto, US: Open Networking Foundation. Scellato, S., Noulas, A., and Mascolo, C. (2011). Exploiting place features in link prediction on location-based social networks. In Proceedings of the 17th ACM SIGKDD international conference on Knowledge discovery and data mining, KDD ’11, pages 1046–1054. ACM. Sezer, S., Scott-Hayward, S., Chouhan, P. K., Fraser, B., Lake, D., Finnegan, J., Viljoen, N., Miller, M., and Rao, N. (2013). Are we ready for sdn? implementation challenges for software-defined networks. Communications Magazine, IEEE, 51(7). Silva-Junior, O. (2013). orlandodasilvajr/data-sets. http://sites.google.com/site/ Silva-Junior, O. and Lorena, A. C. (2013). Aprendizado de máquina supervisionado na predição de links em redes complexas - uma revisão sistemática. Technical Report 01/2013, Universidade Federal do ABC, Santo André, Brasil. Silva-Junior, O., Lorena, A. C., and Kamienski, C. A. (2013). Predição de links em redes p2p. In Anais do I Simpósio da Pós-graduação da Universidade Federal do ABC, Santo André, Brasil. Watts, D. and Strogatz, S. (1998). Collective dynamics of ’small-world’ networks. Nature, pages 440–442. 152 Anais do IX Workshop de Redes P2P, Dinâmicas, Sociais e Orientadas a Conteúdo - Wp2p+ Índice por Autor A Almeida, J.M. .......................................3 Alves Junior, O.C. ..............................67 Assad, R.E. .........................................97 B Barreto, H.F.S.S.M. ...........................23 C Campista, M.E.M. ..............................23 Costa, E.C. ...........................................3 Costa, L.C. ...........................................3 Costa, L.H.M.K. .................................23 Cunha, F.D. ........................................39 D De Bona, L.C.E. ...............................103 Diniz, M.C. ......................................125 Drago, I. ...............................................3 Duarte Jr., E.P. .................................103 Durão, F. ............................................97 F Fiorese, A. ..........................................67 G Garcia, V.C. .......................................97 K Kamienski, C.A. ...............................139 Kniess, J. ............................................53 Koppe, J.P. .......................................103 L Lemos, F.S.B. ....................................53 Lorena, A.C. .....................................139 Loureiro, A.A.F. ................................39 Lucena, S.C. .....................................125 M Menasche, D.S. ................................125 Mini, R. ..............................................39 O Oliveira, M.L. ....................................83 P Paula, L.B. .........................................17 R Ribeiro, F.N.B. .................................119 Rocha, A.A.A. ..................................125 Rodrigues, T. ......................................39 Rothenberg, C.E. ................................83 S Santos, P.B. ........................................17 Silva Junior, O. ................................139 Silva, A.F. ..........................................97 Silva, A.P.C. ........................................3 Soares, L.F.G. ..................................119 Sousa, P.R. .......................................125 V Viana, A. ............................................39 Vieira, A.B. ..........................................3 Vieira, G.V. ........................................67 Vieira, R.G. ........................................53 Villaça, R.S. .......................................17 Z Ziviani, A. ...........................................3 153