Назад в библиотеку

УДК 004.424

СИСТЕМА УДАЛЕННОГО РЕЗЕРВНОГО КОПИРОВАНИЯ ДАННЫХ ДЛЯ КОРПОРАТИВНЫХ СЕТЕЙ

 

А.И. Ольшевский, В.С. Нестеренко

Донецкий национальный технический университет, г. Донецк

кафедра искусственного интеллекта и системного анализа

a_olshevskiy@mail.ru,  nes.vadim.s@gmail.com

 

Аннотация:

Ольшевский А.И., Нестеренко В.С. Проектирование программного комплекса удаленного резервного копирования данных для корпоративных сетей. Рассмотрены общие средства универсального программирования, был выбран объектно-ориентированный язык программирования. Определена структура программного комплекса, разделены задачи и функции клиентской и серверной части. Предложена модель распределенного «разбитого» хранения файла. Реализован открытый максимально понятный исходный программный код.

 

Ключевые слова: кроссплатформенность, резервное копирование данные, модель распределенного хранимого файла, корпоративные сети, открытый исходный код.

Постановка проблемы

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

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

В связи с отсутствием универсального программного средства резервного копирования данных, подходящего под большинство требований любого предприятия, проблема создания такой системы резервного копирования, с открытым исходным кодом на сегодняшний день весьма актуальна [1].

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

Программная реализация

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

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

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

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

Серверная же часть, доступная по URL внутри сети, помимо всей логики отвечает и за Web-интерфейс, позволяющий управлять и настраивать все задачи по резервному копированию, определять места хранения, расписание для каждого компьютера, определять роли и ограничения пользователей, имеющих доступ к программному обеспечению, подключенных к серверу, где установлена клиентская часть. Web интерфейс представляет собой приложение, разработанное с использованием языка программирования JavaScript, JavaScript-фреймворка AngularJS, систему Web-шаблонов Thymeleaf, HTML препроцессор Pug/Jade, программную платформу Node.js, и СУБД MongoDB [3]. Данные современные технологии позволяют разработчикам более быстро и удобно реализовать сложный функционал Web-приложения и общение с базой данных.

AngularJS позволяет расширить MVC шаблон. Model-View-Controller – схема разделения данных приложения, пользовательского интерфейса и управляющей логики на три отдельных компонента: модель, представление и контроллер – таким образом, что модификация каждого компонента может осуществляться независимо [4].

Thymeleaf. Шаблонные файлы Thymeleaf на самом деле является обычными текстовым файл, имеющий формат XML/XHTML/HTML5. Thymeleaf Engine (машина Thymeleaf) читает шаблонный файл и комбинирует с объектами Java, чтобы генерировать другой документ. Данная система представляет собой «обещание», интегрируя объекты Java в Web-интерфейс [5].

HTML препроцессор Pug/Jade даёт возможность написания разметки с рядом преимуществ по сравнению с обычным HTML [6].

Node.Js – программная платформа превращающая JavaScript из узкоспециализированного языка в язык общего назначения. Node.js добавляет возможность JavaScript взаимодействовать с устройствами ввода-вывода через свой API (написанный на C++), подключать другие внешние библиотеки, написанные на разных языках, обеспечивая вызовы к ним из JavaScript-кода. Node.js применяется преимущественно на сервере, выполняя роль веб-сервера [7].

MongoDB – документоориентированная система управления базами данных (СУБД) с открытым исходным кодом, не требующая описания схемы таблиц. Классифицирована как NoSQL, использует JSON-подобные документы и схему базы данных. Написана на языке C++ [8].

Распределенное хранение и считывание данных

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

 

                                                                              

Рисунок 1 – Схематический вид распределенного «разбитого» хранения файла

 

Ограничение ширины канала сети. На сегодняшний день большинство данных и баз данных различных компаний и корпораций располагаются на собственных хранилищах под управлением одной из операционной системы вида Unix, что и обеспечивает меньшую нагрузку на оборудование и простоту выполнения резервного копирования по средству запуска скриптов по расписанию [10]. Данный метод резервного копирования предполагает наличие обученного специалиста для работы, накладывая на него задачу слежения за резервным копированием. Специалисту необходимо реагировать на различные сбои, помнить расположение и число резервных копий, а также отвечать за их целостность.

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

