Shared enterprise cloud systems, methods and computing devices

The cloud enterprise resource management system addresses the challenge of managing spare server capacity by dynamically transferring resources between corporate and spare partitions based on workload predictions, enhancing resource utilization and security.

JP7667624B2Active Publication Date: 2025-04-23INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2021173553
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-11-04
Filing Date
2021-10-24
Publication Date
2025-04-23
Estimated Expiration
2041-10-24

AI Technical Summary

Technical Problem

Existing technologies face challenges in efficiently managing spare server capacity in data centers, as it varies over time, making it impractical for small-scale cloud services. Additionally, security concerns arise when companies allow external access to their servers for cloud services.

Method used

A cloud enterprise resource management system that divides computing resources into two partitions within each data center: a corporate partition reserved for the company and a spare partition available for shared services. A workload manager predicts workload demands, dynamically transferring resources between partitions to optimize resource utilization and ensure security by maintaining an air gap between partitions.

Benefits of technology

This solution enables efficient resource pooling and sharing across multiple data centers, improving resource utilization in corporate data centers while addressing security concerns by isolating corporate and spare partitions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007667624000001
    Figure 0007667624000001
  • Figure 0007667624000002
    Figure 0007667624000002
  • Figure 0007667624000003
    Figure 0007667624000003
Patent Text Reader

Abstract

To provide a cloud-enterprise resource management system which enables sharing of computing resources belonging to different data centers by one or more clients of resource pooling and sharing service.SOLUTION: In a cloud-enterprise resource management system 100, each data center includes an enterprise partition reserved for use by an enterprise operating the data center, and a spare partition available for use by one or more clients of resource pooling and sharing service. A workload manager in each data center predicts workload and transfers a first computing resource to the spare partition when the predicted workload is sufficiently below the capacity of the enterprise partition and transfers a second computing resource to the enterprise partition when the predicted workload is above the capacity of the enterprise partition.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates generally to enterprise and cloud computing resource management. [Background technology]

[0002] A data center is a dedicated space used to house computer systems and related components such as telecommunications and storage systems. Corporate computing is the use of technology, information systems, and computers within an organization or company. A corporate server is a computer server that contains the programs necessary to collectively fulfill the requirements of an enterprise, rather than an individual user, unit, or specific application. Cloud computing is the delivery of different services or computing resources over the Internet, including data storage, servers, databases, networking, and software. Cloud-based storage allows files to be stored in a remote database and to retrieve them on demand. A cloud server is a virtual server (rather than a physical server) that runs in a cloud computing environment. It is built, hosted, and delivered through a cloud computing platform over the Internet, and is accessed remotely. They are also known as virtual servers.

[0003] Many enterprises have spare capacity in their data centers. Some large enterprises offer cloud services by leveraging spare computing or storage capacity. However, spare server capacity may change over time, so offering cloud services from spare capacity is not feasible for small enterprises. Additionally, enterprises may have security concerns when they let others use their servers. Summary of the Invention [Problem to be solved by the invention]

[0004] A shared enterprise cloud system, method and computing device is provided. [Means for solving the problem]

[0005] Some embodiments of the present disclosure provide a cloud enterprise resource management system that enables sharing of computing resources belonging to different data centers by one or more clients of a resource pooling and sharing service. Each data center includes a first partition of computing resources and a second partition of computing resources. The first partition is designated as reserved for use by the enterprise operating the data center. The second partition is designated as available for use by one or more clients of the resource pooling and sharing service. A workload manager in the data center predicts workload and (i) transfers the first computing resource from the first partition to the second partition when the predicted workload is below a first threshold, and (ii) transfers the second computing resource from the second partition to the first partition when the predicted workload exceeds a second threshold.

[0006] By predicting the workload in the enterprise data center, a computing device acting as a workload manager of the enterprise data center can participate in a resource pooling and sharing service, enabling a cloud enterprise resource management system. Based on the predicted workload, the computing device dynamically decides whether to provide spare resources to the resource pooling and sharing service or request release of resources from the resource pooling and sharing service. Resource utilization efficiency of the enterprise data center is improved.

[0007] In some embodiments, a first partition of computing resources (the enterprise partition) is designated as reserved for use by the enterprise, and a second partition of computing resources (the spare partition) is designated as available for use by one or more clients of a resource pooling and sharing service that coordinates sharing of computing resources belonging to one or more enterprises by one or more clients. In some embodiments, access to the first partition is controlled by a first firewall that allows access by the enterprise and denies access by clients of the resource pooling and sharing service or any entity outside the enterprise.

[0008] In some embodiments, a predicted workload that is sufficiently less than the capacity of the enterprise partition (e.g., less than a first threshold) is used as an indication that excess computing capacity exists within the enterprise partition and that one or more computing resources are moved from the enterprise partition to a spare partition.

[0009] In some embodiments, the workload manager instructs the robot to physically detach the first computing resource from the first partition and to physically attach the first computing resource to the second partition. The workload manager can also communicate with a cloud coordinator of the resource pooling and sharing service to provide an identifier of the first computing resource and to specify a time frame during which the first computing resource will be available for use by a client of the resource pooling and sharing service. The cloud coordinator can then facilitate the client of the resource pooling and sharing service accessing the first computing resource by using the provided identifier of the first computing resource during the specified time frame. The cloud coordinator also credits the enterprise's account and debits the client's account based on the usage of the first computing resource.

[0010] In some embodiments, a predicted workload within the failure margin of the enterprise partition's capacity or exceeding the enterprise partition's capacity (e.g., exceeding a second threshold) is used as an indication that there is not enough computing capacity within the enterprise partition such that one or more computing resources are returned to the enterprise partition from the spare partition.

