УДК 004.42
ИССЛЕДОВАНИЕ И ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО КОМПЛЕКСА УДАЛЕННОГО РЕЗЕРВНОГО КОПИРОВАНИЯ ДАННЫХ
А.И. Ольшевский, В.С. Нестеренко
Донецкий национальный технический университет, г. Донецк
кафедра искусственного интеллекта и системного анализа
a_olshevskiy@mail.ru, nes.vadim.s@gmail.com
Аннотация:
Ольшевский А.И., Нестеренко В.С. Исследование и проектирование программного комплекса удаленного резервного копирования данных. Рассмотрены существующие технологий и современные специализированные программные системы резервирования данных. Определены требования к программной реализации системы. Предложена трёхуровневая архитектура системы. Реализован открытый максимально понятный исходный программный код.
Ключевые слова: резервное копирование данные, распределенное хранение, корпоративные сети, открытый исходный код.
Постановка проблемы. В настоящее время подавляющее большинство важных данных не должно быть утеряно. Многие данные теряются из-за различных факторов, будь то отказ работы техники или человеческий фактор случайности. Введу проблемы потери данных, было найдено – решение создания копии этих данных, т.е. создание резервной копии [1].
На текущий момент большое количество людей используют различные системы резервного копирования, однако бесплатных систем с открытым исходным кодом насчитывается единицы. Так же очень мало присутствует систем, управляемых с сервера, на котором можно в профиле пользователя подключить несколько компьютеров и настроить создание резервных копий файлов каждого из компьютеров [2-3]. Так же мало систем, способных отправлять резервные копии на собственный сервер, следить за количеством копий на сервере, отправлять их на сервер по расписанию. В связи с этим проблема создания бесплатной системы резервного копирования с данным функционалом, с открытым исходным кодом на сегодняшний день весьма актуальна.
Цель работы – повышение надежности и отказоустойчивости, увеличения быстродействия системы, за счет разработки архитектуры системы и распределенной обработки данных.
Распределенные файловые системы. Такие файловые системы имеют собственные механизмы управления разделами, которые упрощают возможности хранения общедоступной информации. Они так же поддерживают дублирование – способность делать копии разделов и сохранять их на других файловых серверах. Если один файловый сервер становится недоступным, то все равно к данным, хранящимся на его разделах, можно получить доступ с помощью имеющихся резервных копий этих разделов [4-5].
Современные распределенные файловые системы включают в себя специальные сервисы для управления разделами. Это позволяет вам смонтировать разделы различных файловых серверов в центральную иерархию директорий, поддерживаемую файловыми системами. Иерархии директорий доступны всем клиентам распределенной файловой системы, и выглядят одинаково на любой из клиентских рабочих станций. Это дает возможность пользователям работать со своими файлами одинаково на любом компьютере. Если ваш настольный компьютер не работает, вы совершенно спокойно можете использовать любой другой – все ваши файлы находятся в безопасности на сервере.
Современные программные системы создания резервных копий данных. На сегодняшний день большинство баз данных различных компаний и корпораций располагаются на собственных хранилищах под управлением одной из операционной системы вида Unix, обеспечивая меньшую нагрузку на оборудование и простоту выполнения резервного копирования по средству запуска скриптов по расписанию. Данный метод выполнения резервного копирования предполагает наличие специалиста для работы, накладывая на него дополнительную ответственность при слежении за резервным копированием. Специалист должен реагировать на различные сбои, помнить расположение и число резервных копий и отвечать за их целостность [6].
Так же существуют и специализированные программы средства по выполнению резервного копирования, однако у каждого пользователя и каждой компании есть свои требования к функционалу программного средства, что в итоге выделяет из общего числа приложений такие универсальные и популярные программные средства с закрытым исходным кодом как AOMEI Backupper и Acronic Backup.
AOMEI Backupper платное программное средство для компаний и корпораций, однако бесплатно для домашнего повседневного использования. Его функционал разнится в зависимости от плана приобретенной версии, а именно: количество лицензий, наличие сервера, полное приобретение или подписка, наличие поддержки специалистов, синхронизация и пр. В отличии от разрабатываемого программного средства, AOMEI Backupper не кроссплатформенное программное средство, и в нём отсутствует распределенное хранение и считывание данных [7].
Acronis Backup полностью платное кроссплатформенное программное средство. Функционал также разнится в зависимости от плана версии, однако данное программное средство существенно дороже. Стоит отметить что в приложении Acronis Backup так же отсутствует распределенное хранение и считывание данных [8].
Программная реализация системы создания резервных копий данных. В данном программном комплексе используется модифицированная трёхуровневая архитектура, она состоит из таких компонентов (слоёв): клиента, сервера приложений (к которому подключено клиентское приложение) и сервера баз данных (с которым работает сервер приложений). Модификация представляет собой возможность развёртывания программного средства в локальной сети, а также распределенное хранение и считывание данных. Помимо этого, для каждого слоя имеются свои модификации. На рис. 1 изображена трёхуровневая архитектура программного средства [9-10].
В данной архитектуре первым слоем является клиент. Клиент – это интерфейсный компонент комплекса, который не имеет прямых связей с базой данных, не хранит состояние приложения, и не обрабатывает бизнес-логику (реализация правил и ограничений автоматизируемых операций). Компьютер пользователя подвязывается к его аккаунту на слое сервера приложений, принимает задачи, и в соответствии с ними по расписанию отправляет копию данных на указанные пользователем хранилища, с заданными пользователем настройками, а также сообщает серверу приложений о состоянии каждой задачи при их выполнении. Модификация данного слоя представляет собой хранение сообщений, посылаемых серверу приложений при отсутствии подключения к сети, и отправки сохранённых сообщений при подключении к сети. Данная модификация необходима в виду работы клиента с расписанием действий.
Рисунок 1 – Трёхуровневая архитектура программного средства
Второй слой (средний, связующий) является сервером приложений, где сосредоточена большая часть бизнес-логики. Он отвечает за обработку данных при общении с клиентом и базой данных. Программное средство проектируются таким образом, чтобы при добавлении дополнительного функционала обеспечивалось горизонтальное масштабирование производительности программного средства и не требовалось внесения изменений в программный код приложения. Модификация данного слоя представляет собой возможность управления хранением данных, предоставляя выбор места хранения (на сервере баз данных или в хранилище сети Интернет), а также возможность распределенного хранения и считывания из разных хранилищ данных. Также пользователю доступна возможность подвязки нужных компьютеров к аккаунту, для составления на каждом из них необходимых задач резервного копирования. Задача имеет такие настройки как: выбор файлов, сжатие, выбор мест хранения, расписание, уведомление о состоянии, шифрование, история задач и сами сохраненные данные, которые пользователь может себе загрузить [11].
Сервер баз данных (слой данных) обеспечивает хранение данных и выносится на отдельный третий уровень. В программном средстве он реализуется средством системы управления базами данных MongoDB [12], подключение к этому компоненту обеспечивается только с уровня сервера приложений. Модификация данного слоя представляет собой распределенное хранение данных для обеспечения большей надежности и скорости считывания данных [13-14].
Стоит отметить что программный комплекс является открытым программным обеспечением, делая его код общедоступным для просмотра и изменения. Это позволит всем желающим использовать уже созданный код для своих нужд, в частности корпоративным сетям, и помочь в разработке данного программного средства [15].
Выводы
Исследованы существующие технологий и современные специализированные программные системы резервирования данных. Предложена трёхуровневая архитектура системы, которая позволила повысить отказоустойчивость и надежность за счет репликации данных, а также увеличить быстродействие системы за счет распределенной обработки данных.
Благодаря добавлению нового функционала по сравнению с конкурентными решениями, обеспечивается работа системы в локальной сети без подключения к сети Интернета.
Предложенный открытый максимально понятный исходный код программного комплекса позволяет использовать его для улучшения и оптимизации другими разработчиками, а также используемые технологии существенно упростят адаптацию системы в других организациях.
Литература
1. Богдзиевич Р.И. Децентрализованная сетевая файловая система [Текст] / Р.И. Богдзиевич, А.И. Ольшевский // Сб. науч. тр. V Международная научно-техническая конференция молодых ученых, аспирантов студентов «Современная информационная Украина: информатика, экономика, философия» – Донецк, 2011. – С. 133-136.
2. Бычкова Е.В. Программное средство создания резервных копий данных [Текст] / Е.В. Бычкова, В.С. Нестеренко // Сб. науч. тр. «Информатика, управляющие системы, математическое и компьютерное моделирование» в рамках III форума «Инновационные перспективы Донбасса» (ИУСМКМ – 2017). – Донецк : ДонНТУ, 2017. – С. 381-384
3. Гома Х. UML Проектирование систем реального времени, параллельных и распределенных пиложений / Х. Гома // Пер. с англ. – М.: ДМК Пресс, 2011. – 704 c.
4. RAID [Electronic resourse] / Интернет-ресурс. – Режим доступа : www/ URL: https://ru.wikipedia.org/wiki/RAID. – Загл. с экрана.
5. Silberschatz A. Operating System Concepts / Silberschatz A., Galvin P.B., Gagne G. – Salt Lake City : John Wiley & Sons, 1994. – 780 p.
6. UNIX and Linux System Administration Handbook / [Nemeth E., Snyder G., Hein T.R., Whaley B., Mackin D.] – [4th edition] – Upper Saddle River : Addison-Wesley Professional, 2017. – 1500 p.
7. AOMEI Backupper [Electronic resourse] / Интернет-ресурс. – Режим доступа : www/ URL: https://www.aomeitech.com/aomei-backupper.html. – Загл. с экрана.
8. Acronis [Electronic resourse] / Интернет-ресурс. – Режим доступа : www/ URL: URL: http://www.acronis.com. – Загл. с экрана.
9. Трёхуровневая архитектура [Electronic resourse] / Интернет-ресурс. – Режим доступа : www/ URL: https://ru.wikipedia.org/wiki/Трёхуровневая_архитектура. – Загл. с экрана.
10. El-Rewini H. Advanced Computer Architecture and Parallel Processing / El-Rewini H., Abd-El-Barr M. – Hoboken : John Wiley & Sons, 2005. – 288 p.
11. Pattern-Oriented Software Architecture Volume 1: A System of Patterns / [Buschmann F., Meunier R., Rohnert H., Sommerlad P., Stal M.] – Chichester.: John Wiley & Sons, 1996. – 476 p.
12. MongoDB [Electronic resourse] / Интернет-ресурс. – Режим доступа : www/ URL: https://www.mongodb.com. – Загл. с экрана.
13. Jepsen T.C. Distributed Storage Networks: Architecture, Protocols and Management / Jepsen T.C. – Raleigh : John Wiley & Sons, 2003. – 338 p.
14. Gupta М. Storage Area Network Fundamentals / Gupta М. – Indianapolis : Cisco Press, 2002. – 320 p.
15. Xie Z. Open Source Software Foundation / Xie Z. – Saarbrucken : LAP Lambert Academic Publishing, 2010. – 128 p.