System and method for resource scheduling in a distributed computing system - Patents.com

The distributed resource management system in cloud computing systems addresses inefficiencies by implementing a communication protocol for indirect workload estimation and balanced allocation, enhancing system efficiency and security.

JP2025501680APending Publication Date: 2025-01-23エレメント エスアールエル
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024531633
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2021-12-13
Filing Date
2022-11-24
Publication Date
2025-01-23

AI Technical Summary

Technical Problem

Centralized resource management systems in cloud computing are inefficient in terms of cost and scalability, and distributed systems lack balanced resource allocation strategies without disclosing server load information.

Method used

A distributed resource management system that implements a communication protocol for resource sharing and selection, using utilization indicators to calculate response message transmission times, allowing indirect workload estimation and balanced allocation without revealing server details.

Benefits of technology

Enables balanced resource allocation in cloud computing systems without a centralized catalog, optimizing workload distribution and maintaining security by hiding server configuration details.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025501680000001_ABST
    Figure 2025501680000001_ABST
Patent Text Reader

Abstract

The present invention relates to a method for sharing (600) and selecting (700) shared resources (205, 206) in a cloud computing system (100). In particular, the method for sharing (600) resources comprises a first step of receiving (601) a message requesting a resource (205, 206) by a server (104, 105, 106) of the system (100), and a second step (604) of sending a response message by said server (104, 105, 106) at a predetermined sending time calculated depending on a utilization index of the shared resource (205, 206) contained in said server (104, 105, 106). The method for selecting (700) a resource (205, 206) comprises a first step of a user equipment (101, 102, 103) sending (701) a message requesting a resource, a second step of the user equipment (101, 102, 103) receiving (702) a first response message from a first server (104, 105, 106) at a first reception time, and a third step of the user equipment (101, 102, 103) receiving (703) a second response message from a second server (104, 105, 106) at a second reception time. The method (700) further comprises a step of selecting (704) at least one provider server (104, 105, 106) depending on said first reception time and said second reception time.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a method for sharing and selecting resources in a cloud computing system according to claim 1. The present invention also relates to a system, a server, a user equipment and a computer program for sharing and selecting resources in a cloud computing system.

[0002] In this description, the term "cloud computing" or the equivalent terms "computing cloud" or "cloud" refers to a computing paradigm whereby multiple resources and / or services held from multiple providers (also referred to in this description as servers) are provided to multiple user equipments (also referred to in this description as clients, terminals, or more simply, users) via a telecommunications network. Such resources and / or services can be, for example, physical or virtual hardware resources, storage resources, computational resources, data transmission resources, software services, etc. In the course of this description, the term "resources" refers to any type of computational resource or service that is generally available from currently known cloud computing systems. It is understood that the present invention is not limited to a specific type of resource and / or service provided by a cloud computing system, since it is applicable to any type of resource or service provided by a cloud system without requiring any modification. It is also understood that the present invention is not limited to cloud computing systems where there is a clear separation between providers and users (i.e., between servers and clients), but on the contrary, the present invention can be applied to any type of cloud computing system without distinction. For example, the present invention is also applicable to cloud computing systems (eg, peer-to-peer systems) in which a single device may act as both a server and a client.

[0003] The architecture of a cloud computing system known in the art typically includes one or more servers operably connected to each other by means of a telecommunication network, such as the Internet global network or a local data network; each server belonging to a cloud computing system typically holds one or more resources configured to be made available to a number of final users; according to techniques known in the art, users of the cloud system may use the services made available by the cloud system via one or more user devices operably connected to the cloud computing system by means of said telecommunication network. Generally, the process of allocating resources to final users begins upon receiving a specific request issued by an individual user; for this purpose, cloud computing systems known in the art typically include a resource management system capable of managing and allocating resources held by the servers of the cloud system in response to requests generated by users. Such a resource management system typically includes multiple modules including, for example, a user interface configured to receive and process one or more resource requests generated by one or more end users, a "control plane" configured to manage the process of searching the cloud computing system for resources requested by one or more users, and a "hypervisor" configured to create one or more virtual machines capable of partitioning resources residing on a particular server for one or more end users.

