- Введение
Обеспечение безопасного, стабильного и функционального программного обеспечения является важной частью функционирования данной сети. В этой связи важно, чтобы удовлетворить потребности клиента для активного и быстрого обслуживания. Автоматизация процесса обновления программного обеспечения позволяет своевременно предотвратить проблемы. В то же время сохраняется время, необходимое для распространения новых релизов, разработки новых продуктов, или улучшения существующих.
1.1. Осуществление связи с базами данных.
Компоненты для связи с базами данных предоставляют ссылки на таблицы, запросы, и другие элементы. Они используются для отображения и редактирования информации в базах данных data-aware контролов и представлены на рисунке 1.
Рисунок 1. Йерархия компонентов для осуществления связи с базой данных
Для доступа к базе данных необходим источник данных DataSource. DataSet представляет таблица, виполнение запроса или данные, полученные от удалённого сервера (ClientDataSet) или от другого собственного источника данных [1].
- Функциональные возможности системы
2.1. Модули системы
Система позволяет автоматизировать процесс обновления приложений баз данных, предоставляя файлы обновления на FTP-сервер [2]. Для этой цели разработано несколько модулей, которые обеспечивают возможность выполнения всего процесса. Связи между модулями в системе показаны на рисунке 2.
Рисунок 2. Связь между модулями в системе
Модул WebUpdate:
- Скачать файлы с FTP севера;
- Проверки на точность полученных данных;
- Проверка на обновление на файлов.
Mодул XML Writer:
- Создание и корректировки XML файлов;
Модул GlobalID
Модул GlobalID обеспечивает глобальные константы для всех других частей системы. Они используются для корреляции проектов, баз данных и конфигурационных файлов. Разделение константов в собственном модуле обеспечивает возможность связи между ними, а также легкое добавление новых проектов и баз данных к системе.
XML Data Binding
Разделение всех функций в отдельных модулей позволяет чтоб в любом пользовательском приложении легко реализовать систему для обновления [3].
2.2. Алгоритм проведения обновления
На рисунке 3 показаны главные части алгоритма проведения обновления. Идея основана на концентрации всех нужных процессов в одном модуле, содержащий дефинированный пользовательский класс. В главном объекте включены подпроекты для работы с FTP, для связи с базами данных и для выполнения скриптов на базы данных. Это позволяет почти полной изоляции от потребительских приложений.
Функция CheckFiles, для сравнения версий уже существующих файлов с теми на FTP сервере, выполняет несколько задач: извлечение информации о файлах, помещенных в базу данных, сравнивая их с версиями этих файлов на FTP и выполнение их обновления, при необходимости и при разрешении (рис. 4).
Разрешение переключется с помощью входного параметра DoUpdate, который имеет тип Boolean. Если значение есть True, в случае необходимости обновления делается попытка для его выполнения в ту же функцию. Когда значение есть False проверяются все файлы и при необходимости от обновления функция завершается с результатом, который дает сигнал об этом.
Рисунок 3. Алгоритъм проведения обновления |
Рисунок.4. Алгоритм функции CheckFiles
|
2.3. Модул GlobalId
Связь между глобальнами константами:
TDesProjectID есть массив чисел, которые служат в качестве идентификаторов для всех проектов, поддерживаемых системой обновления (рис 5). В используемом примере он определяется следующим образом:
TDesProjectID = (prjNone = 0,prjServerUpdater, prjE_SfucSrv,prjE_SfucClient, prjSfuc_R, prjRegCostnitsa, prjDms, prjCr);
В этом случае, при използовании константы prjNone идентично с изпользованием числа «0», когда PrjServerUpdater — «1» и так далее для последовательных значений. Идентификатор служит для связи каждого проекта с константами, связанные с ним (универсальный идентификатор, служебное имя, потребительское имя, имя XML файла) [4].
Рисунок 5. Структура типа TDesProject
Тип TsProject содержит идентификатор проекта для удобной идентификации в код, имен (работное и потребительское), универсальный идентификатор (ID).
- Выводы
Разработанный модул предоставляеть возможность для проведения обновления программных приложений, которые связаны с одной или более баз данных Firebird и Interbase. Дана возможность для разширения применимости модуля к другим базам данных, при включении съответствующих библиотек для выполнения скриптов.
Достигнуты дополнительные требования безопасности процесса. Модуль работает безупречно при нормальных условиях, предлагая механизмы для предотвращения потери данных.
Предусмотрено создание резервной копии до запуска процесса, не допуская возможность ошибки от технической проблемы в сети.
Приняты дополнительные меры для обеспечения безопасности процесса путем удостоверения в целостности загруженной информации с использованием хэш-суммы.
Предусмотрен дополнительный модуль для создания и коррекции XML файлы со структурой, необходимой для правильной работы модуля.
Не предусмотрен способ для ограничения доступа к файлам в самом модуле. Можно добавить это в будущем, или воспользоваться возможностями FTP-сервера, чтобы создать правила доступа по сетевом адресе и / или по управлении пользователями сети.
- Список литературы
[1] Канту, М., Mastering Delphi 4. СофтПрес-ООД , 2010
[2] Schow, P. H., Son-Bell, M. A., Williams, G. A., Meske, C. F., & Markel, A. (2007). Патент № US 2007/0234331 A1. United States of America.
[3] Marmaros, D., Lawrence, S. R., Ionescu, M. F., Wang, N., & Khan, O. H. (2012). Патент № US 8,321,858 B1. United States of America.
[4] Shahindoust, A., & Yeung, M. (2012). Патент № US 8,225,304 B2. United States of America[schema type=»book» name=»АВТОМАТИЗИРОВАННАЯ СИСТЕМА ДЛЯ ЦЕНТРАЛИЗОВАННОГО ОБНОВЛЕНИЯ БАЗЫ ДАННЫХ» description=»Цель этой статьи — представить создании системы, которая автоматизирует поддержки программных продуктов. Готовое изделие представляет собой механизм для выполнения централизованного обновления программного обеспечения и соответствующей базы данных. Преимущества включают более быстрое обслуживание и безопасность сети.» author=»Георгиева Тодорка, Димитрова Екатерина, Маринова Марина» publisher=»БАСАРАНОВИЧ ЕКАТЕРИНА» pubdate=»2017-01-04″ edition=»euroasia-science.ru_29-30.12.2015_12(21)» ebook=»yes» ]