[0011] In some embodiments, the workload manager instructs the robot to physically detach the second computing resource from the second partition and to physically attach the second computing resource to the first partition. The workload manager can also communicate with a cloud coordinator of the resource pooling and sharing service to request the return or release of computing resources and receive a response including an identifier of the computing resource to be returned or released. The identifier can identify a computing resource in the second partition that is not being used by a client of the resource pooling and sharing service.

[0012] The foregoing summary is intended to serve as a brief introduction of some embodiments of the present disclosure. It is not intended to be an introduction or overview of all inventive subject matter disclosed in this document. The detailed description and figures referenced in the detailed description below will further explain the embodiments described in the summary as well as other embodiments. Thus, the summary, detailed description and drawings are provided for understanding all embodiments described by this document. Moreover, since the claimed subject matter may be embodied in other specific forms without departing from the spirit of the subject matter, the claimed subject matter should not be limited by the details of the description in the summary, detailed description and drawings, but should instead be defined by the appended claims.

[0013] The drawings relate to exemplary embodiments. The drawings do not illustrate all embodiments. Other embodiments may be used in addition or instead. Details that may be obvious or unnecessary may be omitted to save space or for a more effective explanation. Some embodiments are practiced with additional components or steps or without all of the components or steps shown, or both. When the same numeral appears in different drawings, it refers to the same or similar components or steps. [Brief description of the drawings]

[0014] [Figure 1] 1 illustrates a cloud enterprise resource management system enabled by resource pooling and sharing services, consistent with an illustrative embodiment. [Diagram 2] 1 conceptually illustrates an enterprise data center supporting resource pooling and shared services, consistent with an illustrative embodiment. [Figure 3a] 1 illustrates a sequence of operations for transferring computing resources from an enterprise partition to a spare partition, consistent with an illustrative embodiment. [Figure 3b] 1 illustrates an exemplary sequence of operations for transferring computing resources from a spare partition back to an enterprise partition, consistent with an illustrative embodiment. [Figure 4a] 1 conceptually illustrates a block diagram of an enterprise workload manager, consistent with an illustrative embodiment; [Figure 4b] 1 conceptually illustrates a block diagram of a cloud coordinator, consistent with an illustrative embodiment. [Diagram 5] FIG. 1 conceptually illustrates a process for controlling data centers participating in resource pooling and shared services, consistent with an illustrative embodiment. [Figure 6] FIG. 1 is a block diagram of components of a data processing system in accordance with an exemplary embodiment of the present disclosure. [Figure 7] FIG. 1 illustrates an exemplary cloud computing environment. [Figure 8] FIG. 1 illustrates a set of functional abstraction layers provided by a cloud computing environment, consistent with an illustrative embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0015] In the following detailed description, numerous specific details are set forth, by way of example, in order to provide a thorough understanding of the relevant teachings. It should be apparent, however, that the present teachings may be practiced without such details. In other instances, well-known methods, procedures, components, or electrical circuits, or combinations thereof, have been described at a relatively high-level, without detail, in order to avoid unnecessarily obscuring aspects of the present teachings.

[0016] Some embodiments of the present disclosure provide resource pooling and sharing services that enable a cloud enterprise resource management system. The system allows multiple enterprises to be in a shared cloud service by pooling the excess server capacity of multiple enterprises. In each participating enterprise's data center, computing resources are divided into enterprise partitions (as enterprise silos) and spare partitions (as spare silos). Computing resources in the enterprise partitions are resources reserved for use by the enterprise itself, while computing resources in the spare partitions are made available for use as cloud servers.

[0017] In some embodiments, an enterprise workload manager is implemented in each enterprise data center to allocate or assign computing resources to either the enterprise partition or the spare partition. The enterprise workload manager addresses security concerns by maintaining an air gap between the enterprise partition and the spare partition so that external clients of the spare servers cannot access the enterprise servers. The enterprise workload manager also determines resource allocation between the enterprise partition and the spare partition (moving the boundary between the two partitions) based on a forecast of the workload required by the enterprise. In the cloud, the cloud coordinator brokers all the spare servers provided by all participating enterprises. The cloud coordinator matches requests for server capacity with the spare server capacity available at the participating enterprises. In some embodiments, the cloud coordinator also manages a credit system that records how much to charge users of the spare servers and how much to credit the enterprises that provide the spare servers.

[0018] For some embodiments, Figure 1 illustrates a cloud enterprise resource management system 100 enabled by a resource pooling and sharing service. In the cloud enterprise resource management system 100, enterprises A, B, and C and clients W, X, Y, and Z participate in a resource pooling and sharing service such that spare computing resources of enterprises A, B, and C are shared with clients W, X, Y, and Z via the cloud.

[0019] To ensure security, each participating enterprise in the resource pooling and sharing service distributes its computing resources or servers into an enterprise partition and a spare partition. The computing resources or servers of the enterprise partition are designated as reserved for use by the enterprise, while the computing resources or servers of the spare partition are designated as available for use by the resource pooling and sharing service. Each participating enterprise can move computing resources from its enterprise partition into its spare partition and vice versa based on the enterprise's projected workload.

[0020] The resource pooling and sharing services of the cloud enterprise resource management system 100 are implemented by a cloud coordinator 110 and enterprise workload managers at the participating enterprises. As shown, enterprise A implements enterprise workload manager 112, enterprise B implements enterprise workload manager 114, and enterprise C implements enterprise workload manager 116. The enterprise workload managers of enterprises A, B, and C determine which computing resources are made available for the resource pooling and sharing services, and the cloud coordinator 110 then instructs clients W, X, Y, and Z to use the computing resources made available.

[0021] In some embodiments, the computing resources and servers of participating enterprises may be located in one or more data centers. Figure 2 conceptually illustrates a data center 200 of an enterprise (e.g., enterprise A of Figure 1) that supports resource pooling and shared services. Enterprise data center 200 implements enterprise partition 210 and spare partition 220.

