Multi-agent tasks scheduling system in software defined networks

In this paper a multi-agent tasks scheduling system in software defined networks is considered. This system is designed for distribution simulation and tasks implementation on computational resources including network dynamic characteristics and topology.

visualization that allows creating complex solutions for the network management [3].
In that regard the problem remains up to date and valuable for the simulation and research of different variants of network organization. on the scheduling algorithms and computing system characteristics. The approach using randomized algorithms is considered in [6]. Load balancing task of the computing network nodes in the stochastic statement is reviewed in [7]. One of the rapidly developing concepts nowadays is a distributed computing model. It is based on the network access provision to the common computing network resources, which considerably reduce the users expenses on the creation of the corresponding infrastructure and has flexible reaction to the changes of computational requirements. Distributed computing controlled by SDN can be more efficient from the side of the operation speed, as the network can be optimized by multiple special algorithms, considering topology and network dynamic characteristics. One of the computing optimization tasks in the distributed system of the network devices is a load balancing task that is being actively investigated today.
In the paper [4] there is considered a games theory application to the task to provide the required level of service in the system of the applications that compete for the resources. A service quality optimization problem in distributed dynamic computing systems [5] is investigated with the help of the theory of probability. It is suggested to calculate the local times of the tasks completion, queue lengths, waiting times and other metrics. There was carried out a resources availability simulation depending The global goal of modeling is to provide the tasks execution for the shortest time with the balanced load of all the network nodes.
It is suggested to fulfill the dynamic distribution of tasks over the network servers with the multi-agent approach. Basic system entities are associated with the program agent, task agent, resource (server) agent and commutator agent. Agents are described by attributes that include the most essential fields, properties and interaction rules. Each agent has its own goal and aspires to reach it, by sending and receiving messages from other agents. To solve the optimization problems of agents states "virtual costs" are introduced, which allow applying market approach in multi-agent system. At the same time there are changes in the agents attribute values, therefore at each moment of time there exists some state of multi-agent system that is responsible for the local optimum decision.
The compliance of the servers and tasks types is defined in the description of each task. Tasks arrive at any time and redistribute in the system. As a result a tasks queue for the execution is formed on every server. The order of tasks redistribution is defined on the logic layer of the controller. In that case dynamic characteristics of data transfer channels, queue statuses on each network device (commutators, servers) and type compatibility of tasks and servers are considered. The SND controller dynamically defines the most convenient servers for the tasks execution, including

Solution method and multi-agent scheduling system description
There is a system, consisting of several computational servers that are connected via the OpenFlow commutators to the network, managed by the SDN controller. The servers are designed to complete the tasks of different types with different speed, depending on the task type and resource (server) workload. A task flow enters the system and each one of the tasks can be executed on the bounded subset of servers ( Fig. 1).
In the current paper a multi-agent approach to the computing problems scheduling in the distributed system based on the developed model of tasks and resources agents network is considered [8,9]. Every task agent connects with the piece linear function of bonuses/fines, which changes the current virtual account of task agent depending on the correlation of the desirable and actual time, priority and computational cost of the task. Computational

System logical architecture
System consists of the knowledge baseontology, which includes descriptions of the concepts types: task agents, resource agents and commutator agents. Attributes, properties and relations are set between them. Virtual world scene serves for the agents' instances interaction through the message exchange. Generator of external events creates flows of the tasks entering the system with different static characteristics, for example events of productivity and servers types change, their inaccessibility periods, connection and disconnection of the highlighted network fragments.
User interface subsystem allows starting the events simulation, visualizing network graph, tasks cost dynamics, tasks distribution and queues on servers, transfer channels loading and others.

Task agent
Task agent represents a computing task that needs to be scheduled and executed with the smallest expenses on one of the servers in the SDN network.
At the moment of each task arrival into the system, task agent is created and in this domain area its attributes will be the following fields:  task arrival time,  task data volume,  task type (correlates with the server type),  each connection capacity with the closest commutator agents,  current task list for the transfer via any connection to commutator agents,  current virtual commutator account state.