[0004] One of the essential functions performed by resource management systems of cloud computing systems known in the art consists of searching and / or possibly classifying resources held by the servers of the cloud system. In particular, according to techniques known in the art, resource management systems may be configured to monitor the resources available in the cloud system, so as to be able to ascertain at any given time the location and utilization of such resources (i.e. where the resources provided by the system servers are located and their allocation status). This operation may be performed in a centralized manner by one or more resource management systems, which may be configured to create a catalog of the resources available in the cloud system in real time; for example, a centralized resource management system may be configured to update the centralized resource catalog in a proactive manner at regular intervals, so as to constantly have an up-to-date view of all resources held by the system and their utilization status. Centralized resource management systems known in the art suffer from several problems, mainly related to the centralization of resource management functions in a limited set of devices. For example, to ensure some degree of resilience in case of potential malfunction of one or more devices of the cloud computing system, the centralized resource catalog and functions of the resource management system may be replicated and stored in parallel on multiple separate devices; in this way, for example, in case of a sudden failure of one of the devices that stored a copy of the centralized resource catalog, the resource management system can continue to provide services using the replica of the resource catalog stored on the alternative device. While this redundancy of the resource management system and the centralized catalog on multiple devices ensures some degree of resilience of the cloud system, it is highly inefficient in terms of the costs and communication overhead incurred by each replica of the resource management system.This redundancy of the resource management system is also computationally inefficient in that the number of devices configured to provide centralized management services is not linearly scalable with the number of resources being managed, and such inefficiencies have proven to be particularly problematic in small cloud computing systems. A further problem arising from the centralized management of the resources of a cloud computing system relates to updating the centralized catalog following the introduction of a new shared resource (e.g., adding a new server or a new shared resource); in this case, according to techniques known in the art, the centralized catalog is often updated in a retroactive manner (i.e., after the introduction of the new resource); this inevitably results in time transients during which the centralized catalog does not reflect the actual availability of the resources of the cloud computing system.

[0005] Alternatively, aiming to solve the problems plagued by centralized resource management systems, resources may be searched for in a distributed manner in the cloud computing system without using a centralized resource catalog; in such a case, resources requested by one or more users may be searched for ad-hoc according to the needs of the individual users. For example, a given resource may be directly searched for by an individual user using a communication protocol established, for example, at the application level between the servers of the cloud system and the users. Typically, such a communication protocol is configured to search for resources via one or more resource search messages created by the individual user and sent to one or more servers of the cloud system; based on the internal availability of the requested resources, each server may be configured to create and send to the user a response message, for example, including a list of available resources requested by the user. Finally, based on the received response messages, the users may autonomously select one or more servers of the cloud system to allocate resources to.

[0006] While they offer some advantages over centralized systems, distributed resource management systems still suffer from some problems related to the absence of a centralized entity that has a complete and up-to-date view of the cloud system. For example, the absence of such a centralized entity makes it difficult to implement any balanced resource allocation strategy (also referred to in this description as cloud load balancing, or more simply load balancing or scheduling) in the servers of a cloud computing system; in particular, according to the distributed resource search protocols known in the art, there is no possibility to allocate resources according to a predefined balanced resource allocation strategy. For example, since the selection of a server is made autonomously by individual users based only on response messages received from the servers of the system, resource allocation in cloud systems known in the art is random and often unbalanced. Such uneven utilization of the servers of the cloud system may result in overload problems for some servers, resulting in other servers of the cloud system being underutilized. An additional difficulty in managing a balanced allocation strategy in a distributed search system arises from the need to maintain a predetermined degree of security and privacy over the state of the allocation of the servers of the cloud system; for example, to protect the cloud system against cyber attacks, it is preferable to avoid disclosing to individual users any explicit information about the amount and configuration of resources present on each server.

[0007] For example, US Patent Application US2002143944A1 describes a resource sharing system based on a distributed search protocol, which does not expect to disclose any information about the workload of each server, nor to implement any strategy for balancing the load at the system level.

[0008] An object of the present invention is to provide a method, a system, a server, a user equipment, and a computer program for sharing and selecting resources in a cloud computing system that can overcome the shortcomings of the prior art. In particular, an object of the present invention is to provide a method, a system, a server, a user equipment, and a computer program that can implement one or more balanced resource allocation strategies in a cloud computing system based on a distributed resource search protocol. A further object of the present invention is to implement one or more balanced resource allocation strategies in a cloud computing system while avoiding explicit disclosure of information about the amount and load of available resources in each server. [Brief description of the drawings]

