ВВЕДЕНИЕ 5
1 Основные понятия теории пиринговых систем 8
1.1 Понятие пиринговой сети 8
1.2 Классификация Р2Р систем 11
1.3 Типы оверлеев пиринговых сетей 15
1.3.1 Неструктурированные оверлеи 15
1.3.2 Структурированные оверлеи 17
1.4 Основные распределенные алгоритмы децентрализованных
пиринговых систем 18
1.4.1 Основные принципы и проблемы разработки распределенных систем 18
1.4.2 Обобщенный список распределенных алгоритмов
децентрализованных пиринговых систем 20
2 Моделирование децентрализованных пиринговых систем 23
2.1 Методы формального моделирования распределенных вычислений и систем 23
2.2 Языки программирования для распределенных и мобильных
вычислений 25
2.2.1 Язык программирования Pict 25
2.2.2 Язык программирования SALSA 26
2.2.3 Язык программирования JoCalm 27
2.3 Симуляторы для исследования пиринговых систем 28
2.3.1 Симулятор PeerSim 29
2.3.2 Симулятор GPS 30
2.3.3 Симулятор NeuroGrid 30
2.3.4 Симулятор Р2РSim 31
ЗАКЛЮЧЕНИЕ 33
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ 35
Информационные системы и технологии пронизывают все новые и новые сферы человеческой деятельности, за которыми стоят решения все более сложных научных и практических задач. Постоянно возрастают требования к скорости передачи, обработки и анализа данных, что вызывает соответствующие требования к скорости вычислительных процессоров и компьютерных сетей, объему хранимой информации, надежности систем передачи данных и т.п. Технологический прогресс в области цифровой схемотехники делает возможность повсеместного использования миниатюрных вычислительных систем и их связи с классическими архитектурами.
Несмотря на имеющиеся скептические прогнозы по поводу выполнимости закона Мура, характеристики процессоров, сетей и накопителей данных продолжают свой экспоненциальный рост. Действительно, проанализировав открытые данные можно убедиться, что за последние 40 -45 лет указанные характеристики увеличились на шесть порядков [7].
Если такие темпы роста сохраняться, то к 2031 году мы сможем увидеть дальнейшее тысячекратное улучшение характеристик аппаратных средств. В результате чего мобильные устройства, ноутбуки и персональные компьютеры будут иметь более 1000 процессоров. Сетевые магистрали будут иметь скорость более 100 терабит в секунду, а емкость накопителей данных буд ет измеряться в петабайтах.
Технологии глобальной сети Интернет также активно развиваются. Одним из основных факторов, обуславливающих научные и инженерные поиски в области новых технологий Интернет является продолжающийся «взрывной» рост трафика, который «делает затруднительным его концентрацию на отдельных узлах сети, и как следствие, порождает уже явно выраженную в последнее время тенденцию к переходу различных интернет - сервисов от клиент-серверной модели предоставления услуг сначала к частично распределённой ..., а затем и к полностью распределённой» [39]. Анализ динамики трафика Интернет показывает, что сегодня доля трафика традиционных сервисов (электронная почта, WWW, FTP) по сравнению с остальными видами трафика, достаточно мала и с течением времени только будет уменьшаться. Наибольший же рост объёмов интернет трафика наблюдается для трафика P2P сервисов и приложений, доля которого уже в 2007 году достигла 70% [39].
Термин «Р2Р» используется для описания широкого круга приложений и архитектур. Часть пиринговых систем была успешно апробирована на системах распределенных вычислений (SETI@home, XtremWeb), распределенного хранения данных (Publius, Kazaa, Gnutella), обмена сообщений (ICQ, Jabber), массовых онлайн играх и т.д. Во всех этих приложениях, на узлах распределяется часть ресурсов (вычислительная мощность, дисковое пространство и т.д.), непосредственно доступных другим узлам, распределенным по сети.
В последнее время технология пиринговых сетей активно используется на рынке онлайн-телевидения - P2P-TV [40], что обеспечило высокий научный интерес к разработке новых технологий построения распределенных технологий и алгоритмов.
Вместе с тем информация, относящаяся к методам формального описания, математического и компьютерного имитационного моделирования пиринговых систем, ровно как, и распределенных алгоритмов, применяемых в P2P сетях, носит разрозненный, несистематический характер. Кроме того, наблюдается острый дефицит литературы на русском языке, посвященной теме исследований. Поэтому тема работы является актуальной как с научной, так и с инженерной точек зрения.
Объектом исследований являются методология пиринговых систем. Предметом исследований являются систематизация методов формального описания, моделирования и реализации децентрализованных пиринговых систем.
Целью бакалаврской работы является системный анализ подходов и методов формального описания, математического и компьютерного моделирования, а также реализации децентрализованных пиринговых систем.
Для достижения поставленной цели были выделены следующие задачи:
1. На основе анализа современной научной литературы обобщить основную информацию по теории пиринговых систем.
2. Выполнить обзор методов формального описания и моделирования пиринговых систем.
3. Выполнить обзор специализированных языков программирования, предназначенных для реализации распределенных систем и вычислений.
4. Выполнить обзор программ-симуляторов Р2Р сетей.
Новизна исследования заключается в системном изложении научных знаний в области формального описания, моделирования и реализации децентрализованных пиринговых сетей.
Бакалаврская работа состоит из введения, двух глав, заключения, списка используемых источников.
В первой главе систематизируются основные положения теории пиринговых систем и основные подходы к формальному описанию Р2Р сетей.
Во второй главе рассматриваются языки реализации и приводится обзор программ симуляторов пиринговых сетей.
В ходе выполнения бакалаврской работы был выполнен анализ научной литературы по теме моделирования децентрализованных пиринговых систем.
Были обобщены понятия и классификация понятий, касающихся теории распределённых вычислений и систем в части касающейся Р2Р сетей. Было показана место пиринговых сетей в классификации распределённых систем. Была рассмотрена классификация Р2Р сетей с точки зрения централизации архитектуры. Данная классификация включает три вида Р2Р сетей: централизованные, частично централизованные и децентрализованные сети.
В свою очередь независимо от архитектуры Р2Р сети могут образовывать различные логические топологии - оверлеи. Было показано, что различают два вида оверлеев: неструктурированные и структурированные.
Структурированные оверлеи могут строиться по различным топологиям, таким как: кольцо, бабочка, гиперкуб, d-тор, графы де Брюйна и т.д.
Несмотря на различные архитектуры и топологии, пиринговые сети должны поддерживать различные группы распределенных алгоритмов, которые бы решали основные проблемы распределённых вычислений, а именно проблемы: синхронизации, балансировки нагрузки и отказоустойчивости. Для решения этих проблем были отмечены алгоритмы поиска консенсуса и выбора лидирующего звена. Типовые алгоритмы, используемые Р2Р сетями, было предложено объединить в семь групп, среди которых: алгоритмы текучести, маршрутизации, коммуникации, синхронизации, балансировки нагрузки, отказоустойчивости и алгоритмы доверия.
В первой части второй главы был рассмотрен список методов формального моделирования распределенных, в том числе пиринговых, систем. Как было показано, основу рассмотренных методов составляет Х-исчисление. Однако настоящий прорыв в области моделирования и анализа параллельных и распределённых вычислений осуществило п-исчисление, разработанное в 1992 году. Как показал анализ научной литературы, в дальнейшем на основе п- исчисления были разработаны более полные и современные подходы, такие как исчисление акторов, исчисление соединений процессов и др.
На базе методов формального описания распределенных систем на протяжении двух десятилетий разрабатывались специальные языки программирования распределенных вычислений. В работе кратко рассмотрены такие языки как Pict, SALSA, JoCalm. Также было отмечено их отличие от таких популярных языков программирования, позволяющих писать распределённые алгоритмы, как Java и C++.
В завершении исследования была рассмотрена проблема компьютерного имитационного моделирования. Для этой цели был разработан достаточно большой ряд Р2Р симуляторов, ориентированных на решение различных топологий и задач в области Р2Р сетей. В работе были приведены основные сведения о возможности таких симуляторов как PeerSim, GPS, NeuroGrid, P2PSim. Также было отмечено, что существует явная проблема разработки современного симулятора, способного моделировать пиринговые сети, содержащие десятки и сотни миллионов узлов и поддерживающие основные свойства пиринговых сетей, таких как масштабируемость, мобильность и распределённость.
Выполненный обзор основан на анализе более чем 50 научных источников, среди которых 37 источников на иностранном языке, в том числе 29 статей и 5 монографий.
1. Abdallah A. E. Communicating Sequential Processes. The First 25 Years: Symposium on the Occasion of 25 Years of CSP, London, UK, July 7-8, 2004. Revised Invited Papers. - Springer Science & Business Media, 2005. - Т. 3525.
2. Ambient calculus // Электронный ресурс. 2018. - Режим доступа: http ://enac ad emic. c o m/dic. ns f/enwiki/10961853
3. Armstrong J. Erlang—a Survey of the Language and its Industrial Applications //Proc. INAP. - 1996. - Т. 96. // Электронный ресурс. 2018. - Режим доступа: https://pdfs.semanticscholar.org/8fce/0a789d4f8228c46734d26fda387468fb29f9.pdf.
4. Baeten J. C. M. A brief history of process algebra //Theoretical Computer Science. - 2005. - Т. 335. - №. 2-3. - С. 131-146.
5. Cardelli L., Gordon A. D. Mobile ambients //International Conference on Foundations of Software Science and Computation Structure. - Springer, Berlin, Heidelberg, 1998. - С. 140-155.
6. Conchon S., Le Fessant F. Jocaml: Mobile agents for objective-caml
//Agent systems and applications, 1999 and third international symposium on mobile agents. Proceedings. First international symposium on. - IEEE, 1999. - С. 22-29. // Электронный ресурс . 2018. - Режим доступа:
http s ://www. researchgate. net/pro file/F abric e Le Fess ant/public ation/2636314 Jo c aml mobile agents for Objective-Caml/links/553666be0cf20ea35f132381.pdf
7. Distributed systems : design and algorithms / edited by Serge Haddad ... [et al.] // John Wiley & Sons, Inc, 2011. - 324 p.
8. Ebrahim M., Khan S., Mohani S. S. U. H. Peer-to-peer network
simulators: an analytical review //arXiv preprint arXiv:1405.0400. - 2014. // Электронный ресурс. 2018. - Режим доступа:
https://arxiv. org/ftp/arxiv/papers/1405/1405.0400.pdf
9. Erciyes K. Distributed graph algorithms for computer networks. - Springer Science & Business Media, 2013.
10. Fournet C. et al. JoCaml: A language for concurrent distributed and
mobile programming //International School on Advanced Functional Programming. - Springer, Berlin, Heidelberg, 2002. - С. 129-158. // Электронный ресурс. 2018. - Режим доступа:
https://pdfs.semanticscholar.org/1599/1cd205f8cacb091e3548a6311b4dd9cf84df.pdf.
11. Fournet C., Gonthier G. The join calculus: A language for distributed mobile programming //Applied Semantics. - Springer, Berlin, Heidelberg, 2002. - С. 268-332.
12. GPS - General Purpose Simulator for P2P network. // Электронный ресурс. 2018. - Режим доступа: http://www.cs.binghamton.edu/~wyang/gps.
13. Han J. Distributed hybrid P2P networking systems //Peer-to-Peer Networking and Applications. - 2015. - Т. 8. - №. 4. - С. 555-556.
14. Hillston J. A compositional approach to performance modelling. - Cambridge University Press, 2005. - Т. 12. // Электронный ресурс. 2018. - Режим доступа:http://www.dcs.ed.ac.uk/pepa/book.pdf
15. Hoare C. A. R. Communicating sequential processes //Communications of the ACM. - 1978. - Т. 21. - №. 8. - С. 666-677.
16. Huraj L., Simon M., Hosfovecky M. P2P Grid Environment as a tool for Network Integrity Testing //Актуальные проблемы современной науки. - 2015. - С. 288-291.
17. INRIA, Join Calculus homepage // Электронный ресурс. 2018. - Режим доступа:http ://mo scova. inria. fr/jo in/index. shtml
18. Leroy X. et al. The objective caml system release 3.11 //Documentation and user’s manual. INRIA. - 2008. // Электронный ресурс. 2018. - Режим доступа: http ://ftp. nluug. nl/os/Linux/distr/zenwalk/sourc e/extra/d/o c aml/o c aml-3. 12- refman.pdf
19. Li X., Wu J. Searching techniques in peer-to-peer networks //Handbook of Theoretical and Algorithmic Aspects of Ad Hoc, Sensor, and Peer-to-Peer Networks. - 2006. - С. 613-642.
20. Mandel L., Maranget L. Programming in JoCaml (tool demonstration)
//European Symposium on Programming. - Springer, Berlin, Heidelberg, 2008. - С. 108-111. // Электронный ресурс. 2018. - Режим доступа:
https://link.springer.com/content/pdf/10.1007/978-3-540-78739-6_8.pdf
21. Milner R. Communication and concurrency. - New York etc. : Prentice hall, 1989. - Т. 84.
22. Milner R. Lectures on a calculus for communicating systems //International Conference on Concurrency. - Springer, Berlin, Heidelberg, 1984. - С. 197-220.
23. Moon S. J., Yoon C. P. Information retrieval system using the keyword concept net of the P2P service-based in the mobile cloud environment //Peer-to-Peer Networking and Applications. - 2015. - Т. 8. - №. 4. - С. 596-609.
24. OpenTS. Описание языка Т++ // Электронный ресурс. 2018. - Режим доступа:http ://www. opents.net/index. php/ru/lang-tpp
25. PeerSim: A Peer-to-Peer Simulator // Электронный ресурс. 2018. - Режим доступа: http://peersim.sourceforge.net
26. Pierce B. C., Turner D. N. Pict: a programming language based on the Pi-Calculus //Proof, language, and interaction. - 2000. - С. 455-494.
27. Rizzo F. et al. Beekup: A distributed and safe P2P storage framework for IoE applications //Innovations in Clouds, Internet and Networks (ICIN), 2017 20th Conference on. - IEEE, 2017. - С. 44-51.
28. Roussopoulos M. et al. 2 P2P or Not 2 P2P? //arXiv preprint cs/0311017.
- 2003. // Электронный ресурс. 2018. - Режим доступа:
https://arxiv. org/pdf/c s/0311017.pdf
29. San Ting N., Deters R. A generic peer-to-peer network simulator
//Proceedings of the 2002-2003 Grad Symposium, CS Dept, University of
Saskatchewan. - 2003. // Электронный ресурс. 2018. - Режим доступа: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.120.6717&rep=rep1&type =pdf
30. Santoro N. Design and analysis of distributed algorithms. - John Wiley & Sons, 2006. - Т. 56.
31. Santoro N. Design and analysis of distributed algorithms. - John Wiley & Sons, 2006. - Т. 56.
32. Sewell P., Wojciechowski P. T., Unyapoth A. Nomadic pict: Programming languages, communication infrastructure overlays, and semantics for mobile computation //ACM Transactions on Programming Languages and Systems (TOPLAS). - 2010. - Т. 32. - №. 4. - С. 12. // Электронный ресурс. 2018. - Режим доступа: http ://www. cl.cam. ac. uk/~pes20/npict. pdf
33. The OverSim home page // Электронный ресурс. 2018. - Режим доступа:http ://www. overs im.org.
34. The Tribler home page // Электронный ресурс. 2018. - Режим доступа: http s ://www. tribler. o rg/P2P S imulator
35. Varela C. A., Agha G. Programming Distributed Computing Systems: A Foundational Approach. - MIT Press, 2013.
36. Varela C., Agha G. Programming dynamically reconfigurable open systems with SALSA //ACM SIGPLAN Notices. - 2001. - Т. 36. - №. 12. - С. 20¬34.
37. Zeinalipour-Yazti D., Kalogeraki V., Gunopulos D. Information retrieval techniques for peer-to-peer networks //Computing in Science & Engineering. - 2004. - Т. 6. - №. 4. - С. 20-26.
38. Zhaoqing Jia, Ruonan Rao, Minglu Li, and Jinyuan You. Random Walk Spread and Search in unstructured P2P, Department of Computer Science and Engineering, Shanghai Jiao Tong University, Shanghai, 2003.
39. Антинескул А. В., Безукладников И. И., Кон Е. Л. Использование скрытых каналов для решения задачи поиска партнёров в P2P VPN-сети // Вестник Поволжского государственного технологического университета. Сер.: Радиотехнические и инфокоммуникационные системы. - 2015. - № 3 (27). - С. 27-37.
40. Васильев И. Ю., Гайдамака Ю. В. Имитационная модель буферизации видеопотока в одноранговой сети с учетом геолокации и активности пользователей //Труды Второй молодежной научной конференции «Задачи современной информатики». - С. 58.
41. Виткова Л.А. Исследование распределенной компьютерной системы адаптивного действия // Наукоемкие технологии в космических исследованиях Земли. 2015. Т.7. №5. С. 44-48.
42. Гриценко А. В. Обзор принципа работы пиринговых сетей и изучение возможности их применения для коммутации в распределенных вычислениях //Science Time. - 2017. - №. 2. - С. 114-120.
43. Гузеев В.Б. Расширение объектно-ориентированных языков
программирования параллельными конструкциями для многопроцессорных и распределенных систем автореферат диссертации на соискание ученой степени кандидата технических наук / Российский государственный социальный университет. Москва, 2009 Режим доступа
https://dlib. rsl. ru/viewer/01003 493 833#?page=1.
44. Звягин М. Ю., Шамин П. Ю., Прокошев В. Г. Повышение эффективности алгоритма случайных блужданий путем ветвления блуждания в промежуточных узлах //Телематика-2007Ж труды XIV Всероссийской научно - методической конференции-СПб. - 2007. - Т. 1. - С. 269-271.
45. Князьков В.С. Введение в теорию графов [Электронный ресурс] / В.С. Князьков, Т.В. Волченская. — 2-е изд. — Электрон. текстовые данные. — М. : Интернет-Университет Информационных Технологий (ИНТУИТ), 2016. — 76 c. — 2227-8397. — Режим доступа: http://www.iprbookshop.ru/73674.html
46. Комаров И.И. Проектирование архитектуры инструментального средства моделирования поведения сети типа P2P / И.И. Комаров, А.А. Шлыков, М.В. Назыров и др. //Альманах научных работ молодых ученых XLV научной и учебно -методической конференции Университета ИТМО. - 2016. - Том 5. - С. 274-276.
47. Кручинин С. В. Типы децентрализованных сетей и вариант построения децентрализованной сети полного стека протоколов //Известия Волгоградского государственного технического университета. - 2016. - №. 11 (190).
48. Математика. Дискретная математика [Электронный ресурс] :
учебник / В.Ф. Золотухин [и др.]. — Электрон. текстовые данные. — Ростов-на- Дону: Институт водного транспорта имени Г.Я. Седова - филиал
«Государственный морской университет имени адмирала Ф.Ф. Ушакова», 2016. — 129 с. — 2227-8397. — Режим доступа: http://www.iprbookshop.ru/57348.html
49. Мировой сетевой трафик: настоящее и будущее // Электронный ресурс. 2018. - Режим доступа: https://nag.ru/articles/article/31463/mirovoy- setevoy-trafik-nastoyaschee-i-buduschee.html
50. Молчанов А.Н., Белов Ю.С. Обзор технологий распределенных вычислительных систем // Электронный журнал: наука, техника и образование. 2015. № 3 (3). С. 43-52.
51. Москалец Н. В., Поповская Е. О., Тарасов К. А. Оптимизация суммарного взвешенного времени обслуживания в пиринговой сети //Научный альманах. - 2016. - №. 6-2. - С. 110-116.
52. Наглядный индекс развития сетевых технологий // Электронный ресурс. 2018. - Режим доступа: https://www.cisco.com/c/ru_ru/about/press/press- releases/2017/06-09b. html
53. Сайт проекта МС#. // Электронный ресурс. — 2018. — Режим доступа:http://www.mcsharp.net.
54. Тель, Ж. Введение в распределенные алгоритмы: монография / Жерар Тель. - М.: Изд-во МЦНМО, 2009.-616 с.