Среди многих программных средств стоит выделить Resilio Sync, – платный сервис для синхронизации файлов и резервного копирования по протоколу BitTorrent между произвольными устройствами. Поддерживается компанией Resilio, Inc., выделенной из BitTorrent, Inc.. BitTorrent Sync синхронизирует файлы, используя самоорганизующуюся одноранговую сеть (P2P), основанную на протоколе BitTorrent. Этот протокол зарекомендовал себя эффективной передачей больших файлов между множеством устройств. В отличие от облачных сервисов с аналогичной функциональностью, при использовании для этих целей BitTorrent Sync пользовательские данные находятся на локальном носителе и требуют, как минимум, одного устройства, подключенного к сети для доступа к ним [12].

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

Хранение данных на популярных облачных сервисах-хранилищах. На сегодняшний день существует множество облачных сервисов, позволяющих хранить данные на собственных носителях информации. В разрабатываемом программном продукте разработана возможность распределенного хранения данных на популярных облачных хранилищах (Dropbox, Google Drive, Mega, OneDrive и пр.). В программном продукте всё дисковое пространство с выбранных пользователем сервисов представлен, как единый. Так же спроектированы элементы искусственного интеллекта для отслеживания загружаемых и считываемых данных, и автоматического распределения наиболее используемых файлов на сервис с лучшей скоростью обмена данными, а менее используемые файлы, соответственно, на сервис худшей скоростью обмена данными [13].

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

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

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

Выводы

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

Литература

1.     Ольшевский А.И. Исследование и проектирование программного комплекса удаленного резервного копирования данных [Текст] / А.И. Ольшевский, В.С. Нестеренко // Сб. мат. «Информатика, управляющие системы, математическое и компьютерное моделирование» (ИУСМКМ – 2018). – Донецк : ДонНТУ, 2017. – С. 61-64

2.     Бычкова Е.В. Программное средство создания резервных копий данных [Текст] / Е.В. Бычкова, В.С. Нестеренко // Сб. науч. тр. «Информатика, управляющие системы, математическое и компьютерное моделирование» в рамках III форума «Инновационные перспективы Донбасса» (ИУСМКМ – 2017). – Донецк : ДонНТУ, 2017. – С. 381-384

3.     Гома Х. UML Проектирование систем реального времени, параллельных и распределенных приложений / Х. Гома // Пер. с англ. – М.: ДМК Пресс, 2011. – 704 c.

4.     Angular.js [Electronic resourse] / Интернет-ресурс. – Режим доступа : www/ URL: https://angularjs.org. – Загл. с экрана.

5.     Thymeleaf [Electronic resourse] / Интернет-ресурс. – Режим доступа : www/ URL: https://thymeleaf.org – Загл. с экрана.

6.     Pug/Jade [Electronic resourse] / Интернет-ресурс. – Режим доступа : www/ URL: https://pugjs.org – Загл. с экрана.

7.     Node.js [Electronic resourse] / Интернет-ресурс. – Режим доступа : www/ URL: https://ru.wikipedia.org/wiki/Node.js. – Загл. с экрана.

8.     MongoDB [Electronic resourse] / Интернет-ресурс. – Режим доступа : www/ URL: https://www.mongodb.com. – Загл. с экрана.

9.     Jepsen T.C. Distributed Storage Networks: Architecture, Protocols and Management / Jepsen T.C. – Raleigh : John Wiley & Sons, 2003. – 338 p.

10.  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.

11.  BitTorrent (протокол) [Electronic resourse] / Интернет-ресурс. – Режим доступа : www/ URL: https://ru.wikipedia.org/wiki/BitTorrent_(протокол). – Загл. с экрана.

12.  Resilio Sync [Electronic resourse] / Интернет-ресурс. – Режим доступа : www/ URL: https://www.resilio.com/. – Загл. с экрана.

13.  Gupta М. Storage Area Network Fundamentals / Gupta М. – Indianapolis : Cisco Press, 2002. – 320 p.

 

Ольшевский А.И., Нестеренко В.С. Проектирование программного комплекса удаленного резервного копирования данных для корпоративных сетей. Рассмотрены общие средства универсального программирования, был выбран объектно-ориентированный язык программирования. Определена структура программного комплекса, разделены задачи и функции клиентской и серверной части. Предложена модель распределенного «разбитого» хранения файла. Реализован открытый максимально понятный исходный программный код.

 

Ключевые слова: кроссплатформенность, резервное копирование данные, модель распределенного хранимого файла, корпоративные сети, открытый исходный код.

 

Olshevsky A.I., Nesterenko V.S. Designing software for remote data backup for corporate networks. Considered general means of universal programming, was chosen object-oriented programming language. The structure of the software complex is defined, the tasks and functions of the client and server parts are divided. A model of distributed “broken” file storage is proposed. Implemented an open, highly understandable source code.

 

Key words: cross-platform, data backup, distributed stored file model, corporate networks, open source.