[0009] The above objects are achieved by the present invention through a method, a system, a server, a user equipment and a computer program having the features presented in the appended claims, which are an integral part of this description. Further objects, features and advantages of the present invention will become apparent in the light of the following detailed description, given purely by way of non-limiting example, and the accompanying drawings, in which: [Figure 1] 1 shows a diagram of a cloud computing system of the present invention. [Diagram 2] FIG. 2 shows a block diagram of a service provider included in the cloud computing system of the present invention. [Diagram 3] 1 shows a block diagram of a user equipment of the present invention; [Figure 4] 1 shows a diagram of a resource management system of a cloud computing system. [Diagram 5] 1 shows example steps of a protocol for resource sharing and selection. [Figure 6] 1 shows a diagram of a method for sharing resources in a cloud computing system according to the present invention; [Figure 7]FIG. 2 shows a diagram of a method for selecting resources in a cloud computing system according to the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0010] Referring now to the accompanying drawings, reference number 100 in Fig. 1 generally refers to a cloud computing system according to the present invention. As shown in Fig. 1, the cloud computing system 100 includes a number of servers 104, 105, 106 operably connected to each other by means of a telecommunications network 107. Each of the servers 104, 105, 106 may be configured to include one or more resources that may be shared by a number of user equipments 101, 102, 103 operably connected to said telecommunications network 107. According to techniques known in the art, said telecommunications network 107 may include, for example, one or more local data networks operating according to the IEEE 802 packet communication family of standards; in the most basic case, the telecommunications network 107 may operate at the network and transport level according to standards used in the Internet global data network (e.g. TCP / IP or UDP / IP).

[0011] 2 illustrates a block diagram of the servers 104, 105, 106 included in the cloud computing system 100 of the present invention. By way of non-limiting example only, each server 104, 105, 106 may include the following components: A processing unit 201 (e.g., one or more CPUs, GPUs, TPUs, DPUs or FPGAs); a memory 202 (e.g., a random access memory RAM and / or flash memory and / or the like) operatively connected to said processing unit 201 and configured to store at least a portion of instructions adapted to execute one or more functions of the resource management system of the cloud computing system 100; one or more network interfaces 203 adapted to enable data transmission and reception via said telecommunications network 107; Input / Output (I / O) means 204 adapted to enable, for example, a person skilled in the art to configure the servers 104, 105, 106; one or more resources 205, 206 (also referred to in this description as shared resources) configured to be shared by multiple user devices 101, 102, 103; · A processing unit 201, a memory 202, an input / output means 205, and a communication bus 207 configured to operatively connect the resources 205, 206.

[0012] The shared resources 205, 206 may be of different types and may include physical or virtual hardware resources, storage resources, computational resources, data transmission resources, software services, etc.; as previously mentioned, the present invention is not limited to a particular type of resource or service provided by the servers 104, 105, 106 of the cloud computing system 100; on the contrary, it is applicable without modification to any type of resource or service made available by the cloud system 100.

[0013] 3 shows a block diagram of user equipment 101, 102, 103 included in the cloud computing system 100 of the present invention. By way of non-limiting example only, each user equipment 101, 102, 103 may include the following components: A processing unit 301 (e.g., one or more CPUs, GPUs, TPUs, DPUs, or FPGAs); A memory 302 (e.g., a random access memory RAM and / or flash memory and / or the like) operatively connected to said processing unit 301 and configured to store at least a portion of instructions adapted for interfacing with a resource management system of the cloud computing system 100; Input / Output (I / O) means 303 adapted to enable one or more users to configure the user equipment 101, 102, 103; One or more network interfaces 304 adapted to enable data transmission and reception via said remote communications network 107.

[0014] In general, the user equipment 101, 102, 103 may be included in a laptop computer, a smartphone, a personal computer, etc.; in addition, the user equipment 101, 102, 103 may be included in an infotainment system of a motor vehicle or an electronic control unit of a home electronic device. Furthermore, the functionality of the user equipment 101, 102, 103 with respect to protocols for sharing and selecting shared resources in the cloud computing system 100 may be managed by a virtual device.

[0015] According to one aspect of the invention, a cloud computing system may include a resource management system configured to operate the services provided by the cloud system; for example, the resource management system may be configured to interface with a number of users to receive resource requests from the latter, perform one or more searches within the servers 104, 105, 106 included in the system 100, and allocate resources 205, 206, etc. By way of example only, FIG. 4 illustrates a resource management system 400 of a cloud computing system 100 that includes a virtualization framework configured to abstract hardware maintained by each one of the servers of the cloud system. The resource management system 400 of the cloud computing system 100 may include, for example, a user interface 401 configured to enable users 101, 102, 103 of the cloud computing system 100 to request allocation of one or more resources maintained by the system 100. The resource management system 400 of the cloud computing system 100 may further include a control plane 402 configured to, for example, manage access to resources of the cloud computing system 100, manage searches for resources requested by the users 101, 102, 103, manage services for reserving and monitoring (also referred to as "booking" in this description) such resources, etc. For example, the user interface 401 and the control plane 402 of the cloud computing system 100 may include solutions known in the art, such as, for example, VMware vSphere WebUI, Openstack WebUI, Proxmox WebUI, Microsoft Hyper-V, Citrix XenCenter, Xen Orchestra, Red Hat Enterprise Virtualization, and oVirt.The resource management system 400 of the cloud computing system 100 may include a module 403 adapted for the creation of one or more virtual machines in each server 104, 105, 106; for example, the module 403 may include one or more hypervisors known in the art, such as VMware vSphere, Linux KVM, Citrix Xen, Microsoft Hyper-V, XCP-ng, etc. The modules 401, 402, 403 of the resource management system 400 may be implemented via multiple hardware and software components in the servers 104, 105, 106 of the cloud computing system and / or in the user equipments 101, 102, 103 in a partially or fully distributed manner.

