Ðóñ Eng Cn Translate this page:
Please select your language to translate the article


You can just close the window to don't translate
Library
Your profile

Back to contents

Software systems and computational methods
Reference:

Principles of developing a limited-queue mass service system on the .NET platform

Antonova Polina Valerevna

Senior Lecturer of the Department of Intelligent Systems and Information Resource Management of Kazan National Research Technological University

420015, Russia, Republic of Tatarstan, Kazan, Karl Marx str., 68

valerevna.p@inbox.ru

DOI:

10.7256/2454-0714.2023.2.43403

EDN:

HIXNHH

Received:

21-06-2023


Published:

29-06-2023


Abstract: The paper is the result of the thorough research aimed at studying the principles of creation, modeling and practical use of queue-limited mass service systems (MSS) based on the .NET technology platform and implemented using the C# programming language. In the course of the paper, special attention is paid to both single-channel and multi-channel systems. In the introductory part of the article the fundamental concepts of the theory of mass service are considered. The basic characteristics of systems, such as fixed queue length systems, single-channel and multi-channel systems with probability of service failure, systems with unlimited and limited wait times, closed systems, and multi-channel systems with channel-to-channel interaction, are discussed. Detailed examples of C# code are presented to illustrate the class structures used to model both single-channel and multi-channel MSS. Specific scenarios for the use of the presented structures within the framework of MSS modeling are considered. The paper highlights the practical application of mass service systems in solving real-world problems. Using examples from banking and traffic management in telecommunications, it is demonstrated how MSS can contribute to optimizing waiting times and efficient resource management. Prospects for further research in the field of mass service systems are suggested. Given the importance of MSS in various industries such as banking, telecommunications, logistics and many others, the high relevance of the topic is due to the need to find new approaches and methods to improve the efficiency and optimization of these systems. In general, the article is a valuable research material for specialists involved in modeling and practical application of mass service systems.


Keywords:

mass service systems, modeling, limited queue, single-channel systems, multichannel systems, C Sharp, NET platform, optimization, software systems, computational techniques

This article is automatically translated. You can find original text of the article here.

Introduction

Queuing theory plays a key role in the analysis and optimization of processes related to the servicing of application flows in various fields, such as telecommunications, transport, healthcare and manufacturing [1, 2]. Let's consider the basic concepts of queuing theory and types of service systems. 

Fixed queue systems: In fixed queue systems, the number of places in the queue is limited. The ordering tasks concern determining the order in which applications will be served. The main ordering strategies include FIFO (First In, First Out), LIFO (Last In, First Out) and Priority maintenance. 

Single-channel and multi-channel systems with failures: in single-channel systems there is only one service channel. If the request arrives when the channel is busy, it can be rejected or queued. Multi-channel systems have several service channels, which allows you to process several applications simultaneously. If all channels are busy, the application can also be rejected or queued.

Systems with unlimited and limited waiting for service: in systems with unlimited waiting, applications can wait for service indefinitely. In systems with limited waiting, there are restrictions on queue length or waiting time. If the application cannot be served within these limits, it is rejected. 

Closed systems: In closed systems, applications are returned to the system after maintenance. This is often found in scenarios where resources are circulating in the system and can be reused. 

Multichannel systems with inter-channel interaction: In some multichannel systems, channels can interact with each other, dynamically allocating resources and exchanging information to improve service efficiency. This is important in complex network environments where different channels can handle different types of requests and a flexible response to changes in workload is needed.

Various mathematical models and methods such as Markov processes, queue theory and simulation are used to analyze queuing systems and determine optimal service strategies. Markov processes allow us to describe random processes with discrete states, queue theory focuses on the characteristics of request flows and service channels, and simulation modeling allows us to study the behavior of the system in various conditions. 

Knowledge and understanding of queuing theory are of high practical importance. For example, in telecommunications it helps to optimize network resources, in healthcare it helps to reduce patient waiting times, and in manufacturing it helps to increase productivity and reduce costs [3, 4].

