**2. Properties suite of modern applications**

In my talk, I emphasized: "the main driving force of the development of infrastructure for computing, its operating environment, programming languages and tools have always been the needs of applications" [2]. The suet of these needs can be summarized as follows: distribution, self-sufficiency, real-time, elasticity, cross-platform, interaction and synchronization, and update-friendly. The definitions of these terms can be found in [2]. Nevertheless, for a better understanding of the further text, it is necessary to explain the term self-sufficiency, which is defined in [2] as: "application is no longer represented by code and source data only, it is accompanied by a description of the structure of the interconnection of the components (hereinafter application services) that make up the application, setting the required level of their productivity, explicitly formulated requirements for computing and network resources, data storage and access to data resources, intended timeframes for computing and data transmission in the form of a service level agreement (SLA), application launching procedures. This description is written in a special language, an example of which one can be the TOSCA language [6] (hereinafter such a description will be called Application Operation Specification—AOS)" [2].

## **3. Computational infrastructure requirements**

Here, let me briefly list the requirements for the computational infrastructure described in [2]: behavior predictability, security, availability, reliability and fault tolerance, efficiency and fairness, virtualization, scalability, and serverless. The serverless was defined there [6] as follows: "[T]he infrastructure should automatically place application components in a way that allows them to interact according to the application stricture, and in a way that ensures that the SLA requirements of the application are met, while minimizing infrastructure resources utilization".

In order for NPC to be able to meet the requirement of efficiency and predictability and serve as the computational infrastructure for applications, in the above sense its behavior and functioning must meet the requirements such as:


For predictability of the characteristics of data transfer between application components, it is necessary to:


Techniques and methods for predicting the execution time of services and applications will be considered later.

## **4. NPC functional architecture**

NPC functional architecture was presented in my talk [2]. Let me briefly repeat the main statements from there: "The computational infrastructure with properties above, we will call Network Powered by Computing (NPC)—it is a software-driven infrastructure, which is a tight software-driven integration of various computer installations with a high-speed DTN. Such an NPC is a fully manageable, programmable, virtualized infrastructure. In other words, the NPC becomes Computer!

The NPC organization should be based on the federative principle. Each federate has its own administration and possess an independent authority in whose jurisdiction there is a certain amount of computing, telecommunication, storage resources. Federate transfers part of these resources to the Federation authority, which forms and monitors a unified policy for their use.

Here is a summary of what a functional NPC architecture should look like. The core layers are the Application, Application Services, and Network Functions (ASNF) layer, the NPC Infrastructure Control (NPCIC) layer, NPC computational, networking, storage resources (NPCR) layer, and the E2E Orchestration, Administration, and Management (OAM) layer, responsible for organizing, administering and managing the NPC infrastructure.

The ASNF layer is responsible for application representation development: it's code and it's data, it's Application Operation Specification (AOS) representing application services (AS) and virtualized network functions (VNF) necessary for the operation of the application, specification of the data transmission network between application components. Specification of a network should include the topology for data transmission between application components, the requirements to the quality of service of the channels (QoS) that should include such characteristics as available bandwidth, admissible delay, admissible probability of packet loss, admissible jitter variation range. Based on this information and on SLA for the application as a whole ASNF calculates SLAs for each AS" [2].

#### *Network Powered by Computing: Next Generation of Computational Infrastructure DOI: http://dx.doi.org/10.5772/intechopen.110178*

NPCIC functionality provides scheduling and assignment of the application components to NPC resources in accordance with AOS and predicted time for computing, for data transfer, determination, collection, and aggregation of resources as necessary to comply with QoS resource requirements in accordance with the SLA of the application based on the current state of the resources, creating an overlay network according to AOS (topology, QoS channels, and security management). It is at this level that it is determined which VNFs will be required and where in the data transmission network.

The NPCR is responsible for a unified representation of the state of heterogeneous NPC resources, monitoring their current states, and predicting their states for the nearest future. The last functionality is the cornerstone to make NCP behavior be predictable.

The OAM layer orchestrates interactions of the application components in accordance with the AOS, collects resources consumption data for every application components, and manages the security and administration of NPC.

The basis for building NPC is formed by the technologies of software-defined networks (SDN) and network functions virtualization (NFV). Taking into account that the scaling range of network functions is wide and works in real time, the NPC will require low time complexity algorithms to optimize resource scheduling and resource allocation. And given the operation speed, as for data transmission networks and for computer installations, it becomes clear that only suboptimal solutions to the emerging optimization problems will be available based on Machine Learning (ML) methods. The functional architecture of the NPC described above is shown in **Figure 1** below.