[0016] According to one aspect of the present invention, the mechanism for searching for resources in the cloud computing system 100 may be fully distributed, for example, provided via a distributed implementation of the control plane module 402 of the resource management system 400. In this case, the control plane module 402, and in particular the resource search mechanism, may be implemented using multiple software and / or hardware components distributed among one or more user equipments 101, 102, 103 and one or more servers 104, 105, 106 included in the cloud computing system 100; in this case, resources requested by one or more users 101, 102, 103 may be searched for without using a centralized resource catalog. Such a distributed resource search mechanism may include a communication protocol for sharing and selecting resources implemented at the control plane level, which may implement the functionality of searching, selecting, and sharing one or more shared resources 205, 206 via multiple messages exchanged between one or more user equipments 101, 102, 103 and one or more servers 104, 105, 106.

[0017] FIG. 5 shows a schematic example of steps performed by a communication protocol for searching one or more resources in a cloud computing system 100 according to the present invention. FIG. 5(a) represents steps performed by said protocol at a time t=t0; FIG. 5(b) represents steps performed by said protocol at a time t=t1 following t0; FIG. 5(c) represents steps performed by said protocol at a time t=t2 following t1; and finally, FIG. 5(d) represents steps performed by said protocol at a time t=t3 following t2. As shown in FIG. 5(a), a user equipment 101 may generate a request message (also referred to in the course of the description as a message for requesting one or more resources) including at least one piece of information identifying said one or more resources. According to one embodiment of the present invention, said message for requesting one or more resources may be transmitted by said user equipment 101 via a remote communication network 107 to at least one server 104, 105, 106 of the cloud computing system 100. In general, a message for requesting one or more resources may be sent by each user equipment 101, 102, 103 to multiple servers 104, 105, 106; for example, depending on the network technology adopted by the telecommunication network 107, the message for requesting one or more resources may be addressed in a broadcast mode, so that it can be delivered to multiple servers 104, 105, 106. The communication protocol for searching one or more resources according to the present invention includes a second stage in which the message for requesting one or more resources is received by at least one server 104, 105, 106 of the cloud computing system 100. As shown in Fig. 5(b) and Fig. 5(c), the servers 104, 105, 106 of the cloud computing system 100 may send a response message via the telecommunication network 107 at a predetermined sending time depending on the actual availability of the resource specified in the request message.For example, in Fig. 5(b), at a first transmission time t=t1, a first response message is sent by the server 104 to the user equipment 101; similarly, at a second transmission time t=t2, a second response message is sent by the server 106 and sent to the user equipment 101, as shown in Fig. 5(c). In the example shown in Fig. 5, the server 105 may avoid sending a response message; the protocol for sharing and selecting resources according to the present invention may in fact be configured not to force the servers 104, 105, 106 of the system 100 to send a response. In the example of Fig. 5, the server 105 may not have the resources requested by the user equipment 101 or may not intentionally allow the user equipment 101 to use the requested resources.

