Файл: Операции, производимые с данными (Блок-схема шифра гласных букв).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 05.04.2023

Просмотров: 57

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Введение

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

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

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

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

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

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

Стоить заметить, что концепция распределенных вычислений сложнее для восприятия. При этом, на данный момент есть не так много проектов, где предпринимаются попытки визуализировать алгоритм в действии. Одним из самых известных является реализация raft.io[1], которая на основном информационном сайте алгоритма Raft[2] показывает принцип его работы с помощью анимации. Визуализация дает базовое понимание о работе алгоритмаRaft, но она реализована для одного конкретного алгоритма и для одного конкретного тестового случая.


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

Для этой цели разрабатывается проект “Parallel and Conquer” (PAC). Проект состоит из backend и frontend частей, взаимодействующих между собой. Frontend-часть отвечает за визуализацию данных для демонстрации, тестирования и дебага. Backend-часть реализует алгоритмы и тестовые сценарии для некоторых из них (на данный момент это Алгоритм пекарни Лэмпорта (LamportMutex)[3], Paxos[4], Raft). В данной работе будет описана frontend-часть проекта.

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

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

  1. Простота использования
  2. Отсутствие зависимости от платформы
  3. Возможность отобразить основные алгоритмы, изучаемые в университетах, показав их особенности
  4. Возможность визуализации данных пользователя, вне зависимости от того, какие языки программирования ему известны

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

Глава 1. Обзор существующих решений операций, производимые с данными

1.1. Понятие и сущность данных

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


Xtango[5]— это система анимации данных общего назначения, которая помогает программистам реализовывать анимированное отображение своих собственных данных. Недостатки этой системы:

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

Polka[6]— это система анимирования, которая подходит для визуализации однопоточных и параллельных программ. Основным недостатком этой реализации является то, что она требует Motifили Xaw (набор виджетов Athena), поэтому пользователь должен приложить дополнительные усилия для использования этой системы.

“A tool for interactive visualization of distributed algorithms”[7](название проекта не указано) — это инструмент для визуализации распределенных вычислений. Он имеет ограниченный список данных, написанных на Java, но пользователь может реализовать свой собственный алгоритм, вызывая определенные методы из своего Java- кода. Требование знать определенный язык программирования может помешать некоторым студентам использовать этот инструмент визуализации, и в этом заключается недостаток данного решения.

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

Проект ViSiDiA[9]— это самый современный из перечисленных инструмент для визуализации с настраиваемым интерфейсом. Недостатки этого проекта заключаются в следующем:

  1. пользователь должен знать и использовать язык программирования Java
  2. для визуализации пользовательского проекта в код должны быть встроены методы библиотеки ViSiDiA
  3. загрузка проекта с официального сайта является сложной задачей из-за необходимости прямого контакта с разработчиками

Таким образом, существующие на данный момент решения имеют недостатки, которые могут быть существенны при выборе инструмента для визуализации и тестирования. “Parallel and Conquer” старается учесть проблемы описанных выше реализаций и создать простое в использовании приложение, которое будет понятно пользователю.

В отличие от операций с атрибутами, операции с данными по определению имеют размер 8 Кбайт. (Это размер блока данных, определенный NFS. Сравнительно недавно анонсированная версия протокола NFS+ допускает блоки данных размером до 4 Гбайт. Однако это существенно не меняет саму природу операций с данными). Кроме того, в то время как для каждого файла имеется только один набор атрибутов, количество блоков данных размером по 8 Кбайт в одном файле может быть большим (потенциально может достигать несколько миллионов). Для большинства типов NFS-серверов блоки данных обычно не кэшируются и, таким образом, обслуживание соответствующих запросов связано с существенным потреблением ресурсов системы. В частности, для выполнения операций с данными требуется значительно большая полоса пропускания сети: каждая операция с данными включает пересылку шести больших пакетов по Ethernet (двух по FDDI). В результате вероятность перегрузки сети представляет собой гораздо более важный фактор при рассмотрении операций с данными.

Как это ни удивительно, но в большинстве существующих систем доминируют операции с атрибутами, а не операции с данными. Если клиентская система NFS хочет использовать файл, хранящийся на удаленном файл-сервере, она выдает последовательность операций поиска (lookup) для определения размещения файла в удаленной иерархии каталогов, за которой следует операция getattr для получения маски прав доступа и других атрибутов файла; наконец, операция чтения извлекает первые 8 Кбайт данных. Для типичного файла, который находится на глубине четырех или пяти уровней подкаталогов удаленной иерархии, простое открывание файла требует пяти-шести операций NFS. Поскольку большинство файлов достаточно короткие (в среднем для большинства систем менее 16 Кбайт) для чтения всего файла требуется меньше операций, чем для его поиска и открывания. Последние исследования компании Sun обнаружили, что со времен операционной системы BSD 4.1 средний размер файла существенно увеличился от примерно 1 Кбайт до немногим более 8 Кбайт.

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


1.2. Data Warehouse (хранилище данных) и OLAP

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

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

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

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