Queuing systems with a limited queue are an important subclass in queuing theory. They are characterized by the presence of an upper limit on the number of applications that can wait for service in the queue. As soon as this limit is reached, all subsequent applications will be rejected until a place in the queue is vacated [5].

Let's imagine aspects of queuing systems with a limited queue:

– Queue: A queue is a data structure that stores requests awaiting service. In systems with a limited queue, the number of applications in the queue cannot exceed a certain level, known as queue capacity.

– Service strategies: Systems with a limited queue can use various service strategies, such as FIFO (first come, first served), LIFO (last come, first served) or priority service, where some requests may take priority over others.

– M/M/c/K model: One of the most well–known models of systems with a limited queue is the M/M/c/K model. In this model, the time intervals between the receipt of requests and the service time are assumed to be exponential (denoted by the letter 'M'), 'c' denotes the number of service channels, and 'K' - the total number of places in the system (the number of places in the queue plus the number of channels).

– Performance analysis: various indicators are used to analyze the performance of systems with a limited queue, such as the probability of blocking (the probability of rejecting a new application), the average waiting time in the queue and the average number of applications in the system [6].

– Application: Queue-limited systems are widely used in various fields, such as telecommunications (for call management), network routers (for data packet management), healthcare (for patient flow management) and manufacturing (for optimization of production lines). For example, in telecommunications, queue-limited systems can be used to manage incoming calls in a call center. When all operators are busy and the queue has reached its maximum capacity, subsequent calls can be redirected to an automatic voice response system or receive a failure message. In the field of healthcare, systems with a limited queue can be used in emergency departments, where patients can be admitted according to the level of urgency of their condition. When the queue reaches its maximum capacity, patients with less urgent conditions can be referred to other medical institutions.

– Challenges and optimization strategies: One of the key challenges in systems with a limited queue is balancing between the service level and resources. Too small a queue can lead to frequent failures, while too large a queue can lead to inefficient use of resources. Optimization of such systems often comes down to choosing the appropriate queue size and number of service channels, as well as choosing an effective service strategy. Simulation modeling and analytical methods, such as queue theory, can be used to analyze and optimize system performance in various scenarios. 

Queuing systems with a limited queue play an important role in many areas where it is necessary to effectively manage the flow of applications. Optimization of such systems is a complex task that requires analysis and the use of specialized tools and methods. 

The article presents the principles of implementing single - channel and multi - channel CFR with a limited queue on the platform .NET using the C# programming language.

The relevance of the application of the platform .NET for implementing queuing systems with a limited queue in the C# programming language can be considered from several points of view:

– C# is a high-performance programming language, and a platform.NET provides modern tools and libraries for optimizing work with data and resources. This allows you to create high-performance QMS capable of processing a large number of applications with minimal delays.

– Platform .NET and C# provide built-in support for multithreading and parallel computing [7, 8]. This is especially true for CFOs, where it is often necessary to process several applications in parallel and coordinate the work of several service channels.

– .NET provides a wide range of libraries and tools that can be used in the development of CFR. This includes libraries for working with mathematical models, statistical analysis, simulation modeling and other tools necessary for the effective design of queuing systems.

– Platform .NET supports cross-platform deployment, which allows you to develop applications that can run on different operating systems without changing the code. This adds flexibility to the deployment and scaling of QMS in different environments.

– C# is known for its clean syntax and strict typing, which contributes to writing readable and maintainable code [9]. This facilitates the development of complex systems, such as CFR, and reduces the cost of their support and development.

 

Principles of developing a single-channel CFR with a limited queue

A single-channel queuing system with a limited queue is an important model used in various fields, from telecommunications to healthcare. 

To demonstrate the implementation of this type of CFR using the platform .NET and the C# programming language consider a simple example of a single-channel CFR with a maximum queue capacity of 5.

First, let's create a SingleServerQueue class that will encapsulate the CFR logic.