Now, briefly consider the interaction components of NPC functional architecture. AOS can have two types of components: network functions (VNF) for managing data flows (traffic engineering) and application services for data processing and computational services (like modeling, simulation, etc.). Components of the first type (VNFs) are placed by DTN control plane on edge computing resources. Examples of VNF are NAT, Firewall, BRASS, balancers, shapers, and so on. Components of the second type —application services—are placed in a virtualized form (on virtual machines or

**Figure 1.** *Functional architecture of network powered by computing [2].*

containers) or directly on computing resources (servers, edges, data centers (DC), and HPC installations) of federates (in **Figure 1** above, they are shown as FCR in the form of racks).

In [2], I emphasize that the application programmer is not required to foresee and explicitly insert the necessary VNFs or their chains into his application. VNFs can be automatically integrated into AOS of application by means of NPCIC, just as compilers or application libraries do: "plug in" the necessary functionality into the application code. NPCIC can do this based on the monitoring data of available channels QoS supplied by NPCR. Based on this data, NPCIC has also calculated the routs for the application with the given AOS.

As it can be seen in **Figure 1** that DTN of NPC may consist in the form of several local DTN of different federates. Each local DTN is SD-WAN overlay with control plane and data plane. In control plane of every local DTN, it is assumed that there are controllers with the set of network applications, channels QoS control and monitoring block, network security center with PKI management, and distributed ledger (DL) of overlay tunnels (chain of overlay channels).

When AOS application services interact through the DTN, the SDN controller of the overlay network "catches" the request for data transfer, accessing DL of the overlay network tunnels to find the proper tunnel. If there is no one there, then the SD-WAN controllers apply to the control center for application services in the NPCIC layer. If the DL does not have the required tunnel or its validity period has expired, then the SD-WAN controllers from the control plane apply to the NPCIC layer that, in cooperation with E2E OAM Orchestrator (end-to-end orchestrator), forms the data necessary for SD-WAN controllers to build the desired tunnel.

As mentioned in [2]:"NPC can run applications in three modes—pro-active, active, and mixed. In pro-active mode, application services are loaded in advance on the federate resources in passive state (in the form of code and data on external or internal memory). In this case, when running the application, it is only necessary to activate the required application services according to AOS on those computing resources that will ensure SLA compliance with the specific call to a specific application. It should be clear from the above that different references to the same application may have different SLAs. Same application but with different SLA is treated as different one.

The active mode involves loading the code and data of the necessary application/ computing services in accordance with the AOS on the computing resources of the federates on demand in such a way as to ensure compliance with the SLA of the application. Mixed mode involves a combination of proactive and active modes, i.e. some of the application services and network functions are already pre-installed and are only being activated, the rest ones are loaded and activated upon request".

#### **5. The main problem statements**

In [2], there is a list of problems that NPC infrastructure should provide solutions to like the method of distribution (distributed vs. centralized) of computing resources between flows of computing/application services and request to them in a given NPC mode of operation (proactive, active, or mixed), method for optimal control of data flows in the interaction of computing/application services, and method for managing resource monitoring, prediction of the state of overlay network channels, selection of the optimal overlay network channel with the best QoS to meet the requirements of the SLA of the application, congestion control management, minimization of end-to*Network Powered by Computing: Next Generation of Computational Infrastructure DOI: http://dx.doi.org/10.5772/intechopen.110178*

end delay, bandwidth monitoring, scheduling flows in queues and so on, scaling the NPC control plane and the data plane when changing the NPC scale, optimal channel routing of the overlay DTN, fair distribution of channel bandwidth, balancing data flow between computing/application services, and allocation of channel bandwidth on demand [8]. In the NPCR layer, it is necessary to choose the resource state scan frequency, data presentation format, and so on.

Here, the statements for the most important problems are considered:


First of all, let us define the formal model of NPC. Denote:

*NPC* as *Γ* = (*V*, *А*), where

*V* = *CN*∪*SN*∪*P*, where

*CN*—set of NPC computational nodes,

*SN*—set of NPC VPN gateways,

*Р*—set of Г poles.

*A* = {(*vi*,*vj*) | *vi*,*vj ϵ V*}—multiple channels of overlay network.

*Q* (*lvi*,*vj*,*Δt*)|=(*B*, *D*, *L*, *J*) is the function defined on A, where.

*Δt* — interval of time;

*B* = ^ *<sup>b</sup>*, *<sup>b</sup>*Þ � ^ b, b band width of *lvi*,*vj* in terms: ^ *b*—average and *b*—maximum on *Δt*;

*D* = *d*, ^ *d*, *d* —delay on *<sup>Δ</sup><sup>t</sup>* in terms: *<sup>d</sup>*� minimum, ^ *d* —average, *d*—maximum

RTT;

*L*—percentage of lost packets;