[0022] As shown, enterprise partition 210 includes racks of computing resources or servers interconnected by switches and routers. The computing resources of enterprise partition 210 are behind a firewall 215 that allows access to the computing resources of enterprise partition 210 by the enterprise that operates or owns the data center. Firewall 215 allows only authenticated users of the enterprise, thereby preventing access of enterprise partition 210 by entities outside the enterprise, including clients of resource pooling and shared services. Spare partition 220 similarly includes racks of computing resources or servers interconnected by switches and routers. The computing resources of spare partition 220 are behind a firewall 225 that allows access to the computing resources by authenticated clients of resource pooling and shared services. An enterprise workload manager 230 for the enterprise is located within the enterprise partition behind firewall 215.

[0023] In some embodiments, the data center maintains a physical separation, or "air gap" between the enterprise partition 210 and the spare partition 220. The "air gap" is intended to physically prevent access of computing resources in the enterprise partition by entities outside the enterprise (e.g., clients of resource pooling and shared services). Specifically, no medium of communication exists between the hardware equipment (e.g., servers, racks, switches, routers) of the enterprise partition 210 and the hardware equipment of the spare partition 220 in the data center 200. In some embodiments, the enterprise partition 210 has no physical connection or contact with the hardware equipment of the spare partition 220. As a result, one way to move a computing resource or server from the enterprise partition to the spare partition is to physically disconnect the computing resource from the hardware connections of the enterprise partition and physically connect the computing resource to the hardware connections of the spare partition. Similarly, the only way to move a computing resource or server from the spare partition to the enterprise partition is to physically disconnect the computing resource from the hardware connections of the spare partition and physically connect the computing resource to the hardware connections of the enterprise partition.

[0024] In enterprise data center 200, robots 250 are used in the enterprise data center to physically connect and disconnect computing resources. For example, to transfer computing resource 240 from enterprise partition 210 to spare partition 220, enterprise workload manager 230 can instruct robot 250 to perform the following actions: (1) unplug the cable between computing resource 240 and the switch of enterprise partition 210, and (2) plug in the cable between computing resource 240 and the switch of spare partition 220.

[0025] In some other embodiments, enterprise data centers participating in the cloud enterprise resource management system 100 do not use physical operations to transfer computing resources between the enterprise partition and the spare partition. Instead, the computing resources being transferred maintain physical connections with both the enterprise partition and the spare partition, and the transfer is accomplished virtually in the electronic signaling domain, for example, by modifying the authentication requirements of the computing resources or imposing other software security measures to separate the enterprise and spare partitions.

[0026] The transfer of computing resources between the enterprise partition and the spare partition is initiated by the enterprise workload manager 230 based on its prediction of the enterprise workload in the data center. In some embodiments, a predicted workload well below the capacity of the enterprise partition (e.g., below a first threshold) is used as an indication that one or more computing resources are to be moved from the enterprise partition to the spare partition. Conversely, a predicted workload within a safety margin of the capacity of the enterprise partition or exceeding the capacity of the enterprise partition (e.g., above a second threshold) is used as an indication that one or more computing resources need to be moved from the spare partition back to the enterprise partition. The enterprise workload manager 230 can then (1) notify the cloud coordinator 110 that the computing resources have been made available for resource pooling and sharing services, or (2) request the cloud coordinator 110 to release the computing resources from resource pooling and sharing services. 3a-b conceptually illustrate the sequence of events in the enterprise workload manager 230 and cloud coordinator 110 when transferring computing resources between an enterprise partition and a spare partition.

[0027] 3a illustrates a sequence of operations for transferring computing resources from the enterprise partition 210 to the spare partition 220. As illustrated, the workload manager 230 determines (at step 310) that resources are to be made available for resource pooling and shared services, for example, when the enterprise's projected workload is below a certain threshold. The workload manager identifies (at step 311) computing resources to be made available for cloud. The workload manager 230 then instructs the robot 250 to move the identified resources from the enterprise partition 210 to the spare partition 220 (at step 312). The workload manager then informs the cloud coordinator 110 that the resources are to be made available for resource pooling and shared services (at step 313). The workload manager also sends an identification of the resources that are to be made available to the cloud coordinator 110 (at step 314). The cloud coordinator can then notify the workload manager that the resources have been accepted (at step 315) and instruct clients of the resource pooling and sharing service to use the resources.

[0028] FIG. 3b illustrates an exemplary sequence of operations for transferring computing resources from the spare partition 220 back to the enterprise partition 210. As illustrated, the workload manager 230 determines (at step 320) that the enterprise may need additional computing resources at a future time, for example, when the enterprise's projected workload is higher than a certain threshold. The workload manager requests (at step 321) the cloud coordinator 110 to release computing resources in the spare partition 220 for a specified time frame. The cloud coordinator 110 then identifies (at step 322) computing resources in the spare partition 220 for release at the specified time and provides (at step 323) an identification of the computing resources that are being released. The cloud coordinator can identify computing resources that are not being used by clients of the resource pooling and sharing service for release. The workload manager then notifies (at step 324) the cloud coordinator that the released resources have been accepted. The workload manager also instructs the robot 250 to move the identified resources from the spare partition 220 to the enterprise partition 210 (at step 325).

[0029] In some embodiments, when all of the computing resources in the spare partition 220 are being used by clients of the resource pooling and sharing service, the cloud coordinator 110 can inform the workload manager 230 that all of the computing resources in the spare partition 220 are being used. The cloud coordinator 110 in these examples can wait for at least one of the computing resources in the spare partition 220 to become idle before notifying the workload manager 230 (at step 324) of the identity of the computing resource that will be released back to the enterprise partition.