public?class?SingleServerQueue
{
private?Queue?queue;
private?int?maxQueueLength;
private?bool?isServerBusy;
public?SingleServerQueue(int?maxQueueLength)
{
this.queue?=?new?Queue();
this.maxQueueLength?=?maxQueueLength;
this.isServerBusy?=?false;
}
public?bool?EnqueueCustomer(Customer?customer)
{
if?(queue.Count?<?maxQueueLength)
{
queue.Enqueue(customer);
return?true;
}
return?false;
}
public?void?DequeueCustomer()
{
if?(queue.Count?>?0)
{
queue.Dequeue();
if?(queue.Count?==?0)
{
isServerBusy?=?false;
}
}
}?
//?Additional?methods?and?properties
}

Now that we have the main class, let's create a simulation. 

class?Program?
{?
static?void?Main(string[]?args)?
{?
SingleServerQueue?singleServerQueue?=?new?SingleServerQueue(5);
for?(int?i?=?0;?i?<?10;?i++)?
{?
Customer?customer?=?new?Customer();?
bool?isEnqueued?=?singleServerQueue.EnqueueCustomer(customer);
if?(isEnqueued)?
{?
Console.WriteLine($"Customer?{i}?is?enqueued.");?
}?
else?
{?
Console.WriteLine($"Customer?{i}?is?rejected.");?
}?
}?
}?
}?

In this code example, we create an instance of a single-channel CFR with a maximum queue length of 5 and try to add 10 clients. 

After creating a basic simulation, an important step is the analysis and optimization of the CFR. In C#, you can use various libraries and tools for performance analysis, such as profilers and tools for working with statistical data.

public?void?ProcessCustomers()
{?
while?(queue.Count?>?0)
{?
Customer?customer?=?queue.Peek();?
if?(IsServiceCompleted(customer))?
{?
DequeueCustomer();?
}?
}?
}?
private?bool?IsServiceCompleted(Customer?customer)?
{?
//?Logic?definitions?completed?if?service?client?
}?

In the code snippet above, we add methods for processing clients in the queue and checking for service completion. This can be expanded by using statistical methods to analyze waiting times, service efficiency, and other metrics.

Due to the object-oriented nature of C#, it is easy to extend and modify the CFR by adding new functionality or modifying existing ones. For example, you can add queue priority support, implement scheduling algorithms, or integrate with external data sources. 

When creating a real CFR application, it is also important to provide a user interface. Using .NET it is possible to create both console and graphical user interfaces (GUI), which allows you to create convenient tools for monitoring and managing CFR.

 

Principles of developing a multichannel CFR with a limited queue

In modern conditions, when many processes require optimization and parallelization, multi-channel queuing systems are becoming more and more relevant. They are used in various industries: from telecommunications to logistics. This fragment of the scientific article discusses the principles of developing a multi - channel CFR with a limited queue on the platform .NET using the C# programming language. 

The main components of the CFR are service channels and a queue. In C#, you can use classes and collections to model these components. For example, a queue can be represented using the Queue collection, and service channels can be represented using a list of channel objects.

public?class?ServiceChannel
{
public?bool?IsBusy?{?get;?set;?}
//?other?properties?and?methods
}
public?class?MultiChannelQueueSystem
{
private?Queue?queue?=?new?Queue();
private?List?serviceChannels?=?new?List();
public?MultiChannelQueueSystem(int?numberOfChannels)
{
for?(int?i?=?0;?i?<?numberOfChannels;?i++)
{
serviceChannels.Add(new?ServiceChannel());
}
}
//?other?methods
}

Processing of applications in a multi-channel CFR includes adding applications to the queue and their subsequent processing by available channels. 

public?void?EnqueueCustomer(Customer?customer)
{
if?(queue.Count?<?MaxQueueLength)
{
queue.Enqueue(customer);
}
}
public?void?ProcessQueue()
{
foreach?(ServiceChannel?channel?in?serviceChannels)
{
if?(!channel.IsBusy?&&?queue.Count?>?0)
{
Customer?customer?=?queue.Dequeue();
//?Processing of?application?on?channel
}
}
}