*J* = ^*j*, *j*—jitter *Δt* in terms: ^*j*—average, *j* —maximum.

*CN* = {*cni* = <*cr*, *m*, *h*>}, where *cr*, *m*, *h* ϵ *N*—set of integers.

*cr*—number of cores (possible with characteristics);

*m*—amount of RAM;

*h*—storage size.

*P =* {*pi*}, where *pi*—source of requests/applications flows, which is characterized by the function of distributing the probability of requests/applications each with its SLA. Consider that the same request/application but with different SLAs are different requests/applications. The same *pi* can be a source of requests for different applications. Each request is characterized by an application ID and a specific SLA—execution time plus result delivery time.

*AS*—set of application services, each characterized by the required computing resources, memory resources, and storage resources (*сr*, *m*, *h*).

*VNF*—set of virtual network functions with required resources (computing, memory, and storage)—(*cr*, *m*, *and h*) presented in AOS.

Here, for simplicity, we suppose that one application service/network function is always allocated per one *cni* and will consider an application as a chain of application services from *AS*. However, in general, it could be a directed acyclic graph (DAG). So, chain of application services (ASC) is *W* = {*wk =* (*s k* 1, *… …* , *s k <sup>l</sup>*)}, where *s i <sup>j</sup> ϵ AS* ∪ *VNF*, *s i <sup>j</sup>* = <*cr*, *m*, *h*>.

Denote the function *ET:* (*AS* ∪ *VNF*) *x СN* ! *R*, where *R* – set of rational numbers. We will interpret *ET* as the estimation of execution time element from *AS* ∪ *VNF* on the certain *cni ϵ CN*. This function can be represented as a matrix, where columns correspond to elements from *AS* ∪ *VNF* and rows correspond to elements from *CN*; entries are execution times + data transfer time to the next *s i j* along the chosen channel. We will consider how to build this function in the next section.

In these terms, the problem of the optimal distribution of SFC on NPC can be formulated as follows:

Construct the mapping *F: W* ! *Γ* for a given set *P* in such a way that


$$F = \min \sum\_{\mathbf{1}} \mathbf{1}^{|\mathbf{C}\mathbf{N}|} \left[ \mathbf{a} \frac{\bar{\mathbf{c}}\_{\mathbf{i}}}{\mathbf{c}\_{\mathbf{i}}} + \boldsymbol{\upbeta} \frac{\bar{\mathbf{h}}\_{\mathbf{i}}}{\mathbf{h}\_{\mathbf{i}}} + \boldsymbol{\upgamma} \left( \left( \frac{\bar{\mathbf{c}}\_{\mathbf{i}}}{\mathbf{c}\_{\mathbf{i}}} - \boldsymbol{\upTheta} \right)^{2} + \left( \frac{\bar{\mathbf{h}}\_{\mathbf{i}}}{\mathbf{h}\_{\mathbf{i}}} - \boldsymbol{\upDelta} \right)^{2} \right) \right] \tag{1}$$

where

*α*, *β*, *γ*—constant values;

ci, *h*i—*cni* resources are used;

*ci*, *hi*—*cni* resources and queue length averaged over usage time;

*Θ*, *Δ* —the entire NPC resource usage averaged over time.

The *α*, *β*, *γ* values are the subject of adjustment of the application services allocation control. It is required to find the distribution of the AOS component *wk ϵW* in such a way as to minimize the objective function *F* from Eq. (1), that is, in the table representing the *ET* function, one needs to add the application service ID in those positions that correspond to the appropriate resources. *F* from Eq. (1) gives us the set f g *cni <sup>w</sup>* of which it is necessary to select only those that are connected by channels that form a path in NPC corresponding to SLA (*wk*).

The problem of distribution of application services over the resources of the NPC in proactive mode can be stated as: for given Γ, *AS*, *W*, and *P*, it is required to build a matrix *Х* with dimension |*Х*|=|*AS*|�|*CN*| where *xij* = 1; if *si* can be located on *cnj*, it is subject to the following conditions:


It is clear that for both problems, we have first of all proof for the existence of the solutions. Consider solving the problem of placing a chain of services in a NPC. It is divided into three subtasks:

1.Construct a set of all possible placements *s k <sup>j</sup>* for a given *wk* on *cn* nodes from *CN*;

2. Select only those placements that meet the requirements of the SLA of the application and the limits on the resources of the *cn* nodes;

*Network Powered by Computing: Next Generation of Computational Infrastructure DOI: http://dx.doi.org/10.5772/intechopen.110178*