[0030] FIG. 4a conceptually illustrates a block diagram of an enterprise workload manager 230 consistent with an exemplary embodiment. The enterprise workload manager 230 is implemented in an exemplary computing device 410. The computing device 410 implements a workload forecaster 411, a resource status table 412, a workload controller 413, a cloud interface 414, and a transfer interface 415. In some embodiments, the modules 411-415 are modules of software instructions being executed by one or more processing units (e.g., processors) of the computing device 410. In some embodiments, the modules 411-415 are modules of hardware circuits implemented by one or more integrated circuits (ICs) of an electronic device. Although the modules 411-415 are shown as separate modules, some of the modules are combined into a single module. An exemplary computing device 600 in which the computing device 410 may be implemented is described below with reference to FIG. 6.

[0031] The workload predictor 411 predicts the workload that will occur in the enterprise partition 210 in a future time frame. The workload predictor can make this prediction based on past workload records, measurements or key performance indicators obtained from the data center, as well as data provided by the enterprise that operates the data center. The predicted workload is provided to the workload controller 413.

[0032] The workload controller 413 makes a decision as to whether to move resources into or out of the spare partition based on the predicted workload provided by the workload forecaster 411. The resource status table 412 maintains the status of different computing resources in the data center. The status of the computing resources may include whether the computing resources are currently in the enterprise partition 210 or in the spare partition 220, whether the computing resources are actively used by the enterprise, whether the computing resources are actively used by clients of the resource pooling and sharing service, etc. The workload controller 413 may determine the current capacity of the enterprise partition using the contents of the resource status table 412. Based on a comparison between the determined current enterprise partition capacity and the predicted workload, the workload controller 413 may (1) request that additional capacity be added to the enterprise partition, or (2) allow excess capacity to be moved to the spare partition. The workload controller 413 may cause a corresponding transfer of computing resources by using the cloud interface 414 and the transfer interface 415.

[0033] The cloud interface 414 is used by the workload manager computing device 410 to communicate with the cloud coordinator 110 to (1) provide notification that computing resources are being made available, (2) request the release of computing resources back to the enterprise partition, (3) identify the computer resources being transferred, and (4) determine when the transfer may occur. The communication between the cloud interface 414 and the cloud coordinator 110 is described above with reference to Figures 3a-b. The cloud interface 414 may also include the communications hardware and software components necessary to communicate over the Internet.

[0034] The transfer interface 415 controls the actual transfer of computing resources between the enterprise partition 210 and the spare partition 220. In some embodiments, the transfer interface 415 translates commands from the workload controller into specific instructions for controlling a robot (e.g., robot 250) to physically disconnect and / or connect computing resources to the enterprise partition or the spare partition.

[0035] FIG. 4b conceptually illustrates a block diagram of the cloud coordinator 110, consistent with one exemplary embodiment. The cloud coordinator 110 is implemented in an exemplary computing device 420. The computing device 420 implements an enterprise interface 421, a resource status table 422, a service control device 423, a client interface 424, and a billing module 425. In some embodiments, the modules 421-425 are modules of software instructions executed by one or more processing units (e.g., processors) of the computing device 410. In some embodiments, the modules 421-425 are modules of hardware circuits implemented by one or more integrated circuits (ICs) of an electronic device. Although the modules 421-425 are shown as separate modules, some of the modules are combined into a single module. An exemplary computing device 600 in which the computing device 420 may be implemented is described below with reference to FIG. 6.

[0036] The enterprise interface 421 is used by the cloud coordinator to communicate with the data centers of the enterprises participating in the resource pooling and sharing services. The communication between the enterprise interface 421 and the participating enterprises was described above with reference to Figures 3a-b.

[0037] The service controller 423 decides which computing resources are provided to which clients of the resource pooling and sharing service. The service controller 423 learns from the enterprise interface 421 which computing resources are available in which enterprise data centers (i.e., in spare partitions) and which enterprises are requesting the release of computing resources from the resource pooling and sharing service. The status of each computing resource is kept in a resource status table 422, and the service controller 423 uses the contents of the resource status table 422 to decide whether to allocate the computing resource to a client or release the computing resource back to the enterprise.

[0038] The resource status table 422 maintains the status of different computing resources of different enterprise data centers participating in the resource pooling and sharing service. The status of a computing resource may also include an identifier of the data center housing the computing resource, an indication of whether the computing resource is available for a client of the resource pooling and sharing service, an indication of whether the computing resource is currently being used by a client of the resource pooling and sharing service, an identification of the client using the computing resource, etc.

[0039] The client interface 424 is used to communicate with various clients of the resource pooling and sharing service. The information being relayed to the clients may include the identification or addresses of the computing resources made available to the clients, as well as the salient authentication information for the clients to access the computing resources within their corresponding enterprise data centers.

[0040] The billing module 425 maintains a database of client and participating enterprise accounts. The billing module 425 monitors the usage of computing resources within participating enterprises by clients of the resource pooling and sharing service. For example, the billing module can credit enterprise accounts and debit client accounts based on the monitored usage of computing resources by the clients.

[0041] 5 conceptually illustrates a process 500 for controlling data centers participating in resource pooling and sharing services consistent with an illustrative embodiment. In some embodiments, one or more processing units (e.g., processors) of a computing device (e.g., computing device 410) implementing enterprise workload manager 230 perform process 500 by executing instructions stored on a computer-readable medium.

[0042] A workload manager predicts (at block 510) a workload in a data center including a first partition of computing resources and a second partition of computing resources. In some embodiments, the first partition of computing resources (the enterprise partition) is designated as reserved for use by the enterprise, and the second partition of computing resources (the spare partition) is designated as available for use by one or more clients of a resource pooling and sharing service that coordinates sharing of computing resources belonging to one or more enterprises by one or more clients. In some embodiments, access to the first partition is controlled by a first firewall that allows access by the enterprise and denies access by clients of the resource pooling and sharing service or any entity outside the enterprise.

