Keywords

1 Introduction

Cloud Computing (CC) is currently a widely applied technology, but still represents a fresh approach towards utilizing resources. From the market’s point of view CC offers a significant operating cost reduction. The users who take advantage of this data storage capability and access to applications on demand, may use the resources easily, on various devices, for a long time [1, 21]. However, such solutions as CC require considering the issues related to highly complex computer system architectures. The main problems include the security of the data and managing the system resources in most optimal way. Usually big companies use CC for providing big amount of data and process a large number of server requests. It is impossible to meet such demands basing on single server solutions, thusa method of load balancing, resources virtualization and a special way of their management was developed. This results in creating a highly complex system the architecture of which provides the means to handle the users’ demands. It is not an uncommon case that both private and commercial users seek abundant resources under as low price as possible. CC solutions allow to add resources dynamically, depending on the amount of connections, and manage them in real time. For example, if one server is not able to handle the connections, another server instance is launched. Inability of the second server to handle the connections leads to starting a third instance of it, which provides more resources. However, such method of allocation of resources is not optimal. This article proposes a fuzzy logic load balancing method for highly complex system architecture, which allows to improve the efficiency of resources usage. This article is organized as follows: In Sect. 2 a general idea of the system architecture for cloud computing is provided. Section 3 proposes the method for optimal usage of the resources. The quoted definitions were originally introduced by Czerniak et al. for network security purposes. Section 4 presents the results of simulations. The final Sect. 5 covers the conclusions.

2 Cloud Computing Solution Architecture

As it was already mentioned, the main problem of CC is security and the optimal allocation of the resources. The issue of assuring the safety of data which is stored in the cloud, in different sites, is a significant challenge. The lack of security standards until recently and a difficulty with their determination and application, along with a limited confidence in this technology, are the main obstacles to broader implementation of CC [25, 30, 31]. Thereby, in the Authors’ opinion, the elaboration of standards and mechanisms for assuring the stored data’s security and integrity is an indispensable condition for future popularization of CC. It has been already pointed out that the cloud is a perfect solution for business, since it offers cost reduction, as after a little investment in the infrastructure, it provides a quick access to multiple services. However, the strategy of ensuring the security and trust should be considered at the initial level of designing the system. It is a widely acknowledged fact that it is difficult - if not impossible - to develop a single common solution dedicated to every possible system architecture [29]. The emphasis on security issues escalates continuously. The security should be treated globally, on all layers of communications, starting from hardware protection, through the end point restrictions, to the application level.

The second problem brought out at the beginning of this section - the optimal allocation of the resources - seems also a complicated matter. The users tend to choose the solutions which offer more at lower cost. Nowadays the model of providing the resources and software employs the time of usage as a main evaluator. As the resources’ requirement grow, subsequent cloud resources are allocated and dedicated to processing the user’s requests. Figure 1 presents the possible architecture of the cloud.

Fig. 1.
figure 1

Possible cloud architecture

The presented architecture consists of four layers:

  • servers layer,

  • router connections layer,

  • switching layer,

  • load balancing layer.

The servers layer is responsible for providing the servers - or, to be exact - the CPU and data storage for the users. The servers resources are the main source of the cost borne by the users - since they generate the main cost for the cloud provider, who has to pay for the material resources, while he is selling the virtual ones, for the specified time of usage.

The router connections layer is accountable for connecting the servers in a proper way. It provides the routing protocols and transfers the data to an appropriate server.

The switching layer is responsible for fast switching the packets between the load balancing layer and the router.

The load balancing layer is the first point of contact between the cloud and the outside network, which usually is the Internet network. This layer is in charge of providing one representative point of contact, which during the operation is multiplied. This allows to provide more resources than a single server is capable to offer. The main algorithm used for this process is described in the following steps:

  • step 1: oobtaining a connection request from the user,

  • step 2: allocating the server resources,

  • step 3: transfer connection from the user to the server,

  • step 4: in the case when the connections to the server exceed the servers limit, another server is allocated.

