Научная статья на тему 'Архитектура математическо-программных средств, представляющих собой узлы децентрализованной системы хранилищ единой коллекции электронных образовательных ресурсов (ЦОР), способной поддерживать распределенную сеть узлов'

Архитектура математическо-программных средств, представляющих собой узлы децентрализованной системы хранилищ единой коллекции электронных образовательных ресурсов (ЦОР), способной поддерживать распределенную сеть узлов Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
70
15
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЭЛЕКТРОННАЯ БИБЛИОТЕКА / ЦИФРОВЫЕ ОБРАЗОВАТЕЛЬНЫЕ РЕСУРСЫ / ДЕЦЕНТРАЛИЗОВАННОЕ ХРАНИЛИЩЕ / ПРОЕКТИРОВАНИЕ ПРОГРАММНЫХ СРЕДСТВ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Гиренко Александр Федорович, Новопашин Максим Александрович

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

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

Текст научной работы на тему «Архитектура математическо-программных средств, представляющих собой узлы децентрализованной системы хранилищ единой коллекции электронных образовательных ресурсов (ЦОР), способной поддерживать распределенную сеть узлов»

Гиренко А.Ф.1, Новопашин М.А.2

Федеральное государственное автономное учреждение Государственный научно-исследовательский институт информационных технологий и телекоммуникаций «Информика», г. Москва, к.ф.-м.н., начальник отдела web-технологий, gaf@informika.ru

2Федеральное государственное автономное учреждение Государственный научно-исследовательский институт информационных технологий и телекоммуникаций «Информика»,

г. Москва, аспирант, maxboar@gmail.com

АРХИТЕКТУРА МАТЕМАТИЧЕСКО-ПРОГРАММНЫХ СРЕДСТВ, ПРЕДСТАВЛЯЮЩИХ СОБОЙ УЗЛЫ ДЕЦЕНТРАЛИЗОВАННОЙ СИСТЕМЫ ХРАНИЛИЩ ЕДИНОЙ КОЛЛЕКЦИИ ЭЛЕКТРОННЫХ ОБРАЗОВАТЕЛЬНЫХ РЕСУРСОВ (ЦОР), СПОСОБНОЙ ПОДДЕРЖИВАТЬ РАСПРЕДЕЛЕННУЮ СЕТЬ

УЗЛОВ

КЛЮЧЕВЫЕ СЛОВА

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

АННОТАЦИЯ

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

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