[0043] The workload manager determines (at block 520) whether the predicted workload is less than a first threshold. If the predicted workload is less than the first threshold, the process proceeds to block 525. If not, the process proceeds to block 530. In some embodiments, the predicted workload being sufficiently less than the capacity of the enterprise partition (e.g., less than the first threshold) is used as an indication that excess computing capacity exists within the enterprise partition and one or more computing resources are moved from the enterprise partition to a spare partition.

[0044] At block 525, the workload manager transfers the first computing resource from the first partition to the second partition. The process then returns to block 510 to further forecast the workload at the enterprise's data center. In some embodiments, the workload manager instructs the robot to physically detach the first computing resource from the first partition and to physically attach the first computing resource to the second partition. The workload manager can also communicate with a cloud coordinator of the resource pooling and sharing services to provide an identifier of the first computing resource and to specify a time frame during which the first computing resource will be available for use by a client of the resource pooling and sharing services. The cloud coordinator can then facilitate the client of the resource pooling and sharing services accessing the first computing resource by using the provided identifier of the first computing resource during the specified time frame. The cloud coordinator also credits the enterprise's account and debits the client's account based on the usage of the first computing resource.

[0045] The workload manager determines (at block 530) whether the predicted workload exceeds a second threshold. If the predicted workload exceeds the second threshold, the process proceeds to block 535. If not, the process returns to block 510. In some embodiments, the predicted workload being within the failure margin of the enterprise partition's capacity or exceeding the enterprise partition's capacity (e.g., exceeding the second threshold) is used as an indication that there is not enough computing capacity in the enterprise partition such that one or more computing resources are returned to the enterprise partition from the spare partition.

[0046] At block 535, the workload manager transfers the second computing resource from the second partition to the first partition. The process then returns to block 510 to further forecast the workload at the enterprise data center. In some embodiments, the workload manager instructs the robot to physically detach the second computing resource from the second partition and to physically attach the second computing resource to the first partition. The workload manager can also communicate with a cloud coordinator of the resource pooling and sharing service to request the return or release of computing resources and receive a response including an identifier of the computing resource being returned or released. The identifier can identify computing resources in the second partition that are not being used by clients of the resource pooling and sharing service.

[0047] By predicting the workload in the enterprise data center, a computing device acting as a workload manager of the enterprise data center can participate in a resource pooling and sharing service, enabling a cloud enterprise resource management system. Based on the predicted workload, the computing device dynamically decides whether to provide spare resources to the resource pooling and sharing service or request release of resources from the resource pooling and sharing service. Resource utilization efficiency of the enterprise data center is improved.

[0048] The present application may be a system, method, or computer program product, or combination thereof, at any possible level of technical detail integration. The computer program product may also include one or more computer-readable storage media having computer-readable program instructions thereon for causing a processor to implement aspects of the present disclosure.

[0049] A computer readable storage medium may be a tangible device capable of holding and storing instructions for use by an instruction execution device. A computer readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer readable storage media includes: portable computer diskettes, hard disks, random access memories (RAM), read-only memories (ROM), erasable programmable read-only memories (EPROMs or flash memories), static random access memories (SRAMs), portable compact disk read-only memories (CD-ROMs), digital versatile disks (DVDs), memory sticks, floppy disks, mechanically encoded devices such as punch cards or raised structures having grooves with instructions recorded thereon, and any suitable combination of the foregoing. In this specification, a computer-readable storage medium should not be construed as being a transitory signal per se, such as a radio wave or an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., light pulses passing through a fiber optic cable), or an electrical signal transmitted over a wire.

[0050] The computer readable program instructions described herein may be downloaded to the respective computing / processing device from the computer readable storage medium or to an external computer or external storage device over a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may comprise copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface in each computing / processing device receives the computer readable program instructions from the network and forwards the computer readable program instructions for storage in the computer readable storage medium in the respective computing / processing device. The computer readable program instructions for carrying out the operations of the present disclosure may be assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state setting data, configuration data for an integrated circuit, or source or object code written in any combination of one or more programming languages, including object oriented programming languages, e.g., Smalltalk®, C++, etc., and procedural programming languages, e.g., the “C” programming language or similar programming languages. The computer readable program instructions may be executed completely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer, or completely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or wide area network (WAN), or the connection may be made to an external computer (e.g., via the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA) can execute computer readable program instructions by customizing the electronic circuitry using state information of the computer readable program instructions to perform aspects of the disclosure.

[0051] Aspects of the disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, are implemented by computer-readable program instructions. These computer-readable program instructions are provided to a processor of a computer, or other programmable data processing apparatus, to produce a machine, such that the instructions, which execute via a processor of the computer, or other programmable data processing apparatus, produce means for implementing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams. These computer-readable program instructions are also stored in a computer-readable storage medium that can instruct a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner, such that the computer-readable storage medium on which the instructions are stored includes an article of manufacture including instructions that implement aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.

[0052] The computer-readable program instructions may also be loaded into a computer, other programmable data processing apparatus, or other device to execute a series of operational steps on the computer, other programmable apparatus, or other device to produce a computer-implemented process, such that the instructions executing on the computer, other programmable apparatus, or other device implement the functions / acts specified in one or more blocks of the flow charts and / or block diagrams. The flow charts and block diagrams in the figures (e.g., FIG. 5) illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flow charts or block diagrams may represent a module, segment, or portion of instructions, which includes one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions shown in the blocks may occur out of the order shown in the figures. For example, two blocks shown in succession are in fact executed substantially simultaneously, or the blocks are sometimes executed in a reverse order, depending on the functionality involved. It should also be noted that each block of the block diagram and / or flow chart illustrations, and combinations of blocks in the block diagram and / or flow chart illustrations, are implemented by a special-purpose hardware-based system that performs the specified functions or acts or executes a combination of special-purpose hardware and computer instructions.

[0053] 6 illustrates a block diagram of components of data processing systems 600 and 650 that may be used to implement a workload manager (e.g., 230) or a cloud coordinator (e.g., 110) in accordance with an exemplary embodiment of the present disclosure. It should be understood that FIG. 6 is merely intended to provide an illustration of one implementation and does not imply limitations with respect to the environment in which different embodiments may be implemented. Numerous modifications to the depicted environment may be made based on design and implementation requirements.

[0054] Data processing systems 600 and 650 are representative of any electronic device capable of executing machine-readable program instructions. Data processing systems 600 and 650 may be representative of a smart phone, a computer system, a PDA, or other electronic device. Examples of computing systems, environments, or configurations or combinations thereof represented by data processing systems 600 and 650 include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, network PCs, minicomputer systems, and distributed cloud computing environments that include any of the foregoing systems or devices.

[0055] The data processing systems 600 and 650 may also include a set of internal components 605 and a set of external components 655 as shown in FIG. 6. The set of internal components 605 includes one or more processors 620 on one or more buses 626, one or more computer-readable RAMs 622 and one or more computer-readable ROMs 624, as well as one or more operating systems 628 and one or more computer-readable tangible storage devices 630. The one or more operating systems 628 and programs such as programs for executing the process 500 are stored in one or more computer-readable tangible storage devices 630 for execution by the one or more processors 620 via one or more RAMs 622 (which typically include cache memory). In the embodiment shown in FIG. 6, each of the computer-readable tangible storage devices 630 is a magnetic disk storage device of an internal hard drive. Alternatively, each of the computer-readable tangible storage devices 630 is a semiconductor storage device such as a ROM 624, an EPROM, a flash memory, or any other computer-readable tangible storage device capable of storing computer programs and digital information.

[0056] The set of internal components 605 also includes a R / W drive or interface 632 for reading from and writing to one or more portable computer-readable tangible storage devices 686, such as a CD-ROM, a DVD, a memory stick, a magnetic tape, a magnetic disk, an optical disk, or a semiconductor storage device. Instructions for executing the process 500 are stored on one or more of the respective portable computer-readable tangible storage devices 686, read via the respective R / W drive or interface 632 and loaded onto the respective hard drive 630.

[0057] The set of internal components 605 may also include a network adapter (or switch port card) or interface 636, such as a TCP / IP adapter card, a wireless Wi-Fi interface card, or a 3G or 4G wireless interface card, or other wired or wireless communication link. Instructions for the aforementioned processes or programs may be downloaded from an external computer (e.g., a server) via a network (e.g., the Internet, a local area network, or other wide area network) and the respective network adapter or interface 636. From the network adapter (or switch port adapter) or interface 636, instructions and data for the described programs or processes are loaded into the respective hard drives 630. The network may also include copper wire, optical fiber, wireless transmissions, routers, firewalls, switches, gateway computers, or edge servers, or combinations thereof.

[0058] The set of external components 655 may also include a computer display monitor 670, a keyboard 680, and a computer mouse 684. The set of external components 655 may also include touch screens, virtual keyboards, touch pads, pointing devices, and other human interface devices. The set of internal components 605 also includes a device driver 640 for interfacing to the computer display monitor 670, the keyboard 680, and the computer mouse 684. The device driver 640, the R / W drive or interface 632, and the network adapter or interface 636 include hardware and software (stored in the storage device 630 and / or the ROM 624).

[0059] Although the present disclosure includes embodiments for implementing the invention on cloud computing, it should be understood that implementation of the teachings recited herein is not limited to a cloud computing environment. Rather, embodiments of the present disclosure can be implemented in conjunction with any other type of computing environment now known or later developed. Cloud computing is a model of service delivery for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with the provider of the service. This cloud model may also include at least five characteristics, at least three service models, and at least four deployment models.

[0060] On-Demand Self-Service: Cloud consumers can unilaterally provision computing power, for example, server time and network storage, as they need it – automatically and without the need for human interaction with the provider of the service.

[0061] Wide Area Network Access: Capabilities are available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., cell phones, laptops, and PDAs).

[0062] Resource Pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically allocated and reallocated according to demand. Consumers generally have no control or knowledge of the exact location of the provided resources, although there is a sense of location independence in that they may be able to specify location at a higher level of abstraction (e.g., country, state, or data center).

[0063] Rapid Elasticity: Capacity is rapidly and elastically provisioned, in some cases automatically, to rapidly scale out and rapidly release to rapidly scale in. To the consumer, the capacity available for provisioning often appears unlimited and may be purchased in any amount at any time.

[0064] Measured Services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at any level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage is monitored, controlled, and reported, providing transparency for both providers and consumers of the services utilized.

[0065] Software as a Service (SaaS): The capability provided to the consumer is to use the provider's applications running on a cloud infrastructure. The applications are accessible from a variety of client devices through thin-client interfaces such as web browsers (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.

[0066] Platform as a Service (PaaS): The capability offered to the consumer is to deploy consumer-created or acquired applications onto a cloud infrastructure that is written using programming languages ​​and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, or storage, but does control the deployed applications, and possibly the application hosting environment configuration. Infrastructure as a Service (IaaS): The capability offered to the consumer is the provisioning of processing, storage, network, and other underlying computing resources on which the consumer can deploy and run any software, which may also include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but does control the operating systems, storage, deployed applications, and perhaps has limited control over selected networking components (e.g., host firewalls).

[0067] Private Cloud: The cloud infrastructure is operated exclusively for an organization. It is managed by that organization or a third party and can reside on-premise or off-premise.

[0068] Community Cloud: The cloud infrastructure is shared by several organizations to support a specific community with common concerns (e.g., mission, security requirements, policies, and compliance considerations). It is managed by those organizations or a third party and can reside on-premise or off-premise.

[0069] Public Cloud: The cloud infrastructure is made available to the general public or large industry organizations and is owned by an organization that sells cloud services.

[0070] Hybrid Cloud: A cloud infrastructure is a composite of two or more clouds (private, community, or public) that remain unique entities but are tied together by standard or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).