3 Fuzzy Logic Method for Load Balancing

The algorithm for load balancing mentioned in the previous section is not an optimal method for the resources’ utilization. The number of user connections is not a constant value. In normal conditions the users shut down their connections after finishing their tasks, which results in a decrease in the total number of connections. This could allow to release some server resources, but in most cases it does not happen. It is because the connections are not divided between the servers instances in most optimal way. For this purpose, some predictions concerning the connections would be required and in this matter the solutions based on fuzzy logic can be applied, especially the Ordered Fuzzy Numbers [10, 22, 27]. The implementation of OFN may accelerate the decision to release the server instances because they allow to predict an upcoming decrease in the number of connections.

In this Section the algorithm which uses OFN for detecting a decrease in the total number of connections is described. The algorithm measures the active connections in all servers in use during the data processing. This measurement is performed continuously in a given period of time referred to as a timeslot. Four subsequent timeslots are described as:

$$\begin{aligned} t_{i}, t_{(i-1)}, t_{(i-2)}, t_{(i-3)} \end{aligned}$$
(1)

where \(t_{i}\) is represent the current timeslot.

These four results together provide a fuzzy number in OFN notation, presented in Fig. 2, where

  • \(f_A (0)\) respond to \(t_{(i-3)}\),

  • \(f_A (1)\) respond to \(t_{(i-2})\),

  • \(g_A (1)\) respond to \(t_{(i-1)}\),

  • \(g_A (0)\) respond to \(t_{i}\).

Fig. 2.
figure 2

Fuzzy number in OFN notation

As it couldcan be noticed, oin Fig. 2, the OFN has gotpresent a trapezoid form, their shape deriving from the and the value of function \( f_A\) and \(g_A\).

The definition of fuzzy observance of the connection used is as follows:

Definition 1

Fuzzy observance of C connection in time \(t_i\) is a set

$$\begin{aligned} C/t_{i}=\lbrace f_{C}(0)/t_{i-3} ,f_{C}(1)/t_{i-2} ,g_{C}(1)/t_{i-1} ,g_{C}(0))/t_{i }\rbrace \end{aligned}$$
(2)

where

figure a

This provide the Lemma 1.

Lemma 1

