Антиплагиат (1220030), страница 8
Текст из файла (страница 8)
Для автоматизации работы с приложениямииспользуется утилита CouchApp.Couch Реализована в рамках подхода NoSQL. Для хранения данных используется[10]JSON, для реализац ии MapReduce-запросов – JavaScript. Одной из особенностей СУБД является поддерж карепликации с несколькими ведущими узлами.Следуя подходу NoSQL, Couch не хранит данные и связи в таблицах. Вместо этого каждая база данных – набор независимыхдокументов. Каждый документ содержит свои собственные данные и независимую схему.
Приложение может получить доступ кнескольким базам данных, например, хранящейся на мобильном телефоне пользователя и на сервере. Метаданные документасодержат информацию о версии, позволяя объединять данные и разрешать любые противоречия, которые могли появиться вмомент, когда базы данных были разъединены.Для управления конкурентным доступом используется механизмMVCC, благодаря чему возможно избежать необходимостиблокировки файла базы данных во время записи. Разрешение конфликтов относится к сфере ответственности логики приложения,разрешение конфликта обычно включает в себя объединение данных в один документ, а затем старый документ удаляется.Couch имеет следующие особенности:– данные сохраняются не в строках и колонках, а в виде JSON- подобных документов, моделью которых является не таблицы, адеревья;– связи между таблицами или записями принципиально не поддерживаются, соответственно операция объединения (JOIN) междутаблицами не определена;– для построения индексов и выполнения запросов используются функции[10]представления (view), которые подробнее рассмотрены в разделе 3.2;http://dvgups.antiplagiat.ru/ReportPage.aspx?docId=427.24085263&repNumb=116/2227.04.2016Антиплагиат–одновременно может быть запущено несколько потоков для чтения базы данных и только один – для записи;– при обработке данных с помощью функций-представлений используется упрощённая модель технологииMapReduce, чтопозволяет производить параллельные вычисления, в том числе и на многоядерном процессоре;– поддерживается вертикальное масштабирование;– внешний интерфейс ( API) к данной СУБД построен на основе архитектуры [10]REST(рисунок 2.6).Рисунок 2.6 – REST APIБаза данных, отдельные записи, отображения и запросы – ресурсы, которые имеют уникальный адрес ([10]URL) и поддерж ивают операц ии: GET – получение ресурса; POST – создание ресурса; PUT – обновление ресурса ELETE – удаление ресурса[42].3 ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ3.1 Схема кластераВ рамках решения поставленной задачи к операц ионной системе серверов предъявляются следующ ие требования:–возможность использования всей аппаратной мощности серверов;– надёжность и стабильность работы;– безопасность системы.[28]Было принято решение использовать операц ионную систему семейства Linux, так как операц ионные системы Linux имеют рядпреимущ еств перед Windows.Linux отличается более высоким уровнембезопасности системы по сравнению с системами, разрабатываемыми в закрытых проектах.[28]Так ж е для Linux практически отсутствуют вирусы.Важ но отметить более стабильную работу системы при длительном непрерывном использовании.Дистрибутивы на основе Linux имеют широкое применение в различных областях: от встраиваемых систем до суперкомпьютеров,надёжно удерживают лидирующие позиции на рынке серверов, как правило, в составе комплекса серверного программногообеспечения LAMP [43].В [28]качестве дистрибутива выбранной операц ионной системы сервера выступает 64-битная версия Xubunta 14.04, которая в полной мереудовлетворяет предъявляемым требованиям и является свободно распространяемой.Ключевыми особенностями, повлиявшими на выбор данного дистрибутива являются:– низкие системные требования самой системы;–высокая безопасность;– повышенная надёжность;– использование современных технологий, включая виртуализацию;– широкий выбор программного обеспечения;– обеспечение наиболее полной совместимости с другими операционными системами;– возможность управления компьютером через веб-интерфейс.[28]Для решения поставленных задач был сконфигурирован кластер представленный на рисунке 3.1, Команды по конфигурац ии представленыв прилож ении А.На операц ионную систему установлен ocker, в котором создано три контейнера в качестве фронт-сервера используется nginx онхранит и предоставляет во внешнюю сеть данные, организованные в виде веб-страниц; отвечает за организацию запросов кбазам данных,[28]CF-сервер Railo, выполняющ ий команды серверного языка ColdFusion, в качестве сервера базы данных выступает Couch.Рисунок 3.1 – Модель кластераОтдельно мож но выделить модуль couchapp который расширяет возмож ности работы с Couch позволяя использовать код JavaScript насервере.Несмотря на то, что данная модель является достаточно простой, на данном э тапе она показывает себя с полож ительной стороны в ходедальнейшего исследования данная модель будет расширена и доработана.3.2 Исходные данныеНа портале открытых данных Российской Федерац ии[44], на май 2016 года обеспечен доступ к 7915 базам данных, представленных в 16группах, среди которых образование, транспорт и здоровье.Основными принц ипами открытых данных согласно [45] являются:– первичность;– полнота;– актуальность;– пригодность к машинной обработке;– отсутствие дискриминац ии по доступу;– отсутствие неизвестных форматов;– лиц ензионная чистота.Предлож им следующ ую классификац ию открытых данных, содерж ащ ихся в перечисленных источниках.Данные поступают в различных представлениях, так по форме представления данных мож но выделить:– текстовые данные;– табличные данные;– графические данные;– аудио и видео файлы;– числовые данные текстом.С точки зрения описания характеристик объекта выделяются:– количественные данные;– качественные данные.http://dvgups.antiplagiat.ru/ReportPage.aspx?docId=427.24085263&repNumb=117/2227.04.2016АнтиплагиатПо виду данных мож но выделить:– статистические данные по различной тематике;– данные об объектах реального мира;– фактографические данные.Полученные данные имеют неструктурированный формат, так как данные могут быть как в числовом, количественном, категориальном,так и текстовом формате, степень преобладания того или иного типа данных представлена на рисунке 3.2.Рисунок 3.2 – Превалирующ ие типы информац ии для разных сфер деятельностиТаким образом в современных условиях нуж но обрабатывать большие объемы неструктурированных данных различных типов, а для э тойработы преж ние методы не подходят.
Нуж ны новые методики хранения и обработки данных.3.3 Описание базы данных.Couch является документо-ориентированной СУБД, представляет собой неструктурированное хранилищ е все данные которого хранятся ввиде записей. В качестве web-интерфейса для управления БД Couch выступает Futon, после настройки сервера он доступен дляобращ ения по адресу http://localhost:5984/_utils/. Записи базы данных в Futon представлены на рисунке 3.3.Рисунок 3.3 – Записи базы данных в FutonЛюбой документ в базе данных мож ет содерж ать произвольное количество полей и влож ений, которые представляют собой ссылки нафайлы хранимые в БД. В результате Couch позволяет работать с файлами независимо от самого документа.Доступ к БД производится при помощи протокола НТТР с использованием RESTful JSON API, что позволяет обращаться к данным втом числе из выполняемых в браузере web-приложений.
В качестве единицы хранения данных выступает документ в виде JSONобъекта, имеющий уникальный идентификатор, версию и содержащий произвольный набор именованных полей в формате ключ/значение.[27]Пример документа, описывающ его объект «город Хабаровск», представлен на рисунке 3.4.Рисунок 3.4 – Объект базы данныхВ рамках разработанной конц епц ии для каж дого объекта обязательными являются поля:– _id – уникальный идентификатор объекта;– _rev – версия объекта;links – поле хранящ ее ссылку или набор ссылок на файлы;content – набор записей, каж дая запись в свою очередь имеет поля : id – идентификатор записи, attr_index_displayname – описываетполож ение поля на карточке объекта, type – описывает тип поля на карточке объекта, value – значение поля, title – заголовок поля,attr_source_tpl – значение _id объекта связанного с данным полем;tpl – идентификатор связи;tpltitle – название группы связанных объектов;type – тип объекта;crm – запись содерж ащ ая поля: comment – комментарий к объекту, modified – дата и время последнего изменения, created – дата и времясоздания.Couchхранит данные в формате упорядоченного списка и позволяет производить частичную репликацию данных между несколькими БДв режиме «мастер-мастер» с одновременным обнаружением и разрешением конфликтных ситуаций.
Каждый сервер хранит свойлокальный набор данных, синхронизированный с другими серверами, которые могут переводиться в offline-режим и периодическиреплицировать изменения.[27]Пример дерева репликац ии представлен напредставлены в прилож ении Б.рисунке3.5. Настройки репликац ии, выполненныедля рассматриваемогосервераРисунок 3.5 – Дерево репликац ииВ рамках решения задачи создания информац ионной системы дистанц ионного образование на языке ColdFusion было написано серверноеприлож ение для создания и редактирования документов базы данных Couch. Данное прилож ение имеет возмож ности идентичные Futon,однако, более удобно, и имеет конструктор шаблонов объекта и графический интерфейс.
Графический интерфейс программы, а такж еспроектированная база данных представлены на рисунке 3.6.Рисунок 3.6 – Интерфейс прилож ения для проектирования БДТак как БД не структурирована ее структуру описать невозмож но, объем разработанной базы данных составляет 160000 документов.Запись данных при обновлении документа осущ ествляется только в конец файла, при э том старые ревизии и удалённые документыостаются в файле, э то гарантирует ц елостность файла и устойчивость к неполадкам оборудования.3.4 Созданиепредставлений (view)Для организации псевдо-структурированного набора данных из произвольных документов, агрегирования и формированиявыборок, применяется концепция формирования представлений (view), для определения которых используется язык JavaScript,также можно определять функции для проверки корректности данных при добавлении новых документов в рамках определенногопредставления.[27]Фактически на сервере, в спец иальных документах хранятся view-функц ии (мар() и reduce()), преобразующ ие набор документовтребуемый вид.
Разработанные функц ии представлений представлены в прилож ении В. Пример функц ии представлен на рисунке 3.7.Рисунок 3.7 – Код и результат представления «Группы объектов»Представления постепенно вычисляются, с сохранением промеж уточных результатов в документ, если меж ду двумя вызовами viewдобавилось или изменилось несколько документов, то функц ия будет вызвана только для них.На первом шаге функц ия разыскивает все объекты которые удовлетворяют условию поиска, следующ им действием происходит выборкаискомых полей и формирование представления. В условиях разнородности структуры объектов э та задача услож няется построениемлогики запроса, а такж е механизмом формирования списка полей.