[0018] As will be explained in detail below, the time of sending the response message may be calculated as a function of a utilization index of the shared resources included in said at least one server; for example, said resource utilization index may have a value that is directly proportional to the number of shared resources 205, 206 in use at the time of receiving the resource request message or during the time period when the request message is processed by the server 104, 105, 106. More generally, the protocol for sharing and selecting resources according to the invention may use any predefined relationship between the utilization index and the number of shared resources 205, 206 in use at the time of receiving the resource request message or during the time period when the request message is processed by the server 104, 105, 106 to calculate the utilization index. As will be explained further below, such a relationship between the utilization index and the resources in use should preferably be known at least to the servers 104, 105, 106 and the users 101, 102, 103 in order to implement one or more load balancing strategies in the system 100. In the course of this description, the expression "resource in use" refers to any resource 205, 206 contained in the server 104, 105, 106 that cannot be shared with the user equipment 101. For example, a shared resource 205, 206 may be allocated to and / or used by a user equipment 102, 103 other than the user equipment 101 at the time of receipt of a request message or during the time such request message is processed by the server 104, 105, 106; in such a case, the shared resource 205, 206 is in use since it cannot be shared with the user equipment 101. Furthermore, the utilization indicator of the shared resources 205, 206 may take a percentage value depending on the total number of shared resources 205, 206 contained in the server 104, 105, 106 and the number of shared resources 205, 206 that are in use; in other words, the utilization indicator of the resources of each server 104, 105, 106 may represent the ratio or percentage value of the shared resources 205, 206 that are in use to the total number of shared resources 205, 206 contained in the server 104, 105, 106.For example, assuming that the servers 104, 105, 106 contain a total number X of shared resources 205, 206 and that a number Y of such shared resources are in use, the utilization measure of the servers 104, 105, 106 may be the ratio Y / X. As explained before, the utilization measure may be calculated according to any relationship involving the number of resources in use. In the examples shown in Fig. 5(b) and Fig. 5(c), it has been assumed that the utilization measure of the shared resources of the server 104 and the utilization measure of the shared resources of the server 106 have distinct values. In particular, the ratio of the number of resources in use and the total number of shared resources held by the server 104 is different from the ratio of the number of resources in use and the total number of shared resources of the server 106. In other words, the workload of the server 104 at the time of receiving a resource request message or during the period in which such message is processed is different from the workload of the server 106; it follows that the first sending time t=t1 of the first response message of the server 104 is different from the second sending time t=t2 of the second response message sent by the server 106. Alternatively or additionally, the utilization measure can be calculated as a function of the ratio between the number of resources in use and the number of resources requested and the total number of resources held by the server 104, 105, 106. In this way, the utilization measure indirectly represents the workload that the server 104, 105, 106 would have to process if the resources requested in the resource request message were actually assigned to said server 104, 105, 106. It will be appreciated that the utilization indicator and the time of sending the response message of each server 104, 105, 106 may be calculated in many ways; for example, the time of sending the response message of each server 104, 105, 106 may be either directly proportional to the workload of the server 104, 105, 106 or inversely proportional to the workload of the server 104, 105, 106. Regardless of the method of calculation adopted, the time of sending the response message provides the user equipment 101, 102, 103 with an indirect indication of the workload of each one of the servers 104, 105, 106.

[0019] The communication protocol for searching one or more resources according to the invention comprises a further step of receiving by the user equipment 101 via the telecommunications network 107 one or more response messages originating from one or more servers 104, 105, 106 comprised in the system 100. Each such response message may contain an explicit indication of the availability of the resource requested by the equipment 101 in the resource request message. In the example shown in Fig. 5(b) and Fig. 5(c), the user equipment 101 receives a first response message from the server 104 at a first reception time and a second response message from the server 106 at a second reception time. For the sake of simplicity, it is assumed in the example shown in Fig. 5 that the transmission delay between any two nodes of the telecommunications network 107 is negligible or has a fixed value Δt p As a result, in the example shown in FIG. 5, the first reception time t=t1 coincides with the first transmission time t=t1 or alternatively with the reception time t=t1+Δt p Similarly, the second reception time may coincide with the second transmission time t=t2 or alternatively with the reception time t=t2+Δt p Matches.

[0020] Since the time sequence according to which the response messages are received by the user equipment 101 coincides with the sequence of the sending times of the response messages from the server 104 and from the server 106, the first and second receiving times provide an indirect indication of the value of the utilization indicator and therefore of the workload of each server 104, 106. To implement one or more load balancing strategies in the cloud computing system 100, the user equipment 101 may advantageously select a server from the servers 104 and 106 that will provide said resource according to the first and second receiving times; in the course of this description, the expression "provider server" denotes the server 104, 105, 106 that will actually be requested to share its resource by means of an allocation message. Such an allocation message may contain information about a resource allocation request from the user equipment; in other words, the resource allocation message sent by the user equipment indicates that the user equipment wants to use the shared resource 205, 206 identified via the resource sharing and search protocol. In particular, the first and second reception times provide an indirect indication of the workload of the servers 104, 106 so that the user equipment 101 can select the server that will provide the requested resource according to one or more load balancing strategies implemented for the system 100.

[0021] In particular, in the example shown in FIG. 5, the first response message from the server 104 is received at a first reception time point that precedes the second reception time point of the second response message; therefore, for the reasons explained above, the user equipment 101 may infer, for example, that the workload of the server 104 is lower than that of the server 106. Thus, the user equipment 101 may appropriately select a server that will provide a service from the server 104 and the server 106, thereby, for example, equalizing the workload of the servers 104, 105, 106 of the system 100. In the example shown in FIG. 5(d), the user equipment may select the server 104 as a provider server and send a message to the server 104 to allocate the requested resources.