3.Among *cn* nodes selected at step 2, choose only those for which the NPC topology contains a route on which the selected *cn* nodes are ordered according to the order on *wk*, that is, if *s k <sup>j</sup>* was assigned to *cni* and *s k <sup>j</sup>* + 1 to *cnr*, then (*cni*, *cnr*) *ϵ A*, which provides the necessary parameters for data transfer between *cni*, *cnr*.

Since the length *wi*, the number of computational nodes in CN, is limited, the problem certainly has a solution. You just need to go through a finite number of combinations. Let us estimate the space of possible solutions for some chain *w* from *W*. Let the length of any *wk ϵ W* not exceed *N*, where *N =* |*CN*| and |*wk*| *= k* ≤ *N*. Then, the number of application service locations for *wk* equals P*k*þ<sup>1</sup> *<sup>i</sup>*¼0*C<sup>i</sup> <sup>k</sup>* <sup>¼</sup> <sup>2</sup>*k.* The number of possible placements of these 2*<sup>k</sup>* substrings over NPC can be estimated by the following expression: P*<sup>k</sup>*þ<sup>1</sup> *<sup>i</sup>*¼<sup>0</sup>*Ci NC<sup>i</sup> <sup>k</sup>*. This expression can be evaluated under the condition that the lengths wk ϵ W are uniformly distributed on [1, N], as follows:

$$\sum\_{i=0}^{l+1} \mathbf{C}\_{N}^{i} \mathbf{C}\_{l}^{i} < \sum\_{i=0}^{l+1} \mathbf{2}^{l} \mathbf{C}\_{l}^{i} = \mathbf{2}^{l} \mathbf{2}^{N} \approx \mathbf{2}^{\frac{\omega}{2}}.\tag{2}$$

Even Nffi100 gives us the estimation of this expression 2150<sup>&</sup>gt; <sup>10</sup><sup>100</sup> (googol) options. This estimation must also be multiplied by |*W*|. The problem under consideration has a solution due to the finiteness of the number of options. If we recall that we are considering the simplest case, when the application is a chain of services, then it should be clear that the space of possible options in the case when the application is a directed acyclic graph (DAG) will be multiply increase: in this case, the estimation of (Eq. (2)) will need to be multiplied by the number of paths in this DAG. It is clear that classical mathematical optimization methods will not meet time restrictions to solve the problems. It is natural to consider the solution in the direction of splitting the solution space on domains and searching the solution in parallel in every domain based on ML technics.

The urgency to use ML methods is also argued by the following reasons. The NPC model described above is actually two random graphs. One is formed by data flows between the chain of application services that arise as a result of the action of poles from the set P. The vertices of this graph, let us call it an information flow graph (IFG) —application services, arcs—data flows between them. Both the first and second are of a stochastic nature and are determined by random processes initiated by poles. The second graph is the topology of the NPC network. This is also a random graph. Its dynamics are determined by the availability of resources of NPC, the failure dynamic of which is a set of random processes. The control in this model is the mapping of IFG graph to NPC graph. The optimality of control in this model is such a mapping of the IFG graph to the NPC graph, in which the lifetime of the information chain is minimal, subject to all restrictions on NPC resources.

Please pay attention that in the IFG graph, the number of the nodes is not fixed. It is a scale-free graph in terms of the Albert-Laslo Barabashi model from [11]. If NPC accepts the mobile edges, then NPC graph is also a scale-free graph. In this case, it seems that this model is very similar to the Barabási-Albert model described in [10]. Here and there, we have random scale-free graphs' interaction. However, the properties of such models in a computer world have never been investigated. The applicability and adequacy of such models in relation to computer networks require awareness and research.

The most appropriate mathematical technique for optimal control seems to be suitable for that is the multi-agent optimization (MA) technique. There are several approaches to MA optimization. **Centralized approach** assumes the presence of a control center and that agents are deployed one per node. Each agent forms local state-status of its node. The control center collects the status of each agent, makes a decision based on the optimization policy, and sends each agent a management impact. Another possible MA optimization approach induced by the NPC graph structure. The structure (topology) is divided into domains and agents that exchange information about their state only within the domain. The agents belong to the same domain called **neighboring** (interconnected) **agents**. In this case, each agent knows its local state and states of its neighbors. Information exchange is limited by neighboring agents only. Based on local and neighbor-based information, each agent decides on the optimal strategy. The way of topology dividing into domains has great importance when using the MA approach in control. Experiments with the usage of MA optimization for the routing have shown that by adjusting the domain size, it is possible to achieve the optimal combination of convergence and quality optimum solution of the routing problem.

The third option—**independent agents**. Each agent knows its local state. Each agent judges the control strategy and actions of other agents based on its experience. The agent implements control decisions in accordance with its local optimization strategy and based on its observations.

Thus, the choice of approach to MA optimization is another challenge for the problem under consideration. At the same time, it is important to bear in mind that:

