Научная статья на тему 'Универсальная инструментальная среда имитационного моделирования проблемно-ориентированных одноранговых информационных сетей'

Универсальная инструментальная среда имитационного моделирования проблемно-ориентированных одноранговых информационных сетей Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
226
64
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Шишаев М. Г., Широкова З. В.

В работе рассмотрена структура, принципы реализации и функционирования универсальной инструментальной среды имитационного моделирования одноранговых информационных сетей. Выделены типовые функции моделирования одноранговой сети, предложена обобщенная модель функционирования сетей с равнозначными узлами, рассмотрены методы и свойства объектных классов, реализующих имитационную модель сети. Ил.3, библиогр.5.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Шишаев М. Г., Широкова З. В.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Single Source Environment in Simulation of ProblemOriented Peer-to-Peer Information Networks

The paper studies structure, implementation and operation procedures for a single source environment in simulation of peer-to-peer information networks. Typical functions for a peer-topeer network modelling are singled out. A generalized model of equisignificant nodes networks operation is proposed. The article considers properties of object classes implementing a network simulation model. Fig. – 3, Ref. – 5.

Текст научной работы на тему «Универсальная инструментальная среда имитационного моделирования проблемно-ориентированных одноранговых информационных сетей»

Міиик ночных тки 2011

УНИВЕРСАЛЬНАЯ ИНСТРУМЕНТАЛЬНАЯ СРЕДА ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ ПРОБЛЕМНО-ОРИЕНТИРОВАННЫХ ОДНОРАНГОВЫХ

ИНФОРМАЦИОННЫХ СЕТЕЙ*

М.Г. Шишаев, З.В. Широкова

Одноранговые информационные сети, характеризуемые симметричной функциональностью узлов (в отличие от систем с выделенным сервером, где по выполняемым функциям узлы делятся на два вида -серверные и клиентские), являются в настоящее время предметом довольно интенсивных исследований и разработок [1]. Наиболее привлекательной характеристикой одноранговых сетей является их высокая отказоустойчивость и теоретически неограниченная масштабируемость и наращиваемость. «Платой» за эту привлекательность является относительно высокая сложность алгоритмов функционирования сети. При этом, в силу непредсказуемости поведения отдельно взятых узлов (включение/выключение узла из сети, активность использования узлом функций сети, и т.д.), оценка возможных состояний одноранговой сети становится сложной задачей. Вместе с тем, качество алгоритмов работы узлов одноранговой сети (пиров) определяет ключевые потребительские характеристики сети: связность, показатель доступности, скорость обслуживания запросов, доступная пропускная способность, и другие. В условиях, когда количество и поведение узлов одноранговой сети в каждый момент времени невозможно точно рассчитать, эффективным средством оценки качества функционирования некоторого нового алгоритма работы сети является имитационное моделирование. Работа над созданием и совершенствованием алгоритма заключается в этом случае в вычислительном эксперименте, сопряженном с многоратными прогонами имитационной модели одноранговой сети при различных начальных условиях, в том числе - различных параметрах алгоритма работы пиров, а также и при различных собственно алгоритмах. Для осуществления подобного моделирования требуется, таким образом, многократная перенастройка имитационной модели, выражающаяся не только в настройке имеющихся в модели переменных и констант, но и в существенном изменении алгоритмической составляющей модели. Вместе с тем, при изменении алгоритмов функционирования пиров, составляющих сеть, в ходе работы одноранговой сети сохраняется некоторая обобщенная логика ее работы: узлы сети должны располагать некоторыми данными и обеспечивать

* Работа выполнена по программе ОНИТ РАН «Фундаментальные основы информационных технологий и систем» (проект № 2.6).

Работа поддержана грантом РФФИ (проект N° 08-07-00301-а).

выполнение некоторого набора обязательных функций, независимо от конкретной реализации сети. Это дает принципиальную возможность создания унифицированной имитационной модели одноранговой сети, независимой от конкретных алгоритмов функционирования узлов. Разработка такой модели облегчила бы задачу исследователей, поскольку отпала бы необходимость создания модели «с нуля» для каждой последующей реализации сети.

Одноранговая сеть - сложная динамичная система, все объекты которой функционируют в собственном уникальном режиме. Поведение каждого отдельно взятого узла нельзя предугадать заранее, как и общую динамику развития такой сети. Кроме того, существует множество алгоритмов функционирования одноранговых сетей. Все это делает задачу построения универсальной (подходящей для большинства реализаций) модели достаточно сложной. Однако можно попытаться учесть некоторые типовые задачи, решаемые узлами в любой одноранговой сети, а также наборы данных, хранимых на узлах-участниках пиринговой сети. Диаграмма последовательности, описывающая типовую логику функционирования узла одно-ранговой сети, представлена на рис.1.

Среди таких «типичных» задач можно выделить следующие:

- регистрация нового узла в сети;

- транслирование адресных баз;

- формирование базы локально хранимых ресурсов;

- генерация и обслуживание запросов на поиск какого-либо ресурса;

- выход узла из сети.