[0022] Since the cloud computing system 100 according to the invention is made up of a number of distributed components operatively connected by means of a telecommunication network 107, the steps carried out by the protocol for sharing and selecting resources in the system 100 are necessarily distributed among the components of the system 100. It is therefore understood that in order to enable the user equipments 101, 102, 103 to estimate the workload of the servers 104, 105, 106 as a function of the time of receipt of the response messages sent by such servers 104, 105, 106, it is appropriate for the user equipments 101, 102, 103 to know how each server calculates the utilization indicator and the time of sending each response message.

[0023] In particular, Fig. 6 shows a diagram of a method 600 for sharing resources in a cloud computing system 100 according to the present invention; such method represents a part of a protocol for sharing and selecting resources in the system 100, executed by one or more servers 104, 105, 106 of the system 100. As shown in Fig. 6, the method 600 comprises a first step 601, in which a server 104, 105 or 106 comprised in the system 100 receives a message requesting one or more resources; the method 600 further comprises a step 602, in which the server 104, 105 or 106 calculates a measure of utilization of its own shared resources. For example, such a measure of utilization may be calculated depending on the total number of shared resources comprised in the server 104, 105 or 106 and the number of resources in use comprised in the server 104, 105 or 106; alternatively, the measure of utilization may correspond to the number of resources in use. The method 600 further comprises a step 603, in which the server 104, 105 or 106 calculates a predetermined sending time depending on the indicator of utilization; finally, in a step 604, the server 104, 105 or 106 transmits a response message via the telecommunications network 107 at said predetermined sending time. For example, the server 104, 105 or 106 may determine the sending time by storing the time of reception of the resource request message and calculating a sending delay depending on the indicator of utilization of the one or more shared resources. For example, the sending delay may be calculated in such a way that it is directly proportional to the indicator of utilization of the resources of the respective server 104, 105 or 106. In this way, the higher the workload of a given server 104, 105 or 106, the longer the sending delay of the response message to be transmitted by that server 104, 105, 106. Alternatively, the sending time may be calculated in such a way that it is inversely proportional to the indicator of utilization of the resources of the respective server 104, 105 or 106. In other words, according to one aspect of the present invention, each server may respond to resource request messages with a delay that varies depending on the workload of that server (i.e., as a function of the number of shared resources currently in use), generally speaking.The method 600 for sharing resources shown in FIG. 6 and described above may be advantageously implemented as a computer program; in such a case, said computer program may be installed in the memory 202 of one or more servers 104, 105, 106 and may include a number of instructions that, when executed by the processing unit 201 of said servers 104, 105, 106, cause said servers 104, 105, 106 to perform the steps of the method 600.

[0024] Fig. 7 shows a diagram of a method for selecting resources in a cloud computing system 100 according to the present invention; such method represents a part of a protocol for sharing and selecting resources in the system 100, executed by one or more user equipments 101, 102, 103 of the system 100. As shown in Fig. 7, the method 700 includes a first step 701, in which the user equipment 101, 102 or 103 sends a message requesting one or more resources; such a message requesting one or more resources may include information identifying said one or more resources. The method 700 further includes a second step 702, in which said user equipment 101, 102 or 103 receives a first response message from the first server 104, 105 or 106 at a first reception time, and a third step 703, in which said user equipment 101, 102 or 103 receives a second response message from the second server 104, 105 or 106 at a second reception time. The method 700 further comprises a step 704 of the user equipment 101, 102 or 103 selecting a provider server from said first server 104, 105 or 106 and said second server 104, 105 or 106 depending on the first and second reception times. In other words, the reception of two or more response messages indicates the need to select between the servers 104, 105 or 106 (i.e. between the servers 104, 105, 106 from which the user equipment 101, 102, 103 has received at least one response message), thus identifying the server 104, 105, 106 (i.e. provider server) that will be asked to share the requested resource. According to one aspect of the invention, this selection is made by the user equipment 101, 102, 103 based on the first and second reception times. As explained earlier in this specification, the order of arrival of the response messages (i.e., the time sequence of the first and second reception times) implicitly indicates the workload of the servers 104, 105, 106. Thus, the selection of the provider server may be made according to a particular load balancing strategy.For example, the user equipment 101, 102, 103 may select the server 104, 105, 106 whose response message was received at a reception time indicating a lower workload than that of the other servers 104, 105, 106 of the system 100; for example, if the transmission time of the response message is calculated in such a way that it is directly proportional to the workload of the servers 104, 105, 106, the user equipment 101, 102, 103 may select as the provider server the server 104, 105, 106 whose response message was received before the response messages of the other servers. It will thus be possible to implement a load balancing strategy that will distribute the workload evenly among the servers 104, 105, 106 of the system 100. Alternatively, the user equipment 101, 102, 103 may select the server 104, 105, 106 whose response message was received at a reception time indicating a higher workload than that of the other servers 104, 105, 106 of the system 100. It will therefore be possible to implement a load balancing strategy that will distribute the workload unevenly among the servers 104, 105, 106 of the system 100. It is understood that the protocol for sharing and selecting one or more resources according to the present invention can be used to implement any load balancing strategy known in the art as well (e.g. equal load balancing, unequal load balancing, etc.). Finally, the method 700 includes a stage 705 in which the user equipment 101, 102, 103 sends a resource allocation message to the provider server; the resource allocation message may include one or more instructions adapted to allocate the requested resource on the provider server. The method 700 for selecting a resource as described earlier in this specification and shown in FIG. 7 may be advantageously implemented as a computer program; in such a case, said computer program may be installed in the memory 302 of one or more user equipments 101, 102, 103 and may comprise a number of instructions which, when executed by the processor 301 of the user equipments 104, 105, 106, cause said user equipments 101, 102, 103 to perform the steps of the method 700.