After modeling a multi-channel CFR, it is important to analyze its operation. This may include monitoring queue waiting times, channel loading, and other parameters. 

Using object-oriented approaches (OOP) approaches in C#, you can create flexible and reusable components, which will allow you to easily adapt the system to different conditions and requirements. For example, you can implement a base class for a service channel and inherit it for special types of channels.

public?class?ServiceChannel
{
public?virtual?bool?IsBusy?{?get;?set;?}
//?other?properties?and?methods
}
public?class?PriorityServiceChannel?:?ServiceChannel
{
public?override?bool?IsBusy
{
get
{
//?Custom?logic?for?priority?channel
}
set?{?/*?...?*/?}
}
}

You can also add events and delegates to handle various scenarios in the system, such as queue overflow alerts. 

Since multichannel CFR involves simultaneous servicing of several applications, it is important to use multithreading effectively [10]. In C#, this can be done using the Task Parallel Library (TPL). 

public?void?ProcessQueue()
{
Parallel.ForEach(serviceChannels,?(channel)?=>
{
if?(!channel.IsBusy?&&?queue.Count?>?0)
{
Customer?customer?=?queue.Dequeue();
//?Processing of?application?on?channel
}
});
}

When developing a QMS, it is important to conduct testing and validation to verify the correctness of the system. This can be done using unit tests and integration testing. 

Development of a multi - channel queuing system with a limited queue on the platform .NET using C# allows you to create efficient and flexible solutions. Thanks to the capabilities of OOP, multithreading and powerful libraries, C# is an excellent choice for implementing complex QMS that can adapt to changing requirements and conditions.

 

Practical use

Queuing systems are actively used in various fields, from telecommunications to finance [11, 12]. In this part of the article , we will look at examples of practical implementation of single - channel and multi - channel CFR with a limited queue on the platform .NET using C#.

To model a single-channel CFR with a limited queue, create the SingleChannelQueueSystem class.

public?class?SingleChannelQueueSystem
{
private?Queue?queue?=?new?Queue();
private?bool?isChannelBusy?=?false;
private?readonly?int?maxQueueLength;
public?SingleChannelQueueSystem(int?maxQueueLength)
{
this.maxQueueLength?=?maxQueueLength;
}
public?void?EnqueueCustomer(Customer?customer)
{
if?(queue.Count?<?maxQueueLength)
{
queue.Enqueue(customer);
}
}
public?void?ProcessQueue()
{
if?(!isChannelBusy?&&?queue.Any())
{
var?customer?=?queue.Dequeue();
isChannelBusy?=?true;
//?Processing?of the client
isChannelBusy?=?false;
}
}
}

Usage example:

SingleChannelQueueSystem?queueSystem?=?new?SingleChannelQueueSystem(5);
queueSystem.EnqueueCustomer(new?Customer());
queueSystem.EnqueueCustomer(new?Customer());
queueSystem.ProcessQueue();

To model a multichannel CFR, create the MultiChannelQueueSystem class.

public?class?MultiChannelQueueSystem
{
private?Queue?queue?=?new?Queue();
private?List?serviceChannels;
private?readonly?int?maxQueueLength;
public?MultiChannelQueueSystem(int?numberOfChannels,?int?maxQueueLength)
{
serviceChannels?=?new?List(new?bool[numberOfChannels]);
this.maxQueueLength?=?maxQueueLength;
}
public?void?EnqueueCustomer(Customer?customer)
{
if?(queue.Count?<?maxQueueLength)
{
queue.Enqueue(customer);
}
}
public?void?ProcessQueue()
{
for?(int?i?=?0;?i?<?serviceChannels.Count;?i++)
{
if?(!serviceChannels[i]?&&?queue.Any())
{
var?customer?=?queue.Dequeue();
serviceChannels[i]?=?true;
//?Processing?of the client
serviceChannels[i]?=?false;
}
}
}
}

Usage example:

MultiChannelQueueSystem?queueSystem?=?new?MultiChannelQueueSystem(3,?10);
queueSystem.EnqueueCustomer(new?Customer());
queueSystem.EnqueueCustomer(new?Customer());
queueSystem.EnqueueCustomer(new?Customer());
queueSystem.ProcessQueue();

After creating the basic CFR models, it is important to analyze their performance and correctness of work. Using profiling tools such as Visual Studio Profiler will help identify bottlenecks and optimize the code.

Parallelization can be used to improve the performance of a multi-channel CFR. This can be done using the Task Parallel Library (TPL) in C#.

public?void?ProcessQueueParallel()
{
Parallel.For(0,?serviceChannels.Count,?i?=>
{
if?(!serviceChannels[i]?&&?queue.Any())
{
var?customer?=?queue.Dequeue();
serviceChannels[i]?=?true;
//?Processing?of the client
serviceChannels[i]?=?false;
}
});
}

Testing and validation of the system is necessary to ensure the accuracy and reliability of the simulation. To do this, you can use unit tests and testing tools such as MSTest, NUnit or xUnit.

Example of a unit test:

[TestClass]
public?class?QueueSystemTests
{
[TestMethod]
public?void?TestSingleChannelQueueSystem()
{
var?queueSystem?=?new?SingleChannelQueueSystem(5);
queueSystem.EnqueueCustomer(new?Customer());
queueSystem.ProcessQueue();
//?Checking?the conditions?(e.g.?the correct?amount?filings?in?queue)
}
}

Single-channel and multi-channel queuing systems can be applied in various fields, such as telecommunications, banking, logistics, etc. In particular, they can be used to optimize customer waiting times, resource allocation, and improve overall system performance.

 

Conclusion

The development of queuing systems with a limited queue is a complex process that includes modeling, analysis, optimization and creation of a user interface. Application of modern technologies and tools available within the framework of the platform.NET, allows you to create efficient and scalable solutions that can cope with real tasks in various industries. 

The article highlights the key aspects of the development, modeling and practical implementation of CFR using technologies.NET and the C# language. A detailed examination of single-channel and multi-channel systems, their features, principles of operation and methods of implementation is carried out. 

In addition to the considered aspects, there are a number of directions for further research and development of queuing systems:

– Integration with artificial intelligence: with the use of artificial intelligence, it is possible to improve decision-making processes in the system, for example, to predict the flow of applications and dynamically change system parameters to optimize service.

– Using cloud technologies: Integration with cloud platforms can provide increased availability, scalability and reliability of the system, as well as reduce infrastructure costs.

– Advanced analytics and visualization: The development of data analytics and visualization tools will allow system administrators and users to monitor and analyze the progress of maintenance more effectively and use this information to optimize processes.

– Ensuring security: Data and transaction security is a key aspect in modern queuing systems [13, 14]. The development and integration of protection mechanisms against unauthorized access and malicious software is an important part of creating a reliable system.