[0071] A cloud computing environment is a service oriented approach with an emphasis on statelessness, low coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure that includes a network of interconnected nodes.

[0072] Referring now to FIG. 7, an exemplary cloud computing environment 750 is depicted. As shown, the cloud computing environment 750 includes one or more cloud computing nodes 710 with which local computing devices used by cloud consumers, such as, for example, a personal digital assistant (PDA) or cell phone 754A, a desktop computer 754B, a laptop computer 754C, or an automobile computer system 754N, or combinations thereof, can communicate. The nodes 710 can communicate with each other. They are physically or virtually organized into one or more networks, such as, for example, a private, community, public, or hybrid cloud, or combinations thereof, as previously described (not shown). This allows the cloud computing environment 750 to provide infrastructure, platform, and / or software as a service without the cloud consumer having to maintain resources on the local computing device. It will be appreciated that the types of computing devices 754A-N shown in FIG. 7 are intended to be illustrative only, and that the computing node 710 and cloud computing environment 750 can communicate with any type of computerized device via any type of network and / or network addressable connection (e.g., using a web browser).

[0073] Referring now to Figure 8, a set of functional abstraction layers provided by cloud computing environment 750 (of Figure 7) is shown. It should be understood that the components, layers, and functions illustrated in Figure 8 are intended to be merely illustrative, and that embodiments of the present disclosure are not limited thereto. As depicted, the following layers and corresponding functions are provided:

[0074] Hardware and software layer 860 includes hardware and software components. Examples of hardware components include: mainframe 861, RISC (reduced instruction set computing) architecture based servers 862, servers 863, blade servers 864, storage devices 865, and networks and networking components 866. In some embodiments, software components include network application server software 867 and database software 868.

[0075] The virtualization layer 870 provides an abstraction layer from which the following examples of virtual entities are provided: virtual servers 871, virtual storage 872, virtual networks including virtual private networks 873, virtual applications and operating systems 874, and virtual clients 875.

[0076] In one example, the management layer 880 can provide the functions described below. Resource provisioning 881 provides dynamic procurement of computing and other resources utilized to execute tasks within the cloud computing environment. Metering and pricing 882 provides cost tracking as resources are utilized within the cloud computing environment and charging or billing for the consumption of these resources. In one example, these resources may also include application software licenses. Security provides identity verification of cloud consumers and tasks, and protection of data and other resources. User portal 883 provides consumer and system administrator access to the cloud computing environment. Service level management 884 provides cloud computing resource allocation and management such that required service levels are met. Service level agreement (SLA) planning and fulfillment 885 provides advance provisioning and procurement of cloud computing resources where future requirements are anticipated according to SLAs.

[0077] Workloads tier 890 provides examples of functionality for which a cloud computing environment is utilized. Examples of workloads and functions provided from this tier include: mapping and navigation 891, software development and lifecycle management 892, virtual classroom instructional delivery 893, data analytics processing 894, transaction processing 895, and workloads 896. In some embodiments, workloads 896 perform some of the operations of cloud coordinator 110.

[0078] One or more of the above embodiments implement a workload manager in an enterprise data center for resource pooling and sharing services in a cloud enterprise resource management system. The workload manager is implemented in a computer infrastructure having one or more computing devices that perform workload forecasting for the data center and by moving computing resources between an enterprise partition and a spare partition based on the forecasted workload. The computer infrastructure is further used to communicate with a cloud coordinator of resource pooling and sharing services that is also implemented in the computer infrastructure.

[0079] The description of various embodiments of the present disclosure is presented for the purpose of explanation, but is not intended to be exhaustive or limited to the disclosed embodiments. Numerous changes and modifications will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used in this specification has been selected to best explain the principles of the embodiments, practical applications, or technical improvements through technology found in the market, or to enable those skilled in the art to understand the embodiments disclosed herein. [Explanation of symbols]

[0080] 100 Cloud enterprise resource management system 110 Cloud Coordinator 112 Enterprise Workload Manager 114 Enterprise Workload Manager 116 Enterprise Workload Manager 200 Corporate Data Centers 210 Corporate Partition 215 Firewall 220 Spare Partition 225 Firewall 230 Enterprise Workload Manager 240 Computing Resources 250 Robot 410 Computing Devices 411 Workload Prediction Device 412 Resource Status Table 413 Workload Control Device 414 Cloud Interface 415 Transfer Interface 420 Computing Devices 421 Corporate Interface 422 Resource Status Table 423 Service Control Equipment 424 Client Interface 425 Billing Module 600 Exemplary Computing Devices and Data Processing Systems 605 Internal Components 620 Processor 622 RAM 624 ROM 626 Bus 628 Operating System 630 Computer-readable tangible storage devices, hard drives 632 Interface 636 Interface 640 Device Drivers 650 Data Processing System 655 External Components 670 Computer Display Monitor 680 Keyboard 684 Computer Mouse 686 Portable Computer-Readable Tangible Storage Device 710 cloud computing nodes 750 Cloud Computing Environments 754A Mobile Phone 754B Desktop Computer 754C Laptop Computer 754N Automotive Computer System 860 Hardware and Software Layers 861 Mainframe 862 RISC (Reduced Instruction Set Computer) architecture based server 863 Server 864 Blade Server 865 Storage device 866 Networks and Networking Components 867 Network Application Server Software 868 Database Software 870 Virtualization Layer 871 Virtual Servers 872 Virtual Storage 873 Virtual Networks 874 Virtual Applications and Operating Systems 875 Virtual Clients 880 Management layer 881 Resource Provisioning 882 Measurement and Pricing 883 User Portal 884 Service Level Management 885 Service Level Agreement (SLA) Planning and Implementation 890 Workload Tier 891 Mapping and Navigation 892 Software Development and Lifecycle Management 893 Virtual Classroom Education Delivery 894 Data Analysis Processing 895 Transaction Processing 896 Workload