[0025] The cloud computing system 100, servers 104, 105, 106, user equipment 101, 102, 103, method 600 for sharing resources, method 700 for selecting resources, and associated computer programs according to the present invention provide several advantages over cloud computing systems currently known in the art. For example, the present invention advantageously enables the implementation of one or more load balancing strategies in a cloud computing system 100 that lacks a centralized resource catalog. As previously described herein, the present invention enables user equipment 101, 102, 103 to indirectly receive an indication of the workload of the servers 104, 105, 106 included in the cloud computing system 100. A further advantage of the present invention is that it provides an indication of the workload of the servers 104, 105, 106 without disclosing any specific information about the configuration of the servers 104, 105, 106.

[0026] Of course, without prejudice to the principles of the invention and without departing from the scope of protection of the invention as presented in the appended claims, the embodiments and implementation details may vary widely from those described and shown in this specification, purely as non-limiting examples. (Other possible items) (Item 1) A method (600) for sharing resources (205, 206) in a cloud computing system (100), the cloud computing system (100) comprising a plurality of servers (104, 105, 106) operatively connected to one another by means of a telecommunications network (107), each server (104, 105, 106) of the cloud computing system (100) comprising one or more shared resources (205, 206), the method (600) comprising the following steps: receiving (601) at least one server (104, 105, 106) a message requesting said resource (205, 206); transmitting (604) a response message by said at least one server (104, 105, 106) via said telecommunications network (107) at a predetermined transmission time; Equipped with The predetermined transmission time is calculated according to a utilization index of the one or more shared resources (205, 206) included in the at least one server (104, 105, 106). A method (600) for sharing resources (205, 206) in a cloud computing system (100). (Item 2) The following steps: calculating the utilization index according to a total number of the one or more shared resources (205, 206) included in the at least one server (104, 105, 106) and a number of the one or more shared resources (205, 206) currently being used; 2. The method (600) for sharing resources (205, 206) in the cloud computing system (100) according to claim 1, further comprising: (Item 3) The following steps: determining when said message requesting said resource is received; calculating a transmission delay as a function of the utilization metric of the one or more shared resources (205, 206); determining the transmission time based on the transmission delay and the reception time; 3. A method (600) for sharing resources (205, 206) in a cloud computing system (100) according to item 1 or 2, further comprising: (Item 4) 4. A method (600) for sharing resources (205, 206) in a cloud computing system (100) according to any one of items 1 to 3, wherein the response message includes information about the availability of the resources. (Item 5) A method (700) for selecting a resource (205, 206) in a cloud computing system (100), the cloud computing system (100) comprising a plurality of servers (104, 105, 106) and at least one user equipment (101, 102, 103) operatively connected to each other by means of a telecommunications network (107), each server (104, 105, 106) of the cloud computing system (100) comprising one or more shared resources (205, 206), the method (700) comprising the following steps: sending (701) a message requesting said resource via said telecommunications network (107) by said user equipment (101, 102, 103); receiving (702) a first response message from a first server (104, 105, 106) included in the plurality of servers at a first receiving time point to the user equipment (101, 102, 103); receiving (703) a second response message from a second server (104, 105, 106) included in the plurality of servers at a second receiving time point to the user equipment (101, 102, 103); Equipped with The method (700) further comprises the steps of: selecting (704) at least one provider server (104, 105, 106) that provides the resource (205, 206) from the first server (104, 105, 106) and the second server (104, 105, 106) according to the first receiving time point and the second receiving time point; sending (705) a message to said at least one provider server (104, 105, 106) via said telecommunications network (107) allocating said resources (205, 206); A method (700). (Item 6) A server (104, 105, 106) adapted for sharing resources (205, 206) in a cloud computing system (100), said server (104, 105, 106) comprising: - memory means (202); - network interface (203); - one or more shared resources (205, 206); - a processing unit (201) operatively connected to said memory means (202), to said network interface (203) and to said one or more shared resources (205, 206); The processing unit (201) is configured to execute steps of a method (600) for sharing resources (205, 206) in a cloud computing system (100) according to any one of items 1 to 4. A server (104, 105, 106). (Item 7) A user equipment (101, 102, 103) adapted to select a resource (205, 206) in a cloud computing system (100), said user equipment (101, 102, 103) comprising: - memory means (302); - Network interface (304); - a processing unit (301) operatively connected to said memory means (302) and to said network interface (304); The processing unit (301) is configured to execute the steps of a method (700) for selecting resources (205, 206) in a cloud computing system (100) according to item 5. A user equipment (101, 102, 103) comprising: (Item 8) A cloud computing system (100) comprising a plurality of servers (104, 105, 106) operably connected to each other using a telecommunications network (100), each of the servers (104, 105, 106) being configured to execute a method (600) according to any one of items 1 to 4. (Item 9) A computer program for sharing resources in a cloud computing system (100), comprising a plurality of instructions which, when executed on a processing device (104, 105, 106), causes the processing device (104, 105, 106) to perform the steps of the method (600) according to any one of items 1 to 4. (Item 10) A computer program for selecting resources in a cloud computing system (100), comprising a plurality of instructions which, when executed on a processing device (101, 102, 103), causes the processing device (101, 102, 103) to perform the steps of the method (700) described in item 5.