Поскольку каждый алгоритм может, помимо описанных выше, реализовывать некоторые дополнительные функции, необходимо предусмотреть возможность расширения данного перечня задач так, чтобы при реализации конкретного алгоритма можно было воспользоваться заготовленным шаблоном. Так, например, для класса децентрализованных сетей на основе DHT (Distributed Hash Table) [2], поисковый сервис в которых реализован с помощью таблицы хешей, можно выделить подзадачу получения хеш-ключа данного ресурса (примерами таких сетей являются Freenet, Chord, BitTorrent).

Описанная совокупность функций будет формировать алгоритмическую (функциональную) составляющую модели узла.

Среди данных, которые обязательно присутствуют на узлах в любой реализации пиринговых сетей, можно выделить следующие:

- адрес данного узла (в физической или оверлейной сети - в зависимости от реализации);

- адресная база;

- база локально хранимых данных.

Диаграмма последовательности действий "Сеанс работы однорангового клиента"

: HOST

: HOST

: HOST

: HOST

1: Registration(Addr)

2: Write_Addr_Base(Addr)

<

3: Trans_Addr_Base(List)

4: Trans_Addr_Base(List)

5: Trans_Addr_Base(List)

<---------------------------

6: Form_Local_Data()

1<

7: Find_Reguest(KeyString)

1<

8: [!Find_Reguest(KeyString)]Find_Reguest(KeyString,TTL)

10: [Find_Reguest(KeyString)]Repl

12: [TTL=0]Reply(NULL)

9: Find_Reguest(KeyString)

<

y(HOST *)

11: [!Find_Reguest(KeyStjirig)] Find_Reguest(KeyString,TTL-1)

13: Exit(Addr)

14: Write_Addr_Base(Addr)

<

15: Trans_Addr_Base(List)

16: Trans_Addr_Base(List)

Рис.1. Типовая последовательность действий узла одноранговой сети

Аналогично для расширения возможностей данной модели необходимо ввести дополнительные атрибуты. Такими атрибутами могут быть, например, количество узлов в данном сегменте для сети Netsukuku [3], или маркер проблемной ориентации узла для проблемно-ориентированных сетей, основанных на позиционировании узлов и запросов в семантическом пространстве ключей

[1, 4, 5]. Также необходимо ввести поля для хранения наблюдаемых характеристик моделируемой одноранговой сети. Такими полями являются:

1. Величина генерируемого трафика (как «полезного», так и служебного).

2. Общее количество инициированных данным узлом поисковых запросов.

3. Количество успешных поисковых запросов.

4. Среднее количество ретрансляций («хопов») для каждого из успешных запросов.

Объединяя структуру данных узла с его алгоритмической составляющей, получаем формальное описание узла как активного члена сети, имеющего свои параметры и алгоритмы функционирования.

Рассматриваемая инструментальная среда подразумевает агентный подход к имитационному моделированию динамики одноранговой сети. Соответственно, в рамках данной работы каждый узел сети представляется в виде обособленного агента. Программно он реализован как объект класса Host, в котором объявлены следующие свойства и методы:

- собственно адрес данного узла My Address;

- адресная база (структура, содержащая список адресов узлов, известных данному) - AddressBase (две данные структуры описываются в зависимости от конкретной реализации);

- база локально хранимых данных - LocalData;

- величина генерируемого трафика - служебного SerTrafValue и полезного EffTrafValue;

- дополнительные переменные для использования в рамках конкретных алгоритмов, представленные в виде связного списка {AddVarl, AddVar2, ...} ;

- метод, реализующий запрос на добавление данного узла в сеть Add();

- метод, реализующий запрос на исключение данного узла из сети Del();

- метод, реализующий пополнение адресных баз Distribute();

- метод, реализующий поисковый запрос Find();

- метод, реализующий вычисление ключа для сетей DHT GetKeyO;

- дополнительные методы для использования в рамках конкретных алгоритмов AddFuncl, AddFunc2, ....

Класс имеет лишь одно скрытое поле (LocalData), обращение к нему возможно только через функцию Find(). Методы Add() и Distibute() объявлены как чисто виртуальные, поскольку в каждом конкретном алгоритме существует своя реализация данного метода, и они могут существенно отличаться друг от друга. Соответственно, класс Host является абстрактным и для работы с ним необходимо создавать класс-наследник, который будет являться реализацией конкретного алгоритма и в нем будут реализованы все виртуальные функции. Следует, однако, отметить, что если узел будет включаться в оверлейную сеть, то он получает адрес в рамках метода Add(). Метод Find() объявлен как виртуальный, т.к. во многих алгоритмах присутствует величина TTL, показывающая количество ретрансляций данного поискового запроса. Значение TTL является первым, передаваемым в функцию параметром. Вторым параметром является строковое значение FindString, означающее непосредственно текст запроса (либо имя файла, либо ключевое слово для поиска). Исходное значение TTL выставляется равным TTL0 (у первичного запроса). Каждый узел, получивший данный запрос, осуществляет поиск FindString в LocalData. Если поиск завершен со значением true, узел обслуживает запрос, т.е. передает запрошенный ресурс узлу-источнику и уничтожает запрос. Если же поиск не дал результата, то узел передает в соответствии с конкретным алгоритмом другим узлам из AddressBase, причем с каждым

