В настоящее время информационно-вычислительные сети (ИВС) предприятий финансовой сферы (ПФС) активно развиваются в направлениях автоматизации процессов обработки данных. Все большее количество населения использует онлайн-сервисы, предоставляемые ПФС. Онлайн-сервисы являются частью автоматизированных банковских систем (АБС), которые на данный момент являются важнейшим звеном в процессе автоматизации информационной структуры банка.
Активное использование ИВС приводит к множественным процессам обработки больших объемов данных, хранение и обработка части которых, с точки зрения временных и экономических затрат, неэффективна. В связи с чем, новой тенденцией в развитии ИВС ПФС является использование облачных провайдеров, с целью включения в состав ИВС вычислительных облачных серверов. Образовывая такие сети, ПФС создают конвергентные вычислительные сети (КВС) [6].
При организации КВС важным звеном выступает программное обеспечение (ПО), которое способствует объединению сетей ПФС виртуальных облачных сетей в одну общую сетевую структуру с определяемыми политиками доступа, задаваемыми администратором сети. Другой важнейшей задачей является распределение вычислительных задач в виде информационных объектов (ИО) между серверами КВС: серверами ВС ПФС и облачными виртуальными серверами [2, 4].
Для распределения ИО, с целью выполнения информационно-вычислительных работ, ИВР предлагается использовать алгоритм рационального распределения вычислительных задач, который позволяет производить распределение поступившей вычислительной задачи , k={1,2,3,…,K}, поступающей от АРМ , g={1,2,3,…,G} на один из вычислительных серверов множества серверов ИВС ПФС L={l1, l2, l3,…, ln} и множества облачных вычислительных серверов Cl={cl1, cl2, cl3,…, clm}. SRV={L,Cl} – образует КВС ПФС, j={ l1, l2, l3,…, ln,cl1, cl2, cl3,…, clm} – общее число серверов КВС ПФС, t – определяет интервал времени опроса серверных станций. P – шлюзовой сервер ВС ПФС, – набор пакетов данных принадлежащих задачи (ИВР). Алгоритм состоит из следующих шагов:
Шаг 1. Получить задачу от ARM , в виде набора пакетов данных по задаче .
Шаг 2. Определить объемы вычислительных ресурсов, необходимых для выполнения поступившей задачи .
Шаг 3. Из множества серверов SRV={L,Cl} определить сервера, для которых вычислительная мощность процессора, объем ОЗУ, скорости передачи данных по сети, объем свободного пространства на ПЗУ удовлетворяют требованиям, необходимым для решения задачи. Для каждого проверяем условия, , , , , то добавляем новый сервер в множество доступных для решения задачи серверов A{}, если множество А пусто, то переход к шагу 4, иначе к шагу 5.
Шаг 4. Ожидаем интервал времени t. Переход к шагу 3.
Шаг 5. Выбираем сервер из множества А, для которого прогнозируемая временная оценка времени исполнения ИВР минимальна.
Шаг 6. Получение ip адреса сервера .
Шаг 7. Изменение ip адреса получателя в на ip адрес сервера .
Шаг 8. Изменение ip адреса отправителя в на адрес шлюзового компьютера P.
Шаг 9. Отправка ИВР на сервер .
Шаг 10. Добавление в журнал ведения логов информации об отправленной задаче: наименование задачи, компьютер отправителя, компьютер получателя.
Шаг 11. Ожидание поступления ответных данных по задаче от сервера .
Шаг 12. Если данные от сервера поступили, то выполняется переход к шагу 13, иначе переход к шагу 11.
Шаг 13. Изменение в ip адреса отправителя на ip адрес P.
Шаг 14. Изменение в ip адреса получателя на адрес .
Шаг 15. Отправить полученные данные на .
Шаг 16. Переход к шагу 1.
На основании вышеизложенной модели был разработан монитор-распределитель данных в конвергентных вычислительных сетях TiCloudBalancer, который разрабатывался с использованием ОС Microsoft Windows 8, в среде MS Visual Studio 2013 с использованием языков программирования С++ и С#. Выбор языка программирования С++ был обусловлен следующими критериями:
-
скорость работы системных программ написанных с помощью языка С++;
-
возможность работать напрямую с потоками данных, передаваемыми по сети с помощью сокетов;
-
возможность работать напрямую с участками памяти компьютера;
-
наличие большого количества библиотек, позволяющих расширить возможности языка без снижения общей скорости работы программы;
-
возможность низкоуровневой работы с передаваемыми по технологии TCP/IP данными.
Использование языка C# в проекте было обусловлено необходимостью применения визуальной среды для предоставления администратору доступа к меню управления и мониторинга работы системы распределения ИВР. Также в проекты, написанные с использованием языка C#, могут быть внедрены модули и библиотеки, написанные с использованием языка С++, что позволяет совместить скорость работы программы с большими возможностями по визуализации происходящих в распределителе процессов с применением современной среды разработки MS Visual Studio 2013. Среда MS Visual Studio 2013 позволяет разрабатывать приложения, используя языки С,С++ и С#, используя современные средства построения визуального интерфейса windows presentation foundation (WPF). Перечисленное выше позволяет создавать системное ПО, производить его рефакторинг, дорабатывать, компилировать, используя различные версии встроенных библиотек, что является основополагающим при выборе среды разработки для создания монитора-распределителя ИВР.
Монитор-распределитель представляет собой системное ПО, построенное с помощью модулей: главный (шлюзовой) модуль, серверный модуль, клиентский (АРМ) модуль [1].
Монитор-распределитель позволяет производить распределение нагрузки только для приложений, построенных на основе клиент-серверной архитектуры [3] (рис. 1), где возможно разделение серверной части, выполняющей роль обработчика запросов, и клиентской части, исполняющей роль приложения, позволяющего пользователю взаимодействовать с системой по средствам графического интерфейса [5].
Рис. 1. Структура ПО распределителя нагрузки TiCloudBalancer
Монитор-распределитель TiCloudBalancer реализован на основании проекта с открытым исходным кодом Balancer в среде разработки Visual Studio 2013 с использованием языка программирования С#. Приложение построено с использованием объектно-ориентированного подхода. Каждый модуль представляет собой законченный программный продукт, поставляемый в виде скомпилированной программы и устанавливаемый с помощью стандартного установщика InstallShieldWizard.
После установки, монитора-распределитель использует порт 5747 для передачи данных по сети между модулями, установленными на серверных станциях, шлюзовом компьютере и АРМ, и становится доступным как служба Windows Cloud Balancer ARM Module для АРМ станций, Cloud Balancer Server Module – для серверных станций, Cloud Balancer Gate Module – для шлюзового компьютера.
Рис. 2. AРM модуль в списке процессов клиентского компьютера сети ПФС
Монитор-распределитель позволяет выводить статистику по проведенным распределениям ИО по вычислительным серверам КВС ПФС, а также отображать ход распределения в режиме реального времени. Подобные функциональные особенности доступны в связи с использованием языка C# и технологии WPF, с помощью которой происходит вывод оконного интерфейса с целью получения информации о работе системы (рис. 3).
В процессе работы распределителя формируются массивы данных, в которых хранится вся информация по поступившим, обработанным заявкам, времени обработки заявок, а также информация о заявках, которые на данный момент находятся в стадии обработки.
Информация по уже завершенным процессам обработки данных хранится в лог-файлах шлюзового модуля на шлюзовом компьютере, для доступа к лог-файлам используется метод:
public void ReadLogFile(string[] logData1)
{
this.logData = logData1;
}
Листинг 1. Метод получения данных для формирования аналитического представления данных о происходящих процессах обработки данных в КВС с использованием монитора-распределителя.
Для визуализации и представления аналитической информации использовались элементы управления для построения диаграмм Microsoft Chart Controls, доступные для технологии WPF и NET FRAMEWORK 4.0 и выше [7]. Для использования библиотеки отображения графиков был использован метод ReadLogs(), основные особенности которого изложены в листинге 2. Сущность метода ReadLogs() заключается в чтении и обработке сформированных строк, представляющих собой информацию о происходящих в мониторе-распределителе событиях.
using (StreamReader sr = new StreamReader(path))
{
string line;
int y = 0;
System.DateTime x;
chart2.Series["Series1"].XValueType = ChartValueType.DateTime;
chart2.ChartAreas[0].AxisX.LabelStyle.Format="yyyy-MM-dd HH:mm:ss";
chart2.ChartAreas[0].AxisX.Title = "Дата, время";
chart2.ChartAreas[0].AxisY.Title = "Количество обработанных задач";
while (!sr.EndOfStream)
{
line = sr.ReadLine();
string[] strArr = line.Split('\t');
x = DateTime.Parse(strArr[0]);
y = Convert.ToInt32(strArr[1]);
chart2.Series["Series1"].Points.AddXY(x.ToOADate(), y);
}
sr.Close();
}
Листинг 2. Метод получения данных для формирования аналитического представления данных о происходящих процессах обработки данных в КВС с использованием монитора-распределителя.
Рис. 3. Вывод аналитической информации в мониторе-распределителе данных
Для отображения информации о задачах, которые на данный момент проходят этап выполнения, использовался метод ReadActiveData(), который позволяет получить данные из массивов, проводимых ИВР в КВС.
Выводы:
Монитор-распределитель данных в конвергентных вычислительных сетях позволяет производить рациональное распределение ИО по вычислительным серверам ИВС с подключенной облачной инфраструктурой. Основные возможности разработанного ПО состоят в распределении вычислительных задач, также существуют и дополнительные функциональные особенности, которые позволяют производить анализ происходящих в КВС процессов с помощью визуального интерфейса, содержащего вывод необходимой информации о состоянии работы монитора-распределителя.
Разработанный алгоритм позволяет производить рациональное распределение ИО по параметрам времени выполнения ИВР и стоимости ИВР на вычислительном сервере, что способствует повышению эффективности функционирования КВС ПФС в целом.
Рецензенты:
Привалов А.Н., д.т.н., профессор кафедры информатики и информационных технологий, ФГБОУ ТГПУ им. Л.Н. Толстого, г. Тула;
Добровольский Н.М., д.ф.-м.н., профессор кафедры алгебры, математического анализа и геометрии, г. Тула.
Библиографическая ссылка
Клепиков А.К. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ РАСПРЕДЕЛЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ ЗАДАЧ В КОНВЕРГЕНТНОЙ СЕТИ // Современные проблемы науки и образования. – 2015. – № 1-1. ;URL: https://science-education.ru/ru/article/view?id=17202 (дата обращения: 13.10.2024).