Claims

1. 1. A system comprising: a cloud coordinator for coordinating sharing of computing resources belonging to a plurality of data centers of an enterprise by one or more clients of a resource pooling and sharing service, each enterprise's data center comprising a first partition of computing resources and a second partition of computing resources, the first partition of computing resources being designated as reserved for use by the enterprise and the second partition of computing resources being designated as available for use by one or more clients of the resource pooling and sharing service; a plurality of workload managers, each workload manager forecasting a workload at a data center of an enterprise and (i) transferring a first computing resource from a first partition to a second partition of the data center when the workload manager determines that the forecasted workload is below a first threshold, and (ii) transferring a second computing resource from the second partition to the first partition of the data center when the workload manager determines that the forecasted workload exceeds a second threshold; A system comprising:

2. 2. The system of claim 1, wherein the workload manager is configured to transfer the first computing resource from the first partition to the second partition by instructing a robot to physically detach the first computing resource from the first partition and to physically connect the first computing resource to the second partition.

3. A method for computer-based information processing, comprising the steps of: predicting a workload at an enterprise data center including a first partition of computing resources and a second partition of computing resources, the first partition of computing resources being designated as reserved for use by the enterprise and the second partition of computing resources being designated as available for use by one or more clients of a resource pooling and sharing service that coordinates sharing of computing resources belonging to one or more enterprises by one or more clients; transferring a first computing resource from the first partition to the second partition when determining that the projected workload is less than a first threshold; transferring a second computing resource from the second partition to the first partition when determining that the projected workload exceeds a second threshold; A method comprising:

4. 4. The method of claim 3, wherein transferring the first computing resource from the first partition to the second partition includes instructing a robot to physically disconnect the first computing resource from the first partition and physically connect the first computing resource to the second partition.

5. 4. The method of claim 3, wherein transferring a first computing resource from the first partition to the second partition includes communicating with a cloud coordinator of the resource pooling and sharing services to provide an identifier of the first computing resource and to specify a time frame during which the first computing resource will be available for use by the clients of the resource pooling and sharing services.

6. 6. The method of claim 5, wherein the cloud coordinator facilitates access to the first computing resource by a client of the resource pooling and sharing service by using the provided identifier of the first computing resource during the specified time frame.

7. The method of claim 6 , wherein the cloud coordinator credits the company's account and debits the client's account based on the usage of the first computing resource.

8. 4. The method of claim 3, wherein transferring the second computing resource from the second partition to the first partition includes instructing a robot to physically disconnect the second computing resource from the second partition and physically connect the second computing resource to the first partition.

9. 4. The method of claim 3, wherein transferring a second computing resource from the second partition to the first partition includes communicating with a cloud coordinator of the resource pooling and sharing service to request a return of a computing resource and receiving a response including an identifier of the computing resource being returned.

10. The method of claim 9 , wherein the identifier identifies computing resources in the second partition that are not being used by clients of the resource pooling and sharing service.

11. 4. The method of claim 3, wherein access to the first partition is controlled by a first firewall that allows access by the enterprise and denies access by clients of the resource pooling and sharing services.

12. 1. A computing device comprising: A processor; a memory device for storing a set of instructions; Equipped with Execution of the set of instructions by the processor comprises: predicting a workload at an enterprise data center including a first partition of computing resources and a second partition of computing resources, the first partition of computing resources being designated as reserved for use by the enterprise and the second partition of computing resources being designated as available for use by one or more clients of a resource pooling and sharing service that coordinates sharing of computing resources belonging to one or more enterprises by one or more clients; transferring a first computing resource from the first partition to the second partition when determining that the projected workload is less than a first threshold; transferring a second computing resource from the second partition to the first partition when determining that the projected workload exceeds a second threshold; and configuring said computing device to perform acts including:

13. 13. The computing device of claim 12, wherein transferring the first computing resource from the first partition to the second partition includes instructing a robot to physically disconnect the first computing resource from the first partition and physically connect the first computing resource to the second partition.

14. 13. The computing device of claim 12, wherein transferring a first computing resource from the first partition to the second partition includes communicating with a cloud coordinator of the resource pooling and sharing services to provide an identifier of the first computing resource and to specify a time frame during which the first computing resource will be available for use by the clients of the resource pooling and sharing services.

15. 15. The computing device of claim 14, wherein the cloud coordinator facilitates access to the first computing resource by a client of the resource pooling and sharing service by using the provided identifier of the first computing resource during the specified time frame.

16. 16. The computing device of claim 15, wherein the cloud coordinator credits the company's account and debits the client's account based on the usage of the first computing resource.

17. 13. The computing device of claim 12, wherein transferring the second computing resource from the second partition to the first partition includes instructing a robot to physically disconnect the second computing resource from the second partition and physically connect the second computing resource to the first partition.

18. 13. The computing device of claim 12, wherein transferring a second computing resource from the second partition to the first partition includes communicating with a cloud coordinator of the resource pooling and sharing service to request a return of a computing resource and receiving a response including an identifier of the computing resource being returned.

19. 20. The computing device of claim 18, wherein the identifier identifies computing resources in the second partition that are not being used by clients of the resource pooling and sharing service.

20. 13. The computing device of claim 12, wherein access to the first partition is controlled by a first firewall that allows access by the enterprise and denies access by clients of the resource pooling and sharing services.

Citation Information

Patent Citations

  • System and method for providing computer resource and resource transaction program

    JP2010250778A

  • Robot type carrying body, data center, and maintenance method of data center

    JP2015151273A

  • Closed area network connection device, program and method

    JP2018137591A

  • System and Method for Managing Size of Clusters in a Computing Environment

    US20180157511A1

  • Providing use of local or private cloud infrastructure resources to public cloud providers

    US9699114B1