последующим переходом значение ТТЬ уменьшается на 1 (т.е. ретранслированный запрос всегда имеет ТТЬ, меньший ТТЬ0). При достижении значения ТТЬ=0 запрос уничтожается.

Общим требованием к функциональности конкретных реализаций перечисленных выше методов является необходимость учета трафика, генерируемого каждым видом запросов (служебный или полезный в зависимости от типа запроса), путем инкрементирования соответствующего свойства класса значением, определяемым особенностями используемого алгоритма работы пиров.

На этапе инициализации нового узла-агента, конструктор класса заполняет соответствующие поля инстанцируемого экземпляра. Адресная база на данном этапе содержит только один адрес - свой собственный. В зависимости от реализации конкретного алгоритма может использоваться либо физический 1р-адрес, либо присвоенный поверх сетевой инфраструктуры адрес оверлейной сети.

Блок-схемы обобщенных алгоритмов инициализации узла и обработки поискового запроса представлены на рис. 2 и 3, соответственно.

Сохранение в поле адреса MyAddress физического адреса узла

Занесение адреса MyAddress в адресную базу AddressBase узла

Формирование списка локальных ресурсов LocalData

Выставление в ноль служебных переменных SerTrafValue, EffTrafValue

Рис. 2. Процедура инициализации узла

Для описания высокоуровневого объекта (одноранговой сети), в рамках которого функционируют все агенты, используется класс P2PNet. Среди полей этого класса - поле int NumberNodes, определяющее среднее количество экземпляров класса Host инстанцируемых в рамках сеанса моделирования одноранговой сети.

Рис. 3. Обобщенная процедура обработки поискового запроса

Данная величина может изменяться со временем в соответствии с заданным законом. Также в рамках класса объявлены поля:

- количество поисковых запросов в единицу времени - float NumberFind,

- средний объем запрашиваемых ресурсов -float AverageVolume,

- пропускная способность сети - int Broadcast,

- вероятность нахождения узла в активном состоянии - float ProbabilityOn.

Как и в случае класса HOST, для программного описания одноранговой сети в целом необходимо обеспечить возможность расширения набора полей в соответствии с требованиями конкретных реализаций алгоритмов. Например, такой переменной может быть максимальное отклонение маркера проблемной ориентации запросов, инициированных данным агентом, от медианы - float MarkerVariation.

Далее представлены краткие описания методов класса P2PNet, реализующих функциональность модельного представления одноранговой сети в целом.

Метод AnalizeTraf служит для оценки объема служебного (SER) и полезного (EFF) трафика, генерируемого одним узлом в единицу времени, и определяет его долю в общей пропускной способности сети. Метод AverageHops определяет среднее количество «хопов», необходимое для выполнения поисковых запросов (определяется по успешным запросам как (TTL0 - TTL)). Для этого в качестве возвращаемого параметра в методе Find(int, char*) присутствует целочисленное значение, означающее количество «хопов» от узла-инициатора запроса до узла с искомым ресурсом. Метод SuccessRequests определяет процент успешных запросов от общего их числа. Также в рамках класса объявлены дополнительные методы, которые переопределяются для конкретной сети.

Инструментальная среда имеет модульную структуру. Основным модулем является ядро системы, реализующее общие функции имитационного моделирования динамики одноранговой сети:

- инициализация и терминирование агентов-

узлов;

- генерация поисковых запросов;

- ведение счетчиков количественных показателей функционирования одноранговой сети;

- визуализация результатов моделирования;

- сервисные функции инструментальной среды.

Реализация конкретных алгоритмов функционирования одноранговых узлов вынесена в отдельные программные модули, оформляемые в виде СОМ-сервера. При этом интерфейс сервера обеспечивает доступ к объектным методам, реализующим функциональность агента-узла.

Таким образом, рассмотренная в данной работе инструментальная среда обеспечивает существенное снижение трудозатрат на создание и исследование эффективности различных алгоритмов работы одноранговых сетей. Это достигается за счет повышения степени повторного использования программных реализаций типовых компонентов одноранговой сети.

Литература

1. Шишаев, М.Г. Одноранговые технологии распределенных ИС инноваций / М.Г. Шишаев // Информационные технологии в региональном развитии. -Апатиты, 2008. - Вып.УШ. - С.45-52.

2. Описание DHT протокола. - Режим доступа: http://www.bittorrent.org/beps/bep_0005. html

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

3. Netsukuku Community. - Режим доступа: http://www.netsukuku.org

4. Шишаев, М.Г. Технология поддержки распределенного адресного реестра в одноранговых системах с неявной иерархической организацией /М.Г. Шишаев // Информационные технологии в региональном развитии. -Апатиты, 2008. - Вып. VIII. - С.53-56.

5. Стохастическая имитационная модель динамики одноранговой коммуникационной сети / Шишаев М.Г. и др. // Информационные технологии в региональном развитии. - Апатиты, 2009. - Вып. IX.

- С.67-69.

i Надоели баннеры? Вы всегда можете отключить рекламу.