$$\begin{aligned} C_{positive}= \left\{ \begin{array}{lcl} f_C (0)<f_C (1)<g_C (1)\\ or\\ f_C (1)<g_C (1)<g_C (0)\\ \end{array} \right. \end{aligned}$$
(3)

In other situation \(C_{negative}\).

According to this definition, the counters of active connections to the servers should give:

  • positive order of OFN when the number of connections increases,

  • negative order of OFN when the number of connections decreases.

The four measurements performed during the cloud operations allow to prepare fuzzy numbers in OFN notation. This gives a fuzzy observance of the whole cloud \(CC_m\), defined as follows:

Definition 2

Fuzzy observance of the cloud connections is described by following formula:

$$\begin{aligned} CC_{m}= \sum _{i=1}^{n} \left\{ \begin{array}{ll} C_{positive}\vert C_{negative}\\ C_i*w_i \vert -C_i*w_i\\ \end{array} \right\} . \end{aligned}$$
(4)

Where \(w_i\in \{w_i,...,w_n\}\) describes the impact of the server on whole cloud architecture. This value should be considered by the network administrator, jointly with the server resources and the impact on whole network. \(CC_m\) will provide the information for the network administrator that according to the network trend some servers can be released or that they should still process the user’s request.

As it is known, the CC solutions base on a highly complicated architecture, so the number of servers they use may be very high. The result can be visualized by means of pipe of samples [9], presented in Fig. 3.

Fig. 3.
figure 3

The pipe of samples for data storing

Each time a connection is established, a number of measurements take place, the amount of which corresponds to the number of servers in use. The results are collected into a pipe, where a single slice of it contains the measurements from a single timeslot. Over the time a pipe is formed, being an accumulation of n slices. The original solutions [10] where prepared for 360 servers. Figure 4 presents the results with only server 1 taken into account. As it was mentioned, four measurements give an OFN number. Two of possible notations of such numbers’ order are presented in Fig. 4. According to definition 2, it is possible to make a decision on:

Fig. 4.
figure 4

The pipe of samples for data storing

  • not allocating another server when a new request appears,

  • passing the connections to a different server and releasing one of the instances.

The first mentioned situation will occur when the load balance layer registers that the incoming connections are not increasing the total amount of connections on the servers. This is achieved by recognizing the trend showing that the servers are processing less requests in general. In consequence, the solution allows to avoid creating new, unnecessary instances of the server.

The second mentioned situation will take place when a global trend of decreasing number of processed connections is recognized. This leads to moving the processed requests to other servers and releasing some of the instances. The above-described mechanism allows to use the CC resources in most optimal way.

4 Simulation

The simulation was performed for the proposed CC architecture and the measurement was simulated on the servers as presented in Fig. 5. There were 4 servers (C1, C2, C3, C4) responsible for processing the users’ requests. Each server was processing 1000 user requests as a maximum value. When the number of requests exceeded 1000, another server was switched in. The process of arriving of the users’ requests and the connections is presented in Table 1. The column “time” presents the current timeslot. The columns “incoming connections” and “released connections” present, respectively, the number of connections established basing on incoming requests and the ones released during the timeslots. The columns C1-C4 present the total number of requests processed by the servers. As it can be noticed, the server C2 was launched in the timeslot 2, while the server C3 in timeslot 8 and the server C4 in timeslot 12. It can also be observed that the server C1 was released in timeslot 20, as it had finished processing the requests. The same situation was with server C2, but it took place in timeslot 25. Using the definition 2, the \(CC_m\) for timeslot 16 can be calculated. According to the Table 1, the Cs for each server are as follows:

Fig. 5.
figure 5

Simulation test architecture

Table 1. User request processing during simulation
Fig. 6.
figure 6

Server usage simulation

figure b

Calculatinge the \(CC_m\) according to Definition 2 is presented below:

$$ CC_m=-C_1-C_2+C_3+C_4$$

So finally fuzzy observance of the cloud servers give as a OFN number in timeslots 16 as

figure c

with a negative order is obtained. It means that a prediction for the servers’ usage is as follows: the number of the process requests is decreasing and the server C1 can be released in timeslot 17. It also means that it can be released 3 timeslots earlier than in the original algorithm. When the same fuzzy observance is performed for the timeslot 22, the Cs for each server are as follows:

figure d

The calculation of the \(CC_m\) according to Definition 2 gives:

figure e

So finally:

figure f

with a negative order is obtained. It means that a prediction for the servers’ usage is as follows: the number of the process request is decreasing and the server C2 can be released in timeslot 22. This shows that it can be released 3 timeslots earlier than in the original algorithm.

The servers’ usage during each timeslot is presented in Fig. 6. It is noteworthy that during the simulation the proposed algorithm was using fewer servers than the original one.

5 Summary

This article presented the algorithm for the optimization of the resources’ usage for highly complex computer system architectures, such as Cloud Computing solutions. Their main problem is predicting the resources’ usage for the purpose od allocation and dismissal. The proposed algorithm based on OFN usage allows to recognize the trend in the processed handled by the servers and trace the signs of a decrease in the number of requests. It also allows to avoid creating new, redundant instances of the servers, The presented solution helps to move the processed requests to other servers and release some of the instances faster, which contributes to more optimal utilization of the CC resources. By means of the presented algorithm, the CC solutions may add the resources dynamically, according to the amount of connections, and manage them in real time. This article proposes a fuzzy logic load balancing method for highly complex system architectures, which allows to use the resources in a more efficient way and load balancing, aside from the security issues [23, 24, 28] remain one of the main problems the CC solutions have to deal with [7].