На сегодня Единая коллекция ЦОР (http://school-collection.edu.ru/) стала одним из самых популярных федеральных образовательных ресурсов для общеобразовательных учреждений РФ. Согласно статистическим данным Ramblers Top100, LiveInterne к сайту Коллекции обращаются до 40 тыс. уникальных пользователей в день, а в рейтинге образовательных ресурсов Рунета она еженедельно занимает 9-11 места.

В настоящее время Коллекция насчитывает более 111 тыс. различных учебных материалов. Так в Коллекции представлены наборы цифровых образовательных ресурсов к большому количеству учебников, рекомендованных Минобрнауки к использованию в школах России, инновационные учебно-методические разработки, разнообразные тематические и предметные коллекции, а также другие учебные, культурно-просветительские и познавательные материалы.

Разработка децентрализованной системы хранения образовательных ресурсов на базе системы хранилищ электронных образовательных ресурсов Единой коллекции ЦОР позволит создать единое информационное пространство для обеспечения доступа и распространения ресурсов.

Децентрализованная система и её узлы в частности оперируют четырьмя видами данных:

• потоковые и транзитные данные;

• данные сохраненные в виде распределенного кеша;

• файловые данные;

• данные генерируемые самой системой в процессе функционирования.

Потоковые данные — это данные, которые непрерывно получаются пользователем от источника потокового вещания. К таким данным относятся, например, аудио и видео трансляции

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

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

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

Принципиальная схема структуры контентной единицы представлена в соответствии с рисунком 1.

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

Файл

Хеш-сумма

~~Блок-

"Размер" 5п«:а

Файл

Хеш-сумма

Ьлок данных

Размер

блока

Файл Х6Ш-сумгла

БЛОк чанных

Размер блока

Файл

Хйш-сумма

Блок данных

Размер блока

Контентная единица

Рисунок 1 — Принципиальная схема контентной единицы

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

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

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

Метаданные описывают контентную единицу, как с пользовательской точки зрения, так и с точки зрения системы.

Метаданные могут содержать в себе следующие виды информации:

• системная информация;

• идентификационная информация;

• описательная информация.

Системная информация представляет собой карту блоков, которые представлены в виде

строки.

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

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

• название;

• текстовое или гипертекстовое описание;

• сопутствующие гипертексту файлы;

• изображения;

• ключевые слова;

• информация об источнике (распространителе).

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

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

Общий объем контентной единицы рассчитывается по формуле:

5 = 2 St,

¿=1

где

5¿.=( 1 — к,) +k¿ (5,) — объем ьго файла, при этом (1-к,.) 5,. - общая часть к, (5,) - отличающая часть

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

5 = 2 (О +к,5,) , следовательно получаем формулу

¿=1

5 = №Б + 2 к,5,

¿=1

При этом передаваемый объем файлов с помощью правильно рассчитанных блоков можно рассчитать по формуле

5 передав . = О + 2 к ¿5, .

¿ = 1

Разница между фактическим и передаваемым объемами (№ — 1) О — показывает экономию данных в байтах при передаче.

Данные, сохраненные в виде распределенного кеша, представляют собой набор групп, каждая из которых включает в себя: размер блока данных, хеш-сумму блока данных, блок данных и набор статистических параметров.

В набор статистических параметров входят:

• время последнего обращения;

• время предыдущего обращения;

• относительная частота обращений;

• число обращений к данным.

При поступлении нового запроса к данным статистические параметры меняются в зависимости от времени последнего доступа и накопленных ранее данных. Эти параметры рассчитываются по следующим формулам:

.т _(ЬТу+1-Тя) + N / (у N + 1

- формула расчета среднего времени между обращениями для N+1 обращения с учетом предыдущих статистических значений ,

( _ N + 1

( ^ N + 1 1 N) ' I N

- формула расчета нового значения относительной частоты обращений к данным для для N+1 обращения с учетом предыдущих статистических значений, где:

- (N -предыдущая относительная частота обращения;

- TN — предыдущее время обращения;

- (N+1 — новое значение относительной частоты обращения;

- TN+1 — последнее время обращения;

- N — число обращений;

- ^TN+1 — среднее время между обращениями.

После получения метаданных и всех блоков контентной единицы в распределенном кеше данных, воссоздание изначального набора данных производится по схеме в соответствии с Рисунком 2.

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

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

Когда контентная единица загружена, существует несколько видов работы с ее данными.

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

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

Контентная единица представляет собой узел виртуальной файловой системы, как показано в соответствии с Рисунком 3.

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

Программное обеспечение отдельного узла децентрализованной системы строится по модульному принципу. Ядро системы представляет собой исполняемый файл который может функционировать в виде сервиса операционной системы или в виде фонового процесса. С целью максимально возможного упрощения кода ядра системы, чтобы иметь возможность создавать "легкие" узлы или разворачивать программное обеспечение узла в условиях ограниченных аппаратных ресурсов, большинство функций переложено на внешние системные модули системы, например, ядро практически полностью ограничивается в отношении дисковых операций, для этого в системе должен быть установлен специальный модуль. Это позволит, например, хранить распределенный кеш данных в файловой системе, либо с помощью другого модуля — в базе данных, что для ядра системы будет представлять аналогичные операции с модулем. Поэтому большинство функций реализуемых в ядре системы, связаны с обработкой socket-соединений, исполняемых потоков (нитей) и оперированием очередями из пакетов данных в оперативной памяти. Принципиальная схема архитектуры программных средств узла показана в соответствии с Рисунком 4.

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

Рисунок 4 — Принципиальная схема архитектуры программных средств узла

Можно выделить следующие группы модулей:

• модули хранения кеша;

• модули шифрования трафика;

• модули подключаемой логики;

• рабочие модули.

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

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

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

• функциональной библиотеки содержащей скомпилированный код;

• внешнего, компилируемого в операционный код скрипта;

• внешнего интерпретируемого скрипта;

• параметрического уравнения особым образом записанного в файл;

• набора конфигурационных переменных.

Рабочие модули призваны выполнять функции понятные пользователю системы, такие

как:

• сбор статистических и аналитических данных;

• репозиторий модулей системы;

• обновление системы и отдельных её модулей;

• веб-интерфейс системы;

• подсистема видеоконференций.

К ним же относится и модуль регионального хранилища образовательных ресурсов.

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

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

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