System operation
Initially the system has certain topology of connections, for example, ring. Tasks arrive in a random way on one or several commutators from the external networks. When a new task arrives, system automatically performs the scheduling in three stages:

Resource (server) agent
Resource agent provides a server to the system, on which the tasks can be executed. Server agent goal is to schedule as much as possible tasks and get the maximum virtual profit from the tasks execution.
Resource agent attributes in this domain area will be the following fields:  set of task types that can be executed on this server,  resource productivity that defines the estimated time of tasks execution,  current task list that are scheduled on the resource,  allowable task queue volume,  resource time unit cost table,  current virtual resource account state.
Each resource agent associates with a penalty function that depends on the amount of the scheduled tasks on the specified scheduling horizon.

Commutator agent
Commutator agents provide actual information about network state to the scene and they are designed to provide the efficient tasks allocation to the nodes of the further movement. Commutator agent is described with the following fields:  allowable task queue volume, cost and correspondingly the critical ending time represent estimated upper limits that are not certain until the task implementation start on server. Actual values are defined at the start of real execution based on some statistics.   The developed system is a platform for simulation and experimentation on the choice of equipment operation logic and program system of network management.

Advantages and restrictions
The advantages of the suggested multi-agent approach are the following:  ontological description of the world of computing resources, tasks and network configuration scene allows to introduce new entities of SND and set their characteristics without significant expenses on reprogramming;  dynamic management of the state of all SDN world scene objects with the help of the scenarios (scripts);  changes in network topology can be made in real-time mode;  dynamic tasks scheduling on servers in multi-agent system that is provided by the constant tasks and resources proactivity, on basis of self-organization based on agents aspire to maximize the virtual profit in the interaction acts through the message exchange;  local optimality and consistency of the current schedule;  local optimality of packets routing ways and tasks queues;  the account of changes in the network surrounding and in statistic task flow characteristics in real-time (adaptivity) does not lead to the full schedule redesign, which reduces computational costs of simulation system;

Implementation
The system is developed as an OS Windows application using the .NET Framework platform on the programming language C#. Prototype kernel is implemented as a library (build) and the existing simulation logic can be extended with the use of it. User interface development is performed with the WPF technology. To display the network graph a Graph# library was used.
The current system implementation allows visualizing the studied network in the form of graph, executing initial network configuration and defining the parameters of individual devices: volume for task queues for individual commutators and servers, communication channels capacity, processing servers' productivity, devices turned on and off (Fig. 3).
In the course of the modeling process there is possible a modeling time scaling concerning the real, which allows to speed-up or slow down the simulation process at system user's will. Also in the top part of the user interface a system change log is displayed. Each event (new task arrival, task execution on the resource) is recorded in the log and is available for the analysis at any moment of simulation.
The system allows saving the previously formed network configuration to file. Moreover, the system can save the current state of the simulation process itself at any moment of time. At the same time simulation devices save all their current characteristics and in particular lists of all the executed and transferred tasks for each network device.
Therefore, user has an opportunity to save the partial results of simulation on different stages and next time continue the simulation from this stage by loading the saved file.
Besides the network configuration, saving and loading options, there is a possibility to form simulation script that defines parameters of the flow of the arriving to the network tasks (tasks distribution rule by time on each device) and individual parameters of the arriving tasks (volume, computational cost, type, priority and others). After the modeling scripts are formed, they can be saved and loaded in future. Therefore, network configurations are separated from the modeling scripts, which allows to carry out a series of various simulation experiments for one or different network topologies. At the moment with the help of the developed system prototype the research of advantages and restrictions of multi-agent approach continues.

Conclusion
The developed multi-agent tasks scheduling system in software defined networks is based on the dynamic improvement of network state by the local optimization of servers and commutators load on the basis of the "market" approach by expressing all of the characteristics for concessions solving by artificial currency. Task, resource and channel agents tend to concordantly raise their virtual profit that should lead to the system characteristics improvement.
In future it is planned to carry out the research of task queues dynamics in SDN, servers load characteristics, channels capacity and the effect of topology change on the given parameters.