The Development of a Multi-channel Mass Service System with Limited Queuing Using the Parallel Library of the .NET Platform
- Authors: Antonova P.V.1
-
Affiliations:
- Kazan National Research Technological University
- Issue: Vol 10, No 3 (2023)
- Pages: 44-50
- Section: MATHEMATICAL MODELING, NUMERICAL METHODS AND COMPLEX PROGRAMS
- URL: https://journals.eco-vector.com/2313-223X/article/view/623608
- DOI: https://doi.org/10.33693/2313-223X-2023-10-3-44-50
- EDN: https://elibrary.ru/RIMNOF
- ID: 623608
Cite item
Full Text
Abstract
Modern business and industry are often faced with the need to effectively manage and optimize the processes of servicing the flow of requests. In the light of this need, the paper considers the principles of developing a multi-channel mass service system with limited queueing, implemented on the .NET platform using the C# programming language. Particular attention is paid to high-performance data processing and parallel computing. The article offers architectural solutions for the realization of a multi-channel mass service system and discusses the basic components of the system, including the queue, processing channels and mechanisms for managing applications. The scientific novelty of the presented work lies in the integration of Parallel Framework into the development process of a multi-channel mass service system with limited queueing, which allows to optimize resource allocation and reduce waiting time in the system. The paper presents code examples which demonstrate aspects of multi-threading implementation and the use of competitive collections for efficient queue request management. Opportunities for further development of multi-channel mass-maintenance systems on .NET platform are considered, taking into account constantly changing requirements and technological capabilities.
Full Text
ВВЕДЕНИЕ
Теория массового обслуживания (ТМО) играет важную роль в анализе и оптимизации процессов [1], связанных с обслуживанием потоков заявок, в различных областях, таких как телекоммуникации [2; 3], производство, логистика, здравоохранение и финансы. Приведем несколько способов, как ТМО используется для этой цели.
- Определение ресурсов. ТМО позволяет определить, сколько ресурсов (например, операторов, рабочих мест или серверов) необходимо для обработки потока заявок в условиях различной нагрузки. Это важно для планирования ресурсов и минимизации затрат [4; 5].
- Снижение времени ожидания. Одной из ключевых метрик в системах массового обслуживания является время ожидания. ТМО позволяет анализировать, как различные факторы, такие как интенсивность потока заявок и количество каналов обслуживания, влияют на время ожидания, и оптимизировать его.
- Улучшение качества обслуживания. Качество обслуживания тесно связано с временем ожидания и доступностью ресурсов. ТМО позволяет проанализировать, как изменения в системе могут влиять на качество обслуживания, и внести коррективы для его улучшения.
- Оптимизация загрузки ресурсов. ТМО используется для оптимизации загрузки ресурсов путем распределения заявок между различными каналами или обслуживающими устройствами, чтобы минимизировать простои и увеличить производительность.
- Прогнозирование и планирование. С помощью моделей ТМО можно прогнозировать поведение системы в различных сценариях и выполнять планирование, учитывая возможные изменения в потоке заявок или доступности ресурсов.
- Снижение отказов. ТМО помогает в анализе и уменьшении вероятности отказов в обслуживании, что может быть критически важно для систем с высокими требованиями к доступности и надежности.
- Создание симуляционных моделей [6; 7]. ТМО используется для создания симуляционных моделей реальных систем. Это позволяет проводить эксперименты с моделями, вместо того чтобы проводить их на реальных системах, что может быть затратно или невозможно.
- Проектирование и разработка архитектуры системы. Знание принципов ТМО помогает в проектировании архитектуры системы таким образом, чтобы она соответствовала требованиям производительности и масштабируемости.
Разработка многоканальной системы массового обслуживания (СМО) с ограниченной очередью на платформе .NET представляет собой актуальную задачу, обусловленную несколькими ключевыми факторами.
- Высокая производительность. Многоканальные СМО позволяют обрабатывать несколько заявок одновременно, что приводит к увеличению пропускной способности и уменьшению времени ожидания для клиентов.
- Оптимизация ресурсов. Ограниченная очередь помогает в оптимизации использования ресурсов, предотвращая их перегрузку.
- Гибкость и масштабируемость .NET. Платформа .NET известна своей гибкостью и масштабируемостью, что делает ее идеальной для разработки сложных систем, таких как многоканальные СМО.
- Обработка больших данных. Современные системы обслуживания сталкиваются с необходимостью обрабатывать большие объемы данных.
- Отказоустойчивость и надежность. .NET предлагает функции и инструменты для построения отказоустойчивых систем.
- Интеграция с другими системами. Платформа .NET позволяет легко интегрировать разрабатываемую систему с существующими системами и сервисами, что увеличивает ее функциональные возможности и позволяет реализовать сложные сценарии обслуживания.
- Ответ на современные бизнес-потребности. Многие сектора бизнеса, такие как финансы, телекоммуникации, здравоохранение и транспорт, имеют дело с большими потоками заявок, которые требуют быстрого и эффективного обслуживания.
- Безопасность. .NET предоставляет набор инструментов для обеспечения безопасности данных и транзакций, что является критически важным для систем массового обслуживания, обрабатывающих чувствительную информацию.
- Поддержка сообщества и обновлений. Платформа .NET имеет широкое сообщество разработчиков и постоянно обновляется.
- Кроссплатформенность. С появлением .NET Core и .NET 5, разработчики могут создавать приложения, работающие на различных операционных системах, что делает платформу .NET идеальным выбором для создания многоканальных СМО, которые могут быть развернуты в различных средах.
Таким образом, в разработке и оптимизации систем, обслуживающих потоки заявок, теория массового обслуживания является жизненно важным элементом. Эта область знания обеспечивает все необходимые инструменты и методологии для анализа характеристик системы, планирования ресурсов, улучшения качества услуг, минимизации затрат и рисков. В конечном итоге, она оснащает специалистов знаниями для обоснованного принятия решений в отношении дизайна и управления системой обслуживания. В данном контексте актуальной является задача разработки многоканальной системы массового обслуживания с ограниченной очередью на платформе .NET. Это направление соответствует требованиям современности к быстрому и эффективному обслуживанию заявок. Платформа .NET имеет неоспоримые преимущества в отношении производительности, гибкости, масштабируемости, надежности и безопасности. Все эти свойства делают ее превосходным выбором для реализации сложных систем массового обслуживания. Системы, которые способны отвечать на потребности современного бизнес-окружения.
ПРИНЦИПЫ РАЗРАБОТКИ МНОГОКАНАЛЬНОЙ СМО С ОГРАНИЧЕННОЙ ОЧЕРЕДЬЮ С ПРИМЕНЕНИЕМ PARALLEL FRAMEWORK
Многоканальные системы массового обслуживания играют ключевую роль в различных областях, таких как телекоммуникации, банковское дело и здравоохранение. Эффективность таких систем часто определяется их способностью обрабатывать множество заявок параллельно. Рассмотрим принципы разработки многоканальной СМО с ограниченной очередью, используя Parallel Framework платформы .NET [8].
Parallel Framework – это составная часть платформы .NET, которая предоставляет высокоуровневые инструменты и библиотеки для параллельного программирования. Он позволяет разработчикам легко реализовывать многопоточность и параллелизм в своих приложениях без необходимости работы с низкоуровневыми механизмами потоков.
На рис. 1 представлена диаграмма деятельности [9] многоканальной СМО с ограниченной очередью с использованием Parallel Framework [10], где система имеет несколько каналов обслуживания и очередь с ограничением в N заявок. При добавлении заявок в очередь они обрабатываются параллельно каналами. Если очередь достигает своего предела, новые заявки отклоняются.
Рис. 1. Диаграмма деятельности многоканальной системы массового обслуживания с ограниченной очередью с использованием Parallel Framework
Для реальных сценариев использования и оптимизации многоканальных СМО с ограниченной очередью [11; 12], можно рассмотреть несколько дополнительных аспектов.
- Балансировка нагрузки. Распределение заявок между каналами таким образом, чтобы минимизировать время ожидания и обеспечить равномерную загрузку каналов.
- Динамическое масштабирование. Автоматическое изменение числа каналов в ответ на изменение интенсивности потока заявок.
- Мониторинг и логирование. Сбор статистических данных о производительности системы и времени обработки заявок для последующего анализа и оптимизации.
Представим пример кода с динамическим масштабированием каналов.
// Мониторинг размера очереди для динамического масштабирования
Task monitor = Task.Factory.StartNew(() =>
{
while (!queue.IsCompleted)
{
if (queue.Count > queueLimit * 0.8 && numberOfChannels < 5)
{
// Добавление дополнительного канала
Task additionalChannel = Task.Factory.StartNew(() =>
{
// ...код обработки заявок аналогичный предыдущим каналам
});
Console.WriteLine("Дополнительный канал добавлен");
numberOfChannels++;
}
Task.Delay(5000).Wait(); // Проверка каждые 5 секунд
}
});
Таким образом, использование Parallel Framework платформы .NET позволяет разрабатывать высокопроизводительные многоканальные системы массового обслуживания с ограниченной очередью. Средства параллельного программирования облегчают реализацию многопоточности, а применение техник балансировки нагрузки, динамического масштабирования и мониторинга позволяет оптимизировать систему для конкретных потребностей и условий работы.
ПРИМЕНЕНИЕ КОНКУРЕНТНЫХ КОЛЛЕКЦИЙ
При проектировании многоканальной СМО с ограниченной очередью с использованием Parallel Framework на платформе .NET, одним из важных аспектов является управление конкуренцией за доступ к разделяемым ресурсам. В многопоточных приложениях, когда несколько потоков имеют доступ к общим данным, необходимо обеспечить синхронизацию и надежное управление данными. В этом контексте, конкурентные коллекции .NET предлагают эффективные решения.
Конкурентные коллекции, такие как ConcurrentQueue<T> и ConcurrentBag<T>, предоставляют потокобезопасные структуры данных, которые могут быть эффективно использованы в многопоточных сценариях.
В контексте СМО ConcurrentQueue<T> может быть использована для представления очереди заявок. Она обеспечивает потокобезопасную очередь FIFO (первым пришел – первым обслужен).
Parallel Framework предоставляет различные средства для распараллеливания задач. Для обработки заявок в многоканальной СМО можно использовать Parallel.For или Parallel.ForEach.
int numberOfChannels = 3; // Количество каналов обслуживания
Parallel.For(0, numberOfChannels, i =>
{
// Код обработки заявок для каждого канала
Request request;
while (requestQueue.TryDequeue(out request))
{
// Обработка заявки
}
});
При использовании ConcurrentQueue, можно реализовать логику для ограничения размера очереди, проверяя ее размер перед добавлением новой заявки.
if (requestQueue.Count < maxQueueSize)
{
requestQueue.Enqueue(newRequest);
}
else
{
// Отказ или перенаправление заявки
}
Использование конкурентных коллекций вместе с Parallel Framework на платформе .NET позволяет эффективно реализовывать многоканальные СМО с ограниченной очередью. Конкурентные коллекции обеспечивают потокобезопасное управление данными, в то время как Parallel Framework позволяет легко распараллеливать обработку заявок по множеству каналов. Это не только улучшает производительность системы, но и обеспечивает более высокую точность моделирования в средах с высокой степенью параллелизма.
Другой важный аспект – это эффективное распределение ресурсов между каналами. Можно использовать Parallel Framework для динамического балансирования нагрузки между каналами обслуживания.
Parallel.ForEach(requestQueue, new ParallelOptions { MaxDegreeOfParallelism = numberOfChannels }, (request) =>
{
// Код обработки заявки
});
Такой подход позволяет системе автоматически адаптироваться к изменениям в потоке заявок и распределять ресурсы между каналами наиболее эффективным образом.
Помимо обработки заявок, важно также реализовать механизмы мониторинга и анализа производительности системы. Это может включать в себя сбор статистики о времени ожидания в очереди, времени обслуживания и доле отказов. Эти данные могут быть использованы для последующего анализа и оптимизации системы.
РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ
Было проведено сравнительное тестирование двух реализаций системы массового обслуживания 10 заявок по сокрытию файлов (объемом ~600 КБ) с применением приложения для ассоциативной защиты файлов, представленного в статье [13]: с использованием Parallel Framework и без его использования. Тестирование проводилось на процессоре Intel Core i5-9300H с базовой частотой 2,4 ГГц под управлением ОС Windows 11 Pro.
Исходя из результатов тестирования, среднее время обработки одной заявки в реализации с использованием Parallel Framework составило 69 678 миллисекунд, в то время как в реализации без использования Parallel Framework – 240 345 миллисекунд. Это указывает на улучшение производительности в 3,45 раз при использовании Parallel Framework.
Однако, следует отметить, что Parallel Framework эффективен только при определенных условиях. При небольшом числе заявок и низкой сложности обработки заявок, затраты на управление параллельными потоками могут уменьшить преимущества многопоточности. Кроме того, существует риск высокой конкуренции за ресурсы, что может привести к снижению производительности при обработке большого объема данных.
Таким образом, рекомендуется применять Parallel Framework для задач с высокой вычислительной сложностью и большим объемом данных, где параллелизация может существенно уменьшить время выполнения. В то же время, для более простых задач, следует оценить возможные выгоды и определить, является ли использование многопоточности оптимальным решением.
ЗАКЛЮЧЕНИЕ
Реализация многоканальной системы массового обслуживания с ограниченной очередью на платформе .NET с применением Parallel Framework и конкурентных коллекций позволяет создать высокопроизводительное и масштабируемое решение. Использование потокобезопасных структур данных обеспечивает надежность системы в многопоточной среде, в то время как возможности параллелизма позволяют эффективно использовать ресурсы и адаптировать систему к изменяющимся условиям работы.
С помощью Parallel Framework предложен новый подход к распределению заявок по каналам, что способствует более эффективной обработке. В отличие от традиционных методов, которые могут быть ограничены однопоточной обработкой, этот подход позволяет распараллеливать задачи, оптимизируя использование многоядерных процессоров. Parallel Framework обеспечивает динамическое распределение нагрузки, что позволяет системе автоматически адаптироваться к изменениям в потоке заявок. Это ведет к более высокой пропускной способности и меньшим временем ожидания заявок.
Дальнейшее развитие многоканальной системы массового обслуживания (СМО) с ограниченной очередью на платформе .NET может быть направлено на усовершенствование производительности, гибкости и аналитических возможностей системы. Приведем несколько направлений, которые могут быть рассмотрены.
- Адаптивные алгоритмы могут быть применены для автоматической настройки числа каналов и размера очереди на основе наблюдаемой нагрузки. Это позволит системе автоматически реагировать на изменения в потоке заявок, оптимизируя использование ресурсов.
- Интеграция с облачными сервисами, такими как Azure, может обеспечить масштабируемость системы на новом уровне. Это может включать в себя возможность динамического масштабирования ресурсов и использования облачных сервисов для хранения и обработки данных.
- Расширение аналитических возможностей системы путем внедрения продвинутых инструментов мониторинга и анализа данных. Это может помочь в выявлении узких мест, предсказании будущих трендов и оптимизации процессов обслуживания.
- Применение машинного обучения для предсказания потока заявок и оптимизации производительности системы. Это может включать в себя алгоритмы прогнозирования временных рядов, обучение с подкреплением и другие техники.
- Применение архитектуры микросервисов может обеспечить большую гибкость и расширяемость системы, позволяя добавлять новые функции и сервисы без необходимости перестраивать всю систему.
About the authors
Polina V. Antonova
Kazan National Research Technological University
Author for correspondence.
Email: valerevna.p@inbox.ru
Scopus Author ID: 57219972636
senior lecturer at the Department of Intelligent Systems and Information Resource Management
Russian Federation, Kazan, Republic of TatarstanReferences
- Wang Y.F., Zhang Y.F., Fuh J.Y.H. Using Hybrid Particle Swarm Optimization for Process Planning Problem. IEEE International Joint Conference on Computational Sciences and Optimization. 2009. Pp. 304–308.
- Shevtsov A.N., Shchitov A.N., Konoreva N.A. Modeling of Telecommunication Systems with CMOS. Mathematics and its Applications in Modern Science and Practice. 2015. Pp. 128–132. (In Rus.)
- Vishnevsky V.M., Dudin A.N. Mass service systems with correlated input streams and their application to the modeling of telecommunication networks. Automation and Telemechanics. 2017. No. 8. Pp. 3–59. (In Rus.)
- Anitha G., Damodharan P. Resource cost reduction in cloud computing. IEEE International Conference on Current Trends in Engineering and Technology (ICCTET). 2013. Pp. 331–333.
- Gibadullin R.F., Nikonorov V.V. Development of the System for Automated Incident Management Based on Open-Source Software. IEEE International Russian Automation Conference (RusAutoCon). 2021. Pp. 521–525.
- Anisimova G.B., Grachev P.V. Design and development of information system of applications management for mobile operator company. Engineering Herald of the Don. 2022. No. 5. URL: ivdon.ru/ru/magazine/archive/n5y2022/7660/ (In Rus.)
- Osipov L.A. Simulation modeling of mass service systems with limited queueing. Science and Technology of Transport. 2010. No. 4. Pp. 30–36. (In Rus.)
- Gibadullin R.F., Viktorov I.V. Ambiguity of results when using methods of Parallel class within .NET Framework executable environment. Software Systems and Computational Methods. 2023. No. 2. Pp. 1–14. (In Rus.)
- Weerasinghe D.N.H. et al. Smart UML – Assignment Management Tool for UML Diagrams. IEEE 4th International Conference on Advancements in Computing (ICAC). 2022. Pp. 114–119.
- Garcia A.M. et al. Introducing a Stream Processing Framework for Assessing Parallel Programming Interfaces. IEEE 29th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP). 2021. Pp. 84–88.
- Osipov G.S. Research of mass service systems with waiting in AnyLogic. Bulletin of Science and Practice. 2016. No. 10. Pp. 139–151. (In Rus.)
- Osipov G.S. Mass service systems with limited waiting time. Bulletin of Science and Practice. 2016. No. 12. Pp. 28–36. (In Rus.)
- Gibadullin R.F., Vershinin I.S., Glebov E.E. Development of application for associative protection of files. Engineering Herald of Don. 2023. No. 6. (In Rus.) URL: ivdon.ru/ru/magazine/archive/n6y2023/8462/
Supplementary files