References
1. Harchol-Balter, M. (2013). Performance modeling and design of computer systems: queueing theory in action. Cambridge University Press.
2. Shevtsov, A. N., Shchitov, A. N., & Konoreva, N. A. (2015). Simulation of telecommunication systems using queueing theory. Mathematics and Its Applications in Modern Science and Practice, 128-132.
3. Vishnevsky, V. M., & Dudin, A. N. (2017). Queueing systems with correlated input flows and their application for modeling telecommunication networks. Automation and Remote Control, 8, 3-59.
4. Gross, D., & Harris, C. (1998). Fundamentals of Queueing Theory. New York, NY, USA: Wiley-Interscience.
5. Osipov, L. A. (2010). Simulation modeling of queueing systems with limited queue. Science and Technology of Transport, 4, 30-36.
6. Furina, K. O., & Osechkina, T. A. (2014). Mathematical model of a single-channel queueing system with a limited queue. Science and Modernity, 2, 103-110.
7. Gibadullin, R. F. (2022). Thread-safe control calls in rich client applications. Software Systems and Computational Methods, 4, 1-19.
8. Gibadullin, R. F., & Viktorov, I. V. (2023). Ambiguity of results when using parallel class methods in the .NET framework runtime environment. Software Systems and Computational Methods, 2, 1-14.
9. Albahari, J. (2022). C# 10 in a Nutshell. O'Reilly Media, Inc.
10. Viktorov, I. V., & Gibadullin, R. F. (2023). Development of a syntax tree for an automated translator of sequential program code into parallel code for multicore processors. Software Systems and Computational Methods, 1, 13-25.
11. Osipov, G. S. (2016). Study of queueing systems with waiting in AnyLogic. Bulletin of Science and Practice, 10(11), 139-151.
12. Osipov, G. S. (2016). Queueing systems with limited waiting time. Bulletin of Science and Practice, 12(13), 28-36.
13. Gibadullin, R. F., Gashigullin, D. A., & Vershinin, I. S. (2023). Development of the StegoStream decorator for associative protection of byte stream. Modeling, Optimization and Information Technologies, 11(2). URL: moitvivt.ru/ru/journal/pdf?id=1359. doi: 10.26102/2310-6018/2023.41.2.023.
14. Gibadullin, R. F., Vershinin, I. S., & Glebov, E. E. (2023). Development of the application for associative file protection. Engineering Bulletin of the Don, 6. URL: ivdon.ru/ru/magazine/archive/n6y2023/8462/.

Peer Review

Peer reviewers' evaluations remain confidential and are not disclosed to the public. Only external reviews, authorized for publication by the article's author(s), are made public. Typically, these final reviews are conducted after the manuscript's revision. Adhering to our double-blind review policy, the reviewer's identity is kept confidential.
The list of publisher reviewers can be found here.

The subject of the research in the reviewed article is the Principles of developing queuing systems with a limited queue. The research methodology is based on the study of domestic and foreign experience in the development of queuing systems in C#. The authors attribute the relevance of the work to the fact that queuing systems play a key role in analyzing and optimizing processes related to servicing application flows in various fields such as telecommunications, transport, healthcare and manufacturing. Unfortunately, the scientific novelty of the reviewed research has not been formulated by the author, and after reading the article it is not clear what the increment of scientific knowledge is. Structurally, the following sections are highlighted in the article: Introduction, Principles of developing a single-channel queuing system (QMS) with a limited queue, Principles of developing a multi-channel QMS with a limited queue, Practical use, Conclusion, Bibliography. At the beginning of the article, the authors give the basic concepts of queuing theory and consider the types of queuing systems. To demonstrate the implementation of this CFR using the platform .NET and the C# programming language fragments of the C# programming code are presented in the work. The publication discusses how, after creating a basic simulation, to analyze and optimize the QMS using various libraries and performance analysis tools (profilers and tools for working with statistical data). Special attention is paid to the practical implementation of CFR with a limited queue on the platform.NET using C#. In conclusion, the prospects for the development of queuing systems are considered. The bibliographic list includes 14 sources – publications by Russian and foreign authors on the topic of the article. The text contains targeted references to bibliographic sources, which confirms the existence of an appeal to opponents. Of the disadvantages, the following should be noted. Firstly, an abbreviation (acronym) is used in the title of the article, which is not the best option, since in scientific publications it is customary to provide a complete transcription of words after the first use of abbreviations, but for obvious reasons it will not be possible to do this in the title of the article. The author is invited to consider the following version of the title of the article: "Principles of developing queuing systems with a limited queue on modern software platforms." Secondly, the text of the article does not specify such a generally accepted element in modern scientific publications as research methods. Thirdly, the article does not formulate the purpose and does not reflect the elements of scientific novelty. Fourthly, it seems appropriate to reduce the volume of the article by excluding from the text of the publication the well-known provisions of the theory of queuing, set out at the beginning of the article and repeating the material of the educational literature. The reviewed material corresponds to the direction of the journal "Software Systems and Computational Methods", reflects the results of the work carried out by the authors, and is of practical importance for the development of queuing systems with a limited queue on the platform.NET may be of interest to readers, however, the article needs to be finalized in accordance with the comments made.