Claims

1. A method for sharing resources in a cloud computing system, the cloud computing system comprising a plurality of servers operatively connected to each other by means of a telecommunications network, each server of the cloud computing system comprising one or more shared resources, the method comprising the following steps: receiving at least one server a message requesting the resource; transmitting, by said at least one server, a response message over said telecommunications network at a predetermined transmission time; Equipped with The predetermined sending time is calculated as a function of a utilization index of the one or more shared resources contained in the at least one server. A method for sharing resources in a cloud computing system.

2. The following steps: calculating the utilization index according to a total number of the one or more shared resources included in the at least one server and a number of the one or more shared resources currently being used; The method for sharing resources in a cloud computing system of claim 1 , further comprising:

3. The following steps: determining when said message requesting said resource is received; calculating a transmission delay as a function of the utilization metric of the one or more shared resources; determining the transmission time based on the transmission delay and the reception time; The method for sharing resources in a cloud computing system of claim 1 , further comprising:

4. The method for sharing resources in a cloud computing system according to claim 1 , wherein the response message includes information about the availability of the resource.

5. A method for selecting a resource in a cloud computing system, the cloud computing system comprising a plurality of servers and at least one user equipment operatively connected to each other by means of a telecommunications network, each server of the cloud computing system comprising one or more shared resources, the method comprising the steps of: sending, by said user equipment, a message over said telecommunications network requesting said resources; receiving a first response message from a first server included in the plurality of servers at a first reception time point to the user equipment; receiving a second response message from a second server included in the plurality of servers at a second reception time to the user equipment; Equipped with The method further comprises the steps of: selecting at least one provider server providing the resource from the first server and the second server in response to the first receiving time point and the second receiving time point; sending a message to said at least one provider server over said telecommunications network allocating said resources; A method comprising:

6. 1. A server adapted for sharing resources in a cloud computing system, the server comprising: - memory means; - network interface; - one or more shared resources; a processing unit operatively connected to said memory means, to said network interface, and to said one or more shared resources; The processing unit is configured to execute the steps of the method for sharing resources in a cloud computing system according to any one of claims 1 to 4. A server comprising:

7. 1. A user equipment adapted to select a resource in a cloud computing system, the user equipment comprising: - memory means; - network interface; a processing unit operatively connected to said memory means and to said network interface; The processing unit is configured to execute the steps of the method for selecting resources in a cloud computing system according to claim 5. A user equipment comprising:

8. 5. A cloud computing system comprising a plurality of servers operatively connected to each other by means of a telecommunications network, each of said servers being configured to perform the method according to any one of claims 1 to 4.

9. 5. A computer program for sharing resources in a cloud computing system, comprising a plurality of instructions which, when executed on a processing device, causes the processing device to perform the steps of the method according to any one of claims 1 to 4.

10. A computer program for selecting resources in a cloud computing system comprising a plurality of instructions which, when executed on a processing device, cause the processing device to perform the steps of the method of claim 5.