Digital twins for distributing distributed computing resources
Digital twins optimize the distribution of computing resources by generating representations of interactions between entities, addressing the latency and bandwidth challenges in modern computing environments.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- ORACLE INT CORP
- Filing Date
- 2024-02-16
- Publication Date
- 2026-04-14
AI Technical Summary
Modern computing devices face challenges in providing low latency and high bandwidth required by applications like augmented reality and virtual reality, which cannot be met by a single device or cloud computing servers, leading to inefficiencies in resource distribution.
The use of digital twins to facilitate the distribution of distributed computing resources by generating a digital representation of potential interactions between entities, allowing for the allocation of optimized computing resources based on request parameters and non-computational resource transfers.
Enables efficient and optimized distribution of computing resources across multiple entities, improving latency and bandwidth for resource-intensive applications.
Smart Images

Figure 2026511508000001 
Figure 2026511508000002 
Figure 2026511508000003
Abstract
Description
Technical Field
[0001] Cross - reference to Related Applications This application claims priority to U.S. Patent Application No. 18 / 186,434, filed on March 20, 2023, titled "DIGITAL TWIN FOR DISTRIBUTING DECENTRALIZED COMPUTE RESOURCES", which is hereby incorporated by reference in its entirety for all purposes.
[0002] Technical Field The present disclosure relates to systems and methods for managing decentralized computing resources. More particularly, the present disclosure relates to systems and methods including digital twins for distributing decentralized computing resources.
Background Art
[0003] Background Computing devices can be manufactured using varying levels of computing resources. For example, computer servers may have significantly more computing memory and processing power than mobile computing devices. However, modern computer programs, applications, and other modern software create a need for computing resources far exceeding those provided by a single mobile computing device, or even a single computer server. For example, augmented reality and virtual reality programs require low latency and high bandwidth that cannot be provided by a single computing device. Cloud computing servers can be used to address the shortage of computing resources, but the exponentially increasing need for computing resources, such as the need from an exponentially increasing number of device users involved in augmented reality and / or virtual reality programs, can leave cloud computing servers unable to provide the required low latency and high bandwidth. [Overview of the project] [Means for solving the problem]
[0004] overview In some embodiments, a method is provided for a computer to distribute distributed computing resources. Computation resource metadata identifying a set of distributed computing resources may be received. Each distributed computing resource in the set of distributed computing resources may be available for distribution, and each distributed computing resource in the set of distributed computing resources may be associated with a different provider entity of a set of provider entities. A request to use one or more computing resources may be received from the receiving entity. Based on the request, a digital twin may be generated. The digital twin can facilitate the identification of a particular computing resource in the set of distributed computing resources, and the digital twin can represent a set of potential interactions, including potential interactions between the receiving entity and each provider entity in the set of provider entities. Interactions may be initiated by using the digital twin. Interactions may be between the receiving entity and a particular provider entity in the set of provider entities, and interactions may include allocating a particular computing resource from the particular provider entity to the receiving entity in response to a request.
[0005] In some embodiments, generating a digital twin may include (i) determining the type of potential dialogue associated with a receiving entity based on the receiving entity, and (ii) generating a digital twin specific to the type of potential dialogue. In some embodiments, each potential dialogue in the set of potential dialogues may be characterized by the type of potential dialogue in the digital twin.
[0006] In some embodiments, the compute resource metadata may include (i) the address of each distributed compute resource in the set of distributed compute resources, (ii) the capacity of each distributed compute resource in the set of distributed compute resources, and (iii) the identification information of the provider entities in the set of provider entities corresponding to each distributed compute resource in the set of distributed compute resources.
[0007] In some embodiments, initiating an interaction may include (i) determining the amount of non-computation resources to be transferred before initiating the interaction by using a digital twin, and (ii) facilitating the transfer of this amount of non-computation resources from the receiving entity to the blockchain. In some embodiments, the specific computing resources are optimized computing resources. Furthermore, initiating an interaction may include allocating optimized computing resources from a specific provider entity to the receiving entity in response to facilitating the transfer of this amount of non-computation resources from the receiving entity to the blockchain.
[0008] In some embodiments, generating a digital twin may include (i) determining the type of potential interaction associated with a receiving entity based on the receiving entity, (ii) accessing an existing digital twin specific to the type of potential interaction, and (iii) coordinating an existing digital twin based on compute resource metadata and the request to generate a digital twin.
[0009] In some embodiments, a computer program product is provided which includes instructions configured to cause one or more data processors to perform various operations, which are tangibly embodied in a non-temporary machine-readable storage medium. These operations may include receiving compute resource metadata that can identify a set of distributed compute resources. Each distributed compute resource in the set of distributed compute resources may be distributedly available, and each distributed compute resource in the set of distributed compute resources may be associated with a different provider entity of a set of provider entities. These operations may include receiving a request from a receiving entity to use one or more compute resources. Based on this request, these operations may include generating a digital twin that facilitates the identification of a particular compute resource in the set of distributed compute resources. The digital twin may represent a set of potential interactions, including potential interactions between the receiving entity and each provider entity in the set of provider entities. These operations may include initiating an interaction between the receiving entity and a particular provider entity in the set of provider entities by using the digital twin. The interaction may include allocating a particular compute resource from the particular provider entity to the receiving entity in response to the request.
[0010] In some embodiments, a system is provided that includes one or more data processors and a non-temporary computer-readable storage medium containing instructions, which, when executed on one or more data processors, cause one or more data processors to perform various operations. The system can receive compute resource metadata that can identify a set of distributed compute resources. Each distributed compute resource in the set of distributed compute resources may be available for distributed use, and each distributed compute resource in the set of distributed compute resources may be associated with a different provider entity of a set of provider entities. The system can receive a request from a receiving entity to use one or more compute resources. Based on this request, the system can generate a digital twin that facilitates the identification of a particular compute resource in the set of distributed compute resources. The digital twin can represent a set of potential interactions, including potential interactions between the receiving entity and each provider entity in the set of provider entities. By using the digital twin, the system can initiate an interaction between the receiving entity and a particular provider entity in the set of provider entities. The interaction may include allocating a particular compute resource from the particular provider entity to the receiving entity in response to the request.
[0011] The terms and expressions used herein are for illustrative purposes only and are not restrictive. In using such terms and expressions, there is no intention to exclude any features or parts thereof that are shown or described, or any equivalents thereof. It is recognized that various modifications are possible within the scope of the claimed invention. Therefore, while the claimed invention is disclosed in detail by embodiments and optional features, it should be understood that modifications and variations of the concepts disclosed herein may be used by those skilled in the art, and such modifications and variations are considered to fall within the scope of the invention as defined by the appended claims.
[0012] This specification refers to the attached figures below, and the use of similar reference numerals in different figures is intended to indicate similar or analogous components. [Brief explanation of the drawing]
[0013] [Figure 1] This block diagram shows an example of a data processing environment for distributing distributed computing resources according to one embodiment. [Figure 2] This is a flowchart of a process for using a digital twin to distribute distributed computing resources, according to one embodiment. [Figure 3] This is an exemplary data flow diagram for using a digital twin to distribute distributed computing resources, according to one embodiment. [Figure 4] This is another exemplary data flow diagram for using a digital twin to distribute distributed computing resources, according to one embodiment. [Figure 5] This is a simplified diagram showing a distributed system for implementing one of the embodiments. [Figure 6] This is a simplified block diagram showing one or more components of a system environment according to one embodiment. [Figure 7] This figure shows an exemplary computer system in which various embodiments of the present invention may be implemented. [Modes for carrying out the invention]
[0014] Detailed explanation In the following description, certain details are provided to allow for a full understanding of certain embodiments for illustrative purposes. However, it is clear that various embodiments may be practiced without those specific details. Each figure and description is not intended to be restrictive. The word “exemplary” is used herein to mean “serving as an example, case, or illustration.” Not all embodiments or designs described herein as “exemplary” should be construed as necessarily preferable or advantageous to other embodiments or designs.
[0015] overview Certain aspects and features of this disclosure relate to distributing and / or managing distributed computing resources using digital twins. Distributed computing resources may include one or more computing devices, computing systems, servers, or other devices, such as computer memory or computing power. One or more computing devices, computing systems, servers, or other devices may be owned, operated, managed, and / or controlled by unrelated entities. Entities may include individuals, such as users of computing devices, or organizations, such as operators of computer servers. Unrelated entities may make decisions independently of each other with respect to their respective computing resources. For example, a first entity unrelated to a second entity may make decisions about a first computing resource controlled by the first entity, without consideration from or relating to the second entity.
[0016] An example of a set of distributed computing resources may include a first computing device controlled by a first entity (e.g., a first individual), a second computing device controlled by a second entity (e.g., a second individual), and a computer server controlled by a third entity (e.g., an organization), such that the first, second, and third entities do not need to be involved. Each computing resource in the set of distributed computing resources may have different capabilities in terms of computer memory, processing power, etc. For example, the first and second computing devices may have less available processing power and / or computer memory than the computer server. Furthermore, the first, second, and third entities may make the first computing device, the second computing device, and the computer system available independently for distribution.
[0017] Distributing computing resources such as a first computing device, a second computing device, and a computer server may include interactions that allow each computing resource to be used by another entity requesting that resource. For example, a fourth entity may request the use of computing resources from the first computing device, the second computing device, and / or the computer server, and interactions between the fourth entity and one or more of the first, second, or third entities may distribute the computing resources so that the fourth entity can use them.
[0018] Digital twins can be used to facilitate interaction or, in other ways, to facilitate the distribution of distributed computing resources. In some examples, digital twins can include digital representations of existing objects, concepts, systems, etc. For example, a digital twin can represent the components and behavior of an aircraft, the components and behavior of a dialogue, and / or potential dialogues between entities. In a particular example, a digital twin may be generated representing a potential dialogue between a fourth entity and one or more of the first, second, third, or any other entities. Digital twins can be generated based on dialogue history data, computing resource metadata, computing resource request metadata, etc.
[0019] In some examples, a digital twin can be a virtual replica of a physical entity and / or interaction that can include a combination of enabling technologies and analytical capabilities. In some examples, a particular organization (e.g., an airline organization) can generate a digital twin of an aircraft such that the digital twin can include data about the aircraft, such as physical data, boarding times, flight times, and the weather the aircraft was exposed to. The digital representation of the aircraft can be used by a particular organization to analyze the aircraft and / or numerous use cases of the particular organization. Potential interactions can be similarly modeled using the digital twin. Potential interactions can include more than just the linear movement of computational and non-computational resources. Potential interactions can include multiple layers regarding the participants in the interaction within each potential interaction. The digital twin can enable a provider entity and / or a recipient entity to mirror and / or map complex systems and inherent uncertainties, inform decisions, and adapt to variations associated with potential interactions. Potential interactions can include the distribution of one or more distributed computing resources. Improving and / or optimizing the distribution of distributed computing resources can be performed using real-time decisions, digital twins, and the like. The digital twin can be used to contextually classify various types of potential interactions, such as one or more distributed computing resources, interaction participants such as recipient entities, one or more provider entities, etc., and to improve the distribution of distributed computing resources at scale.
[0020] In some examples, the interaction between a receiving entity and a provider entity may be initiated using a digital twin. A computing device may receive compute resource metadata from one or more provider entities, and the computing device may receive requests from the receiving entity to use one or more compute resources. Based on the receiving entity, the provider entities, the compute metadata, the potential interaction involving the receiving entity and / or the provider entities, and any other appropriate data or metadata, the computing device can generate a digital twin that can represent the potential interaction between the provider entity and the receiving entity. In some examples, the digital twin may indicate a specific compute resource from a set of compute resources represented by the compute resource metadata. The specific compute resource may be an optimized compute resource that can optimize or otherwise improve the interaction between the receiving entity and the provider entity, or may include such a compute resource. The computing device can initiate an interaction between the receiving entity and the provider entity corresponding to the specific compute resource. In some examples, the interaction may include the provider entity allocating a specific compute resource to the receiving entity in response to a request. Allocating a specific compute resource may include allowing the receiving entity to use the compute resource.
[0021] Examples of environments for distributing distributed computing resources FIG. 1 is a block diagram showing an example of a data processing environment 100 for distributing distributed computing resources according to an embodiment. As shown in the figure, the data processing environment 100 includes at least entity A 102, entity B 104, entity C 106, entity D 108, computing system 110, and blockchain 112, although any additional or alternative components, sub-components, sub-services, and entities may be included in the data processing environment 100. In some examples, entity A 102, entity B 104, and entity C 106 may each be or include a controller of one or more computing devices, an organization that controls one or more computing devices, etc. One or more computing devices may be or include one or more computing resources available for distribution. For example, entity A 102 may control a first set of computing resources, entity B 104 may control a second set of computing resources, and / or entity C 106 may control a third set of computing resources, and entity A 102, entity B 104, and / or entity C 106 may each make their respective sets of computing resources or any subset thereof independently available for distribution.
[0022] Making computing resources available for distribution may include generating computing resource metadata, sending the computing resource metadata to the computing system 110, etc. For example, entity A 102, entity B 104, and / or entity C 106 may generate computing resource metadata indicating the computing resources available for distribution and / or send the computing resource metadata to the computing system 110. The computing resource metadata can include the address of each available computing resource, the capabilities of each available computing resource, the identification information of the provider entity corresponding to each available computing resource, etc.
[0023] For example, entity A102 may make available for distributed use a first computing resource, such as a first computing device having first computing memory and processing capacity, and a second computing resource, such as a second computing device having second computing memory and processing capacity. A number of other computing resources (e.g., fewer than two or more than three) may be made available by entity A102 and / or any other entities. Entity A102 may generate or otherwise receive computing resource metadata that includes, or otherwise indicates, (i) the first address of the first computing resource and the first capacity associated with the first computing resource, and (ii) the second address of the second computing resource and the second capacity associated with the second computing resource. Furthermore, the computing resource metadata may indicate the controller or controlling entity (e.g., entity A102) of the first and second computing resources. Entity A102 may transmit the computing resource metadata to the computing system 110 to facilitate interaction for distributing the available first and second computing resources. Furthermore, entities B104, C106, and any other entities may generate and / or send compute resource metadata to the computing system 110 to facilitate interaction for distributing available distributed compute resources.
[0024] Computing system 110 can receive computing resource metadata from entities A102, B104, C106, and / or any other entities, and can determine a set of distributed computing resources available for distribution by parsing the computing resource metadata or by any other suitable technique. Computing system 110 may include a content planner 114, a digital twin module 116, a content server 118, a distributed computing module 120, and any other modules, services, etc. Furthermore, computing system 110 may receive one or more requests from entity D108, which may be a receiving entity such as a user of computing resources or an organization using computing resources. Entity D108 can generate a request to use computing resources, and entity D108 can send this request to computing system 110, for example, via a content planner 114, a content server 118, etc. This request may include a time frame in which entity D108 is requesting the use of computing resources, and may include the type and amount of computing resources requested by entity D108 during this time frame. In some examples, this request may be sent to computing system 110 and fulfilled by computing system 110 substantially simultaneously. In other examples, entity D108 may send the request to computing system 110 before receiving distributed computing resources from computing system 110.
[0025] The computing system 110 can use the digital twin module 116 to generate a digital twin based on entities A102, B104, C106, and D108, the types of interactions associated with the entities, and compute resource metadata received from the entities. The types of interactions may indicate use cases for compute resources, the entity type of entity D108, etc. In some examples, the computing system 110 can receive compute resource metadata, requests, and data about the associated entities, and the computing system 110 can run the digital twin module 116 to generate a digital twin. The digital twin may be generated to represent potential interactions that may take place between entity D108 and one or more of entities A102, B104, C106, and / or any other entities that can interact with entity D108. The digital twin may represent potential interactions of a particular type of interaction. In one particular example, if entity D108 is a healthcare provider requesting the use of computing resources to perform remote surgery, the computing system 110 may generate a digital twin to represent the potential interaction between the healthcare provider and a provider entity configured to interact with the healthcare provider.
[0026] The computing system 110 can use a digital twin to identify a specific computing resource from a set of computing resources, for example, via the content server 118 and / or the computing distribution module 120. The set of computing resources may include computing resources made available for distribution by entities A102, B104, C106, and any other suitable entities. The specific computing resource may be an optimized computing resource that can optimize the interaction between entity D108 and a provider entity such as one of entities A102, B104, or C106, or include such an optimized computing resource. The specific computing resource may satisfy the parameters of a request sent by entity D108. For example, if a request includes a request for one or more computing resources having at least 16 terabytes of hard storage and at least 1 terabyte per second of processing capacity, the computing system 110 may determine a specific computing resource having at least 16 terabytes of hard storage and at least 1 terabyte per second of processing capacity. In cases where multiple available computing resources have the same or similar computer memory, processing power, etc., the computing system 110 may use other parameters to determine a specific computing resource. These other parameters may include the latency associated with each computing resource, the physical or virtual location of the computing resource, and the amount of non-computing resources associated with each computing resource.
[0027] The computing system 110 can initiate or facilitate the initiation of a dialogue between a receiving entity, for example, entity D108, and a specific provider entity, for example, one of entities A102, B104, and / or C106. The specific provider entity is an entity that has made a specific computing resource identified by the computing system 110 available for distributed use, or may include such an entity. In response to determining a specific computing resource and a specific provider entity, the computing system 110 can initiate or facilitate the initiation of a dialogue between the receiving entity and the specific provider entity. The dialogue may include the receiving entity, such as entity D108, providing a non-computation resource, such as cryptocurrency, fiat currency, or other tangible resources, via the blockchain 112 or any other suitable computing network capable of transferring non-computation resources. In response to the receiving entity providing the non-computation resource, the computing system 110 can trigger the transfer of the specific computing resource from the specific provider entity to the receiving entity, for example, via the distributed computing module 120. Transferring specific computing resources may include a specific provider entity allowing a receiving entity to use those specific computing resources, for example, exclusively or at least partially exclusively. Furthermore, blockchain 112 may provide non-computing resources to a specific provider entity in response to a computing system 110 causing the transfer of specific computing resources from a specific provider entity to a receiving entity.
[0028] An example of a process for using digital twins to distribute distributed computing resources. Figure 2 is a flowchart of a process 200 for using a digital twin to distribute distributed computing resources according to one embodiment. Process 200 may be performed at least in part by any of the components described in the figures herein, for example by any component of the data processing environment 100, or by the data processing environment 100 itself. Process 200 can be initiated in block 210 when the computing system 110 receives computing resource metadata from one or more provider entities, such as entity A102, entity B104, and entity C106, for example, via the content planner 114 or any other component or service of the computing system 110. The computing resource metadata may indicate a set of distributed computing resources available for distribution. In some examples, the computing resource metadata may include data or metadata indicating the address of each distributed computing resource in the set of distributed computing resources, the capacity of each distributed computing resource in the set of distributed computing resources, identification information of the provider entity corresponding to each distributed computing resource in the set of distributed computing resources, and any other data or metadata about the set of distributed computing resources.
[0029] In block 220, the computing system 110 receives a request from a receiving entity, such as entity D108 or any other entity that can use distributed computing resources. The receiving entity may generate and send a request to the computing system 110, for example, through a content planner 114, a content server 118, or any other component or service of the computing system 110, and the request may include a request to use one or more computing resources. In some examples, the request may include parameters for one or more computing resources, such as minimum computer memory availability, minimum computer processing power availability, maximum latency, a specific geographical location or region, etc. Furthermore, or alternatively, the request may include a time frame in which the receiving entity is requesting to use or access one or more computing resources. In some examples, the request may include the receiving entity requesting the computing resources substantially simultaneously with respect to sending the request.
[0030] In block 230, computing system 110 generates a digital twin which can be used to represent a specific computing resource of a set of distributed computing resources. Computing system 110 can generate a digital twin using digital twin module 116. The digital twin may be generated based on various data and metadata related to the receiving entity, potential provider entities that can interact with the receiving entity, the type of interaction associated with a request sent by the receiving entity, and other appropriate data or metadata which can be used to generate the digital twin. Computing system 110 can determine the type of potential interaction associated with the receiving entity and generate a digital twin based on the type of potential interaction. For example, computing system 110 may generate a digital twin specific to the determined type of interaction. Examples of types of interaction may include interactions for medical applications, interactions for military or defense applications, and interactions for entertainment applications. Furthermore, or alternatively, each potential interaction represented by the digital twin may be characterized by a type of interaction.
[0031] In some examples, the digital twin may represent a specific computing resource of a set of distributed computing resources. Computing system 110 may use the digital twin to identify a specific computing resource that is or may contain an optimized computing resource of a set of distributed computing resources. The specific computing resource may satisfy the parameters of the request and may include optimized non-computing resources, such as maximum or minimum amounts. In a particular example, the specific computing resource may satisfy the parameters of the request by providing at least the requested bandwidth (e.g., computer memory and computer processing power) and by minimizing the latency associated with using the specific computing resource. In another example, the specific computing resource may be identified by computing system 110 in response to determining that the specific computing resource satisfies the parameters of the request and is associated with a minimum amount of non-computing resources to initiate interaction for using the specific computing resource.
[0032] In block 240, the computing system 110 uses a digital twin to initiate interaction between a specific provider entity and a receiving entity associated with a specific computing resource. The computing system 110 may, for example, via the distributed computing module 120, initiate interaction between the receiving entity and the specific provider entity to allocate a specific computing resource from the specific provider entity to the receiving entity based on the identification of the specific computing resource. Allocating a specific computing resource may include permitting the receiving entity to use the specific computing resource. In some examples, allocating a specific computing resource to the receiving entity may include generating a unique key that can be used to access and use the specific computing resource. In this example, the computing system 110 may provide (e.g., send) the unique key to the receiving entity to permit the receiving entity to use the specific computing resource.
[0033] In some examples, the interaction may include the transfer of non-computational resources over a computing network separate from the computing system 110. The computing network may be a blockchain, such as blockchain 112, or may include a blockchain, to improve the security of the interaction, but a non-blockchain computing network may also be used. In a particular example, the receiving entity may send a predetermined amount of non-computational resources to the blockchain when the computing system 110 initiates or facilitates the initiation of an interaction, and the computing system 110 may provide specific computing resources for the receiving entity to use. Furthermore, a particular provider entity may receive non-computational resources from the blockchain, for example, when providing specific computing resources to the receiving entity.
[0034] Example data flow for using digital twins to distribute distributed computing resources Figure 3 is an exemplary data flow diagram 300 for using a digital twin 302 to distribute distributed computing resources according to one embodiment. As shown in the figure, the data flow diagram 300 may include entities A102, B104, C106, D108, blockchain 112, one or more components or services of computing system 110, and any other computing devices, programs, services, etc., encoded on them to facilitate the distribution of distributed computing resources. Provider entities such as entities A102, B104, and C106 can make a set of distributed computing resources available, generate computing resource metadata, and / or transmit it to the digital twin module 116. The computing resource metadata may not only indicate a set of distributed computing resources available for distribution, but may also indicate the capabilities, location, control entity, etc., of each computing resource included in the set of distributed computing resources.
[0035] The digital twin module 116 can receive computing resource metadata and may communicate with the content planner 114, the content server 118, and / or any other components, services, etc. of the computing system 110. For example, the digital twin module 116 may receive data about a request received by the content planner 114 from entity D108 or any other receiving entity. This request may indicate that the receiving entity is requesting the use of one or more computing resources within a predetermined time frame, which may be immediately after the request or at a future time. This request may further include data and metadata about the receiving entity, which may include the entity type of the receiving entity, the type of request, and the type and amount of computing resources requested. In some examples, this request may include resource metadata 312 and content metadata 314, which may indicate the type and amount of computing resources requested, and the type of potential interaction requested by the receiving entity, respectively.
[0036] The digital twin module 116 can generate a digital twin 302 using requests, compute resource metadata, and other data and / or metadata. For example, the digital twin module 116 can generate a digital twin using data characterizing a receiving entity, data characterizing one or more of the provider entities associated with compute resource metadata, data about potential interactions between the receiving entity and one or more of the provider entities, data about the type of entity or type of interaction associated with the receiving entity, and data about non-computational resources used to facilitate one or more potential interactions between the receiving entity and one or more of the provider entities. Furthermore, the digital twin module 116 can generate a digital twin 302 using usage statistics 303 that can show usage occurring or expected to occur on the compute network (e.g., blockchain 112) over a predetermined period. The digital twin module 116 can also generate a digital twin 302 based on the type of potential interaction between the receiving entity and one or more of the provider entities. In a specific example, if the digital twin module 116 determines that the type of potential interaction involves distributing distributed computing resources for a military or defense application, the digital twin module 116 can generate a digital twin 302 to represent one or more potential interactions involving a military or defense application between one or more receiving entities and provider entities.
[0037] Furthermore, or alternatively, the digital twin module 116 can leverage context targeting 304 to generate the digital twin 302, or otherwise facilitate interactions based on requests from the receiving entity. For example, the digital twin module 116 may receive measurement reports, performance reports, etc., with respect to interactions involving the receiving entity and / or one or more provider entities across multiple platforms, multiple types of interactions, etc. In some examples, the digital twin module 116 may use techniques related to cross-platform context targeting as described in U.S. Patent Application No. 18 / 158,221.
[0038] The digital twin 302 may be used to initiate or facilitate the initiation of an interaction between a receiving entity and a specific provider entity of one or more provider entities. For example, the digital twin 302 may indicate a specific computing resource associated with a specific provider entity. Identifying a specific computing resource may include allowing the content server 118, or other components or services of the computing system 110, to use the digital twin 302 to determine a specific computing resource. In some examples, the content server 118, or optionally the compute distribution module 120, may use the digital twin 302 or any potential interaction represented therein to identify a specific computing resource. The specific computing resource may satisfy parameters defined by a request from the receiving entity, or otherwise optimize or improve the interaction between the receiving entity and the specific provider entity. Optimizing the interaction may include minimizing latency associated with the receiving entity using the specific computing resource, maximizing bandwidth made available to the receiving entity using the specific computing resource, minimizing the amount of non-computational resources associated with the interaction, or other instructions for optimization.
[0039] The content server 118 may, for example, select specific computing resources and send those specific computing resources to the receiving entity in response to the receiving entity sending a predetermined amount of non-computing resources via the blockchain 112 or other appropriate computing network. In some examples, the predetermined amount of non-computing resources can be determined by (or by using) the digital twin 302, and entity D108, or any other receiving entity, can initiate or continue an interaction by sending the predetermined amount of non-computing resources to the blockchain 112. Furthermore, in response to the receiving entity sending a predetermined amount of non-computing resources via the blockchain 112, or in response to receiving an instruction that the receiving entity agrees to interact, the content server 118 may send specific computing resources from a specific provider entity to the receiving entity. In some examples, sending specific computing resources may include allowing the receiving entity to access those computing resources, for example, remotely. In a specific example, the content server 118, or possibly the distributed computing module 120, can generate a unique access key that can be used to access a particular computing resource, and can send this unique access key to a receiving entity.
[0040] Figure 4 is another exemplary data flow diagram 400 for using a digital twin 302 to distribute distributed computing resources according to one embodiment. As shown in the figure, the data flow diagram 400 may include receiving a request to access one or more distributed computing resources. This request may be a module or service provided by the computing system 110, or may be received via a computing resource requester 402 that can include such a module or service. For example, the computing system 110 may generate and provide a user interface including the computing resource requester 402 to a receiving entity, which can interact with this user interface to generate a request and send it to the computing system 110. The receiving entity can use the computing resource requester 402 to generate and send a request to use one or more computing resources.
[0041] A receiving entity can generate a request via the compute resource requester 402 by generating and / or sending resource metadata (e.g., resource metadata 312) and / or content metadata (e.g., content metadata 314) via the compute resource requester 402. The resource metadata and / or content metadata may indicate the type and amount of compute resources requested to be used by the receiving entity, the type and / or number of interactions requested to be initiated by the receiving entity, and so on. In response to generating the content metadata and / or resource metadata and / or sending it to, for example, the computing system 110, a compute resource request 404 may be generated, indicating the type and amount of compute resources requested to be used by the receiving entity, the type and / or number of interactions requested to be initiated by the receiving entity, and so on.
[0042] A computing system 110, or any component, module, or service thereof, can receive a compute resource request 404 and may extend the compute resource request 404 with metadata 406, usage statistics 408, and any other data that may be used to generate a digital twin 302. The metadata 406 may include instructions such as the amount or range of non-computational resources to initiate one or more potential interactions between one or more provider entities, the amount or range of non-computational resources for the recipient entity to interact with, the amount of compute resources available for distribution, and the amount of compute resources requested to be used. The usage statistics 408 may include instructions such as the load on the current computing network (e.g., blockchain 112), or the expected load on the computing network at a future time or time range, or the load on computing system 110. The compute resource request 404, along with the metadata 406 and usage statistics 408, may be sent to the digital twin module 116.
[0043] The digital twin module 116 can receive a compute resource request 404, metadata 406, usage statistics 408, and any other data and / or metadata that may be used to generate the digital twin 302. The digital twin module 116 can use the compute resource request 404, metadata 406, and / or usage statistics 408 to generate the digital twin 302, which is or may contain a representation of one or more potential interactions between a receiving entity and one or more provider entities. In some examples, the digital twin 302 may represent one or more potential interactions characterized by a common interaction type. The interaction type may indicate a use case, application, or other classification associated with each potential interaction. For example, the interaction type classification may include medical applications, military or defense applications, entertainment applications, etc.
[0044] In some examples, the digital twin 302 may be a data object that includes, or contains, computer executable code, stored data, etc. Some examples of stored data associated with the digital twin 302 may include the type of dialogue associated with the request, CPU load requests, GPU load requests, the maximum amount of non-computational resources associated with other dialogues characterized by the dialogue type, the minimum amount of non-computational resources associated with other dialogues characterized by the dialogue type, the requested dialogue, and data and / or metadata about the requested dialogue (e.g., the requested time frame, entities associated with the dialogue, etc.). Additional examples of stored data associated with the digital twin 302 include the types of non-computational resources provided or used by the receiving entity, the time frame associated with the computed resource request 404, the minimum or maximum amount of non-computational resources provided or used by the receiving entity to initiate the interaction, the types of non-computational resources received or used by one or more (or each) of the provider entities, the minimum or maximum amount of non-computational resources received or used by one or more (or each) of the provider entities to initiate the interaction, and the location of one or more (or each) of the provider entities.
[0045] Furthermore, the digital twin module 116 or the digital twin 302 may include computer-executable code for managing the digital twin 302, generating the digital twin 302, maintaining the digital twin 302, and adjusting the digital twin 302. For example, the digital twin module 116 may include computer-executable instructions for defining or generating a data object that is or contains the digital twin 302. The digital twin module 116 may execute computer-executable instructions for defining or generating a data object in response to receiving a computing resource request 404, for example. In some examples, the digital twin module 116 may include a first set of computer-executable instructions for defining a data object, as well as a second set of computer-executable instructions for generating the digital twin 302 using the data object based on the computing resource request 404, metadata 406, usage statistics 408, and any other data. The digital twin module 116 and / or the digital twin 302 may include computer executable instructions for (i) storing the digital twin 302 in a specific storage location, database, etc., (ii) retrieving the digital twin 302 later, for example, and (iii) adjusting the digital twin 302 in response to receiving updated computing resource requests, updated metadata, etc.
[0046] In some examples, the digital twin 302 may already be generated and / or exist at the time the compute resource request 404 is sent. In these examples, the digital twin module 116 can, in response to receiving the compute resource request 404, retrieve the existing digital twin and adjust it to generate the digital twin 302. To retrieve the existing digital twin, the digital twin module 116 may generate and / or submit queries, nested queries, etc., to the data store. Adjusting the existing digital twin may include updating the data stored in the existing digital twin based on the compute resource request 404, metadata 406, and / or usage statistics 408. The digital twin module 116 may otherwise adjust the existing digital twin to generate the digital twin 302.
[0047] In response to generating a digital twin 302, adjusting the digital twin 302, etc., the computing system 110 may use the digital twin 302 to identify specific computing resources and initiate a dialogue between a receiving entity and a specific provider entity corresponding to a specific computing resource. In some examples, the dialogue may include identifying two or more specific computing resources and initiating a dialogue between two or more specific provider entities corresponding to two or more specific computing resources. The dialogue may be initiated by a computing resource distribution 410, which may include the computing system 110 running, for example, a computing distribution module 120. In response to initiating a dialogue and / or facilitating the initiation of a dialogue, the computing resource distribution 410 may allocate specific computing resources to the receiving entity.
[0048] The compute resource distribution 410 may allocate specific compute resources from a specific provider entity to a receiving entity. For example, the compute resource distribution 410 may provide the receiving entity with secure access to the specific compute resources (e.g., access via a unique key, access via a virtual network, etc.). In some examples, the secure access provided to the receiving entity may be time-limited, for example, to a requested time frame indicated by the compute resource request 404. After the time frame expires, the compute resource distribution 410 may revoke the secure access to the specific compute resources, and the receiving entity may be prompted to submit a subsequent compute resource request with updated parameters in order to continue access to the specific compute resources.
[0049] Exemplary System Figure 5 shows a simplified diagram of a distributed system 500 for implementing one of the embodiments. In the embodiment shown, the distributed system 500 includes one or more client computing devices 502, 504, 506, and 508, which are configured to run and operate client applications such as web browsers and their own clients (e.g., Oracle Forms) over one or more networks 510. A server 512 may be coupled to the remote client computing devices 502, 504, 506, and 508 via the network 510 in a communicative manner.
[0050] In various embodiments, the server 512 may be adapted to run one or more services or software applications provided by one or more components of the system. In some embodiments, these services may be provided as web-based services or cloud services, or according to a Software as a Service (SaaS) model to users of client computing devices 502, 504, 506, and / or 508. Users operating client computing devices 502, 504, 506, and / or 508 may then interact with the server 512 using one or more client applications and utilize the services provided by these components.
[0051] In the configuration shown in the figure, the software components 518, 520, and 522 of the distributed system 500 are shown to be implemented on server 512. In other embodiments, one or more of the components of the distributed system 500 and / or the services provided by these components may also be implemented by one or more of the client computing devices 502, 504, 506, and / or 508. A user operating a client computing device may then use one or more client applications to access the services provided by these components. These components may be implemented in hardware, firmware, software, or a combination thereof. It should be understood that various different system configurations are possible that may differ from the distributed system 500. Therefore, the embodiment shown in the figure is one example of a distributed system for implementing the system of the embodiment and is not intended to limit it.
[0052] Client computing devices 502, 504, 506, and / or 508 may be portable handheld devices (e.g., iPhone®, mobile phones, iPad®, computing tablets, personal digital assistants (PDAs)) or wearable devices (e.g., Google Glass® head-mounted displays) with the Internet, email, short message service (SMS), Blackberry®, or other communication protocols enabled, running software such as Microsoft Windows Mobile® and / or various mobile operating systems such as iOS, Windows Phone, Android, BlackBerry 10, and Palm OS. Client computing devices may be general-purpose personal computers, including, for example, personal computers and / or laptop computers running various versions of the Microsoft Windows®, Apple Macintosh®, and / or Linux® operating systems. In some embodiments, client computing devices may be dedicated computers that are programmed to perform defined functions via embedded systems or the like, or otherwise designed, to perform defined functions independently of other tasks. Client computing devices can be workstation computers running any of the various commercially available UNIX® or UNIX-like operating systems, including, but not limited to, a variety of GNU / Linux operating systems such as Google Chrome OS.Alternatively or additionally, client computing devices 502, 504, 506, and 508 may be any other electronic devices that can communicate over network 510, such as thin client computers, internet-enabled gaming systems (e.g., Microsoft Xbox game consoles with or without Kinect® gesture input devices), and / or personal messaging devices.
[0053] The distributed system 500 is shown with four client computing devices, but any number of client computing devices may be supported. Other devices, such as devices with sensors, may interact with the server 512.
[0054] Network 510 in the distributed system 500 may be any type of network well known to those skilled in the art that can support data communication using any of a variety of commercially available protocols, including but not limited to TCP / IP (transmission control protocol / Internet protocol), SNA (systems network architecture), IPX (Internet packet exchange), AppleTalk, etc. For example, network 510 could be a local area network (LAN), such as a local area network (LAN) based on Ethernet®, Token Ring, and / or similar. Network 510 could also be a wide area network or the Internet. Network 510 may include virtual networks, including but not limited to virtual private networks (VPNs), intranets, extranets, public switched telephone networks (PSTNs), infrared networks, wireless networks (for example, networks operating according to any of the IEEE 802.11 protocols, Bluetooth®, and / or any other wireless protocols), and / or any combination of these and / or other networks.
[0055] Server 512 may consist of one or more general-purpose computers, dedicated computers, specialized server computers (including, for example, PC (personal computer) servers, UNIX® servers, medium-sized servers, mainframe computers, rack-mount servers, etc.), server farms, server clusters, or any other suitable arrangement and / or combination. In various embodiments, Server 512 may be adapted to run one or more services or software applications described in the foregoing disclosure. For example, Server 512 may correspond to a server for performing the processing described above according to one embodiment of the present disclosure.
[0056] Server 512 may run any commercially available server operating system in addition to an operating system that includes one of the aforementioned operating systems. Server 512 may also run any of a variety of additional server applications and / or mid-tier applications, including HTTP (hypertext transport protocol) servers, FTP (file transfer protocol) servers, CGI (common gateway interface) servers, JAVA® servers, database servers, etc. Examples of database servers include, but are not limited to, commercially available database servers from Oracle, Microsoft, Sybase, IBM (International Business Machines), etc.
[0057] In some implementations, server 512 may include one or more applications for analyzing and integrating data feeds and / or event updates received from users of client computing devices 502, 504, 506, and 508. Examples of data feeds and / or event updates may include, but are not limited to, real-time updates received from one or more third-party sources and continuous data streams, including Twitter® feeds, Facebook® updates, or real-time events related to sensor data applications, financial tickers, network performance measurement tools (e.g., network monitoring and traffic management applications), clickstream analysis tools, and automotive traffic monitoring. Server 512 may also include one or more applications for displaying data feeds and / or real-time events via one or more display devices of client computing devices 502, 504, 506, and 508.
[0058] The distributed system 500 may also include one or more databases 514 and 516. Databases 514 and 516 may reside in various locations. For example, one or more of databases 514 and 516 may reside on a non-temporary storage medium local to (and / or residing on) server 512. Alternatively, databases 514 and 516 may be remote from server 512 and communicate with server 512 via a network-based connection or a dedicated connection. In some embodiments, databases 514 and 516 may reside on a storage area network (SAN). Similarly, any files necessary to perform functions originating from server 512 may be stored locally on and / or remotely on server 512. In some embodiments, databases 514 and 516 may include relational databases, such as Oracle-provided databases, adapted to store, update, and retrieve data in response to SQL-formatted commands.
[0059] Figure 6 is a simplified block diagram of one or more components of a system environment 600 according to one embodiment of the present disclosure, in which services provided by one or more components of the system of the embodiment may be provided as cloud services. In the embodiment shown, the system environment 600 includes one or more client computing devices 604, 606, and 608 that can be used by a user to interact with a cloud infrastructure system 602 that provides cloud services. The client computing devices may be configured to operate a client application, such as a web browser, a proprietary client application (e.g., Oracle Forms), or any other application that can be used by a user of the client computing device to interact with the cloud infrastructure system 602 and use services provided by the cloud infrastructure system 602.
[0060] It should be understood that the cloud infrastructure system 602 shown in the figure may include components other than those shown. Furthermore, the embodiment shown in the figure is merely one example of a cloud infrastructure system that may incorporate embodiments of the present invention. In some other embodiments, the cloud infrastructure system 602 may include more or fewer components than those shown in the figure, may combine two or more components, or may have different configurations or arrangements of components.
[0061] Client computing devices 604, 606, and 608 may be similar to the devices described above with respect to 502, 504, 506, and 508.
[0062] System environment 600 is shown with three client computing devices, but any number of client computing devices may be supported. Other devices, such as devices with sensors, may interact with the cloud infrastructure system 602.
[0063] Network 610 may facilitate the communication and exchange of data between clients 604, 606, and 608 and the cloud infrastructure system 602. Each network may be any type of network well known to those skilled in the art, capable of supporting data communication using any of a variety of commercially available protocols, including the protocols described above with respect to network 610.
[0064] The cloud infrastructure system 602 may comprise one or more computers and / or servers, which may include the computers and / or servers described above with respect to server 512.
[0065] In one embodiment, the services provided by the cloud infrastructure system may include a host of services made available on demand by users of the cloud infrastructure system, such as online data storage and backup solutions, web-based email services, hosted office suites and document collaboration services, database processing, and managed technical support services. The services provided by the cloud infrastructure system may be scaled based on user needs. A specific instance of a service provided by the cloud infrastructure system is referred to herein as a “service instance.” Generally, any service made available to users from a cloud service provider’s system via a communication network such as the Internet is referred to as a “cloud service.” Typically, in a public cloud environment, the servers and systems that make up the cloud service provider’s system are different from the customer’s own on-premises servers and systems. For example, the cloud service provider’s system can host applications, and users can order and use applications on demand via a communication network such as the Internet.
[0066] In some examples, services in a computer network cloud infrastructure may include secure computer network access to storage, hosted databases, hosted web servers, software applications, or other services provided to users by the cloud vendor, or otherwise services as known in the art. For example, a service may include password-protected access to remote storage on the cloud over the internet. Another example is a service that may include a web service-based hosted relational database and scripting language middleware engine for private use by networked developers. Yet another example is a service that may include access to an email software application hosted on the cloud vendor's website.
[0067] In one embodiment, the cloud infrastructure system 602 may include the provision of a set of applications, middleware, and database services delivered to customers in a self-service, subscription-based, trusted, highly available, and secure manner. The provision of database services may include the provisioning and configuration of computing / storage resources for specific uses as needed, and the deprovisioning of resources when resources are not needed or are not expected to be needed within a given timeframe. An example of such a cloud infrastructure system is the Oracle Public Cloud provided by the Assignee.
[0068] In various embodiments, the cloud infrastructure system 602 may be adapted to automatically provision, manage, and track customer enrollment in services provided by the cloud infrastructure system 602. The cloud infrastructure system 602 may provide cloud services by various deployment models. For example, the services may be provided according to a public cloud model in which the cloud infrastructure system 602 is owned by an organization that sells cloud services (e.g., owned by Oracle), and the services are made available to the general public or various industrial enterprises. As another example, the services may be provided according to a private cloud model in which the cloud infrastructure system 602 is operated for only one organization, and the services can be provided to one or more entities within that organization. The cloud services may also be provided according to a community cloud model in which the cloud infrastructure system 602 and the services provided by the cloud infrastructure system 602 are shared by multiple organizations within a related community. The cloud services may also be provided according to a hybrid cloud model, which is a combination of two or more different models.
[0069] In some embodiments, the services provided by the cloud infrastructure system 602 may include one or more services provided according to the categories of SaaS (Software as a Service), PaaS (Platform as a Service), IaaS (Infrastructure as a Service), or other categories of services including hybrid services. A customer may order one or more services provided by the cloud infrastructure system 602 by placing a subscription order. The cloud infrastructure system 602 then performs processing to provide the services in response to the customer's subscription order.
[0070] In some embodiments, the services provided by the cloud infrastructure system 602 may include, but are not limited to, application services, platform services, and infrastructure services. In some examples, application services may be provided by the cloud infrastructure system via a SaaS platform. The SaaS platform may be configured to provide cloud services that fall under the SaaS category. For example, the SaaS platform may provide the ability to build and deliver a set of on-demand applications on an integrated development and deployment platform. The SaaS platform may manage and control the underlying software and infrastructure for providing the SaaS services. By using the services provided by the SaaS platform, customers can utilize applications that run on the cloud infrastructure system. Customers can obtain application services without having to purchase separate licenses and support. A variety of different SaaS services may be provided. Examples include, but are not limited to, sales performance management, services that provide solutions for enterprise integration, and customizable services that authenticate users and can adapt to the diverse needs of diverse organizations.
[0071] In some embodiments, platform services may be provided by a cloud infrastructure system via a PaaS platform. The PaaS platform may be configured to provide cloud services that fall under the PaaS category. Examples of platform services may include, but are not limited to, services that enable an organization (such as Oracle) to integrate existing applications into a shared common architecture, and the ability to build new applications that leverage the shared services provided by the platform. The PaaS platform may manage and control the underlying software and infrastructure for providing the PaaS services. Customers can obtain PaaS services provided by the cloud infrastructure system without being required to purchase separate licenses and support. Examples of platform services include, but are not limited to, Oracle Java Cloud Service (JCS) and Oracle Database Cloud Service (DBCS).
[0072] By utilizing the services provided by the PaaS platform, customers can also control the deployed services by employing programming languages and tools supported by the cloud infrastructure system. In some embodiments, the platform services provided by the cloud infrastructure system may include database cloud services, middleware cloud services (e.g., Oracle Fusion Middleware services), and Java cloud services. In one embodiment, the database cloud service may support a shared services deployment model that enables an organization to pool database resources and provide Database as a Service to customers in the form of a database cloud. The middleware cloud service may provide a platform for customers to develop and deploy various cloud applications, and the Java cloud service may provide a platform for customers to deploy Java applications to the cloud infrastructure system.
[0073] In a cloud infrastructure system, IaaS platforms may provide a variety of different infrastructure services. These infrastructure services facilitate the management and control of underlying computing resources, such as storage, networking, and other basic computing resources, for customers using services provided by SaaS and PaaS platforms.
[0074] In one embodiment, the cloud infrastructure system 602 may also include infrastructure resources 630 for providing resources used to deliver various services to customers of the cloud infrastructure system. In one embodiment, the infrastructure resources 630 may include a pre-integrated and optimized combination of hardware, such as servers, storage, and networking resources, for running services provided by the PaaS platform and SaaS platform.
[0075] In some embodiments, resources in the cloud infrastructure system 602 may be shared by multiple users, and resources may be reallocated on request. Furthermore, resources may be allocated to users in different time zones. For example, the cloud infrastructure system 630 may make resources in the cloud infrastructure system available to a first set of users in a first time zone for a specified number of hours, and then allow the reallocation of the same resources to another set of users located in a different time zone, thereby maximizing resource utilization.
[0076] In one embodiment, there may be a number of internal shared services 632 that are shared by different components or modules of the cloud infrastructure system 602 and by services provided by the cloud infrastructure system 602. These internal shared services may include, but are not limited to, security and identity services, integration services, enterprise repository services, enterprise manager services, virus scanning and whitelisting services, high availability, backup and recovery services, services to enable cloud support, email services, notification services, and file transfer services.
[0077] In one embodiment, the cloud infrastructure system 602 may provide comprehensive management of cloud services (e.g., SaaS, PaaS, and IaaS services) within the cloud infrastructure system. In one embodiment, the cloud management functionality may include functions for provisioning, managing, and tracking customer enrollments received by the cloud infrastructure system 602.
[0078] In one embodiment, as shown in the figure, the cloud management functionality may be provided by one or more modules, such as an order management module 620, an order adjustment module 622, an order provisioning module 624, an order management and monitoring module 626, and an identity management module 628. These modules may include, or be provided using, one or more computers and / or servers, which may be general-purpose computers, dedicated computers, specialized server computers, server farms, server clusters, or any other suitable arrangement and / or combination.
[0079] In operation 634, a customer using a client device such as client device 604, 606, or 608 may interact with the cloud infrastructure system 602 by requesting one or more services provided by the cloud infrastructure system 602 and ordering a subscription to one or more services provided by the cloud infrastructure system 602. In one embodiment, the customer may access a cloud user interface (UI) (cloud UI 612, cloud UI 614, and / or cloud UI 616) and order a subscription through these UIs. In response to the customer's order, the order information received by the cloud infrastructure system 602 may include information identifying the customer and one or more services provided by the cloud infrastructure system 602 that the customer intends to subscribe to.
[0080] After an order is placed by a customer, the order information is received via the cloud UI 612, 614, and / or 616.
[0081] In operation 636, the order is stored in the order database 618. The order database 618 is operated by the cloud infrastructure system 618 and may be one of several databases operated together with other system elements.
[0082] In operation 638, the order information is transferred to the order management module 620. In some cases, the order management module 620 may be configured to perform order-related invoice sending and accounting functions, such as order verification and reservation of orders during verification.
[0083] In operation 640, information about the order is transmitted to the order adjustment module 622. The order adjustment module 622 may use the order information to coordinate the provisioning of services and resources related to the order placed by the customer. In some cases, the order adjustment module 622 may use the services of the order provisioning module 624 to coordinate the provisioning of resources to support the subscribed services.
[0084] In one embodiment, the order adjustment module 622 enables the management of processes associated with each order and applies logic to determine whether the order should proceed to provisioning. In operation 642, upon receiving a new enrollment order, the order adjustment module 622 sends a request to the order provisioning module 624 to allocate resources and constitute those resources required to fulfill the enrollment order. The order provisioning module 624 enables the allocation of resources for the services ordered by the customer. The order provisioning module 624 provides a level of abstraction between the cloud services provided by the cloud infrastructure system 600 and the physical implementation layer used to provision resources to provide the requested services. Thus, the order adjustment module 622 may be isolated from implementation details such as whether services and resources are actually provisioned in execution or pre-provisioned and simply allocated on demand.
[0085] In operation 644, after the services and resources have been provisioned, a notification of the services provided may be sent by the order provisioning module 624 of the cloud infrastructure system 602 to the customers on client devices 604, 606, and / or 608.
[0086] In operation 646, customer subscription orders may be managed and tracked by the order management and monitoring module 626. In some cases, the order management and monitoring module 626 may be configured to collect service usage statistics for subscription orders, such as the amount of storage used, the amount of data transferred, the number of users, and the amount of system uptime and system downtime.
[0087] In one embodiment, the cloud infrastructure system 600 may include an identity management module 628. The identity management module 628 may be configured to provide identity services, such as access management and authorization services in the cloud infrastructure system 600. In some embodiments, the identity management module 628 may control information about customers who wish to use services provided by the cloud infrastructure system 602. Such information may include information that authenticates the identity of such customers and information that represents the actions that those customers are permitted to perform on various system resources (e.g., files, directories, applications, communication ports, memory segments, etc.). The identity management module 628 may also include managing descriptive information about each customer and how, by whom, that descriptive information may be accessed and modified.
[0088] Figure 7 shows an exemplary computer system 700 in which various embodiments of the present invention may be implemented. System 700 may be used to implement any of the computer systems described above. As shown in the figure, computer system 700 includes a processing unit 704 that communicates with a number of peripheral subsystems via a bus subsystem 702. These peripheral subsystems may include a processing acceleration unit 706, an I / O subsystem 708, a storage subsystem 718, and a communication subsystem 724. The storage subsystem 718 includes a tangible computer-readable storage medium 722 and system memory 710.
[0089] The bus subsystem 702 provides a mechanism for various components and subsystems of the computer system 700 to communicate with each other as intended. Although the bus subsystem 702 is schematically shown as a single bus, alternative embodiments of the bus subsystem may utilize multiple buses. The bus subsystem 702 may be one of several types of bus structures, including a memory bus or memory controller, a peripheral bus, and a local bus using any of the various bus architectures. For example, such architectures may include the ISA (Industry Standard Architecture) bus, the MCA (Micro Channel Architecture) bus, the EISA (Enhanced ISA) bus, the VESA (Video Electronics Standards Association) local bus, and the PCI (Peripheral Component Interconnect) bus, which can be implemented as a mezzanine bus manufactured according to the IEEE P1386.1 standard.
[0090] A processing unit 704, which can be implemented as one or more integrated circuits (e.g., conventional microprocessors or microcontrollers), controls the operation of the computer system 700. One or more processors may be included in the processing unit 704. These processors may include single-core processors or multi-core processors. In one embodiment, the processing unit 704 may be implemented as one or more independent processing units 732 and / or 734, each containing a single-core processor or a multi-core processor. In another embodiment, the processing unit 704 may also be implemented as a quad-core processing unit formed by integrating two dual-core processors onto a single chip.
[0091] In various embodiments, the processing unit 704 can execute various programs depending on the program code and can maintain multiple programs or processes running simultaneously. At any given time, some or all of the program code to be executed may reside in the processor 704 and / or the storage subsystem 718. With appropriate programming, the processor 704 can provide the various functions described above. The computer system 700 may further include a processing acceleration unit 706 which may include a digital signal processor (DSP), a dedicated processor, and / or similar.
[0092] The I / O subsystem 708 may include user interface input devices and user interface output devices. User interface input devices may include pointing devices such as keyboards, mice or trackballs, touchpads or touchscreens integrated into displays, scroll wheels, click wheels, dials, buttons, switches, keypads, voice input devices with voice command recognition systems, microphones, and other types of input devices. User interface input devices may include motion detection devices and / or gesture recognition devices, such as Microsoft Kinect® motion sensors, which enable users to interact with information by controlling input devices such as Microsoft Xbox® 360 game controllers through a natural user interface using gestures and spoken commands. User interface input devices may also include eye gesture recognition devices, such as Google Glass® blink detectors, which detect the user's eye activity (e.g., blinking when taking a picture and / or selecting a menu) and translate eye gestures into input to an input device (e.g., Google Glass®). Furthermore, the user interface input device may include a voice recognition detection device that allows the user to interact with a voice recognition system (e.g., Siri® Navigator) via voice commands.
[0093] User interface input devices may include, but are not limited to, three-dimensional (3D) mice, joysticks or pointing sticks, gamepads, and graphic tablets, as well as audio / visual devices such as speakers, digital cameras, digital video cameras, portable media players, webcams, image scanners, fingerprint scanners, barcode readers, 3D scanners, 3D printers, laser rangefinders, and eye-tracking devices. Furthermore, user interface input devices may include medical imaging input devices such as computed tomography, magnetic resonance imaging, positional emission tomography, and medical ultrasound imaging devices. User interface input devices may also include audio input devices such as MIDI keyboards and digital musical instruments.
[0094] User interface output devices may include non-visual displays such as display subsystems, indicator lights, or audio output devices. Display subsystems may include flat panel devices such as flat panel devices using cathode ray tubes (CRTs), liquid crystal displays (LCDs), or plasma displays, projection devices, touchscreens, etc. Generally, the use of the term “output device” is intended to include all possible types of devices and mechanisms for outputting information from the computer system 700 to a user or another computer. For example, user interface output devices may include, but are not limited to, various display devices that visually convey text information, graphics information, and audio / video information, such as monitors, printers, speakers, headphones, car navigation systems, plotters, audio output devices, and modems.
[0095] The computer system 700 may include a storage subsystem 718 that contains software elements as currently located in the system memory 710. The system memory 710 may store program instructions that are readable and executable by the processing unit 704, as well as data generated during the execution of these programs.
[0096] Depending on the configuration and type of the computer system 700, the system memory 710 may be volatile (such as random-access memory (RAM)) and / or non-volatile (such as read-only memory (ROM) or flash memory). RAM typically contains data and / or program modules that are immediately accessible by the processing unit 704 and / or are currently being operated on and executed. In some implementations, the system memory 710 may contain several different types of memory, such as static random-access memory (SRAM) or dynamic random-access memory (DRAM). In some implementations, a basic input / output system (BIOS), which contains basic routines that help transfer information between elements within the computer system 700 during startup, etc., may typically be stored in ROM. As examples, not limitations, the system memory 710 also shows application programs 712, program data 714, and an operating system 716, which may include client applications, web browsers, mid-tier applications, relational database management systems (RDBMS), etc.Examples of operating systems 716 include Microsoft Windows®, Apple Macintosh®, and / or Linux operating systems, various commercially available UNIX® or UNIX-like operating systems (including, but not limited to, various GNU / Linux operating systems, Google Chrome® OS, etc.), and / or various versions of mobile operating systems such as iOS, Windows® Phone, Android® OS, BlackBerry® 10 OS, and Palm® OS.
[0097] The storage subsystem 718 may also provide a tangible computer-readable storage medium for storing basic programming and data configurations that provide the functionality of certain embodiments. Software (programs, code modules, instructions) that provides the aforementioned functionality when executed by the processor may be stored in the storage subsystem 718. These software modules or instructions may be executed by the processing unit 704. The storage subsystem 718 may also provide a repository for storing data used according to the present invention.
[0098] The storage subsystem 700 may also include a computer-readable storage medium reader 720 which may be further connected to the computer-readable storage medium 722. In combination with the system memory 710, together, optionally, the computer-readable storage medium 722 may comprehensively represent storage media for temporarily and / or more permanently containing, storing, transmitting, and retrieving computer-readable information, in addition to remote, local, fixed, and / or removable storage devices.
[0099] The computer-readable storage medium 722 containing code or a portion of code may also include any suitable medium known or used in the art, including, but not limited to, storage and communication media, such as volatile and non-volatile, removable and non-removable media, implemented in any way or technique for storing and / or transmitting information. The computer-readable storage medium 722 may include tangible computer-readable storage media such as RAM, ROM, electronically erasable programmable ROM (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile disk (DVD), or other optical storage, magnetic cassette, magnetic tape, magnetic disk storage, or other magnetic storage devices, or other tangible computer-readable media. The computer-readable storage medium 722 may also include intangible computer-readable media such as data signals, data transmissions, or any other media that can be used to transmit desired information and can be accessed by the computing system 700.
[0100] For example, the computer-readable storage medium 722 may include a hard disk drive that reads from or writes to a non-removable, non-volatile magnetic medium; a magnetic disk drive that reads from or writes to a removable, non-volatile magnetic disk; and an optical disk drive that reads from or writes to a removable, non-volatile optical disk such as a CD-ROM, DVD, or Blu-ray® disc, or other optical medium. The computer-readable storage medium 722 may also include, but is not limited to, a Zip® drive, a flash memory card, a Universal Serial Bus (USB) flash drive, a Secure Digital (SD) card, a DVD disc, a digital videotape, and the like. The computer-readable storage medium 722 may include solid-state drives (SSDs) based on non-volatile memory such as flash memory-based SSDs, enterprise flash drives, and semiconductor ROMs; SSDs based on volatile memory such as semiconductor RAM, dynamic RAM, static RAM, DRAM-based SSDs, and magnetoresistive RAM (MRAM) SSDs; and hybrid SSDs that use a combination of DRAM and flash memory-based SSDs. The disk drive and associated computer-readable medium may provide non-volatile storage for computer-readable instructions, data structures, program modules, and other data of the computer system 700.
[0101] The communication subsystem 724 provides interfaces to other computer systems and networks. It functions as an interface for receiving data from other systems and for transmitting data from computer system 700 to other systems. For example, the communication subsystem 724 may enable computer system 700 to connect to one or more devices via the Internet. In some embodiments, the communication subsystem 724 may include radio frequency (RF) transceiver components for accessing wireless voice and / or data networks (using, for example, cellular technology, 3G, 4G, or advanced data network technologies such as EDGE (enhanced data rates for global evolution), WiFi (IEEE 1202.11 group standard), or other mobile communication technologies, or any combination thereof), global positioning system (GPS) receiver components, and / or other components. In some embodiments, the communication subsystem 724 may provide wired network connectivity (e.g., Ethernet) in addition to, or instead of, wireless interfaces.
[0102] In some embodiments, the communication subsystem 724 may also receive input communications in the form of structured and / or unstructured data feeds 726, event streams 728, event updates 730, etc., on behalf of one or more users who may use the computer system 700.
[0103] For example, the communication subsystem 724 may be configured to receive data feeds 726 in real time from users of social networks and / or other communication services such as Twitter® feeds and Facebook® updates, web feeds such as Rich Site Summary (RSS) feeds, and / or real-time updates from one or more third-party sources.
[0104] Furthermore, the communication subsystem 724 may be configured to receive data in the form of a continuous data stream, which may include an event stream 728 and / or event update 730 of real-time events that are inherently continuous, without explicit ends, or without boundaries. Examples of applications that generate continuous data include, for example, sensor data applications, financial tickers, network performance measurement tools (e.g., network monitoring and traffic management applications), clickstream analysis tools, and automotive traffic monitoring.
[0105] The communication subsystem 724 may also be configured to output structured and / or unstructured data feeds 726, event streams 728, event updates 730, etc., to one or more databases that can communicate with one or more streaming data source computers coupled to the computer system 700.
[0106] Computer system 700 can be one of a variety of types, including handheld portable devices (e.g., iPhone® mobile phones, iPad® computing tablets, PDAs), wearable devices (e.g., Google Glass® head-mounted displays), PCs, workstations, mainframes, automated ticket machines, server racks, or any other data processing systems.
[0107] Due to the constantly changing nature of computers and networks, the description of the computer system 700 shown in the figure is intended to be merely an example. Many other configurations are possible, including more or fewer components than the system shown in the figure. For example, customized hardware may be used, and / or certain elements may be implemented in hardware, firmware, software (including applets), or a combination thereof. Furthermore, connections to other computing devices, such as network input / output devices, may be employed. Based on the disclosures and teachings provided herein, those skilled in the art will understand other methods and / or schemes for carrying out various embodiments.
[0108] Non-limiting examples of the technologies described herein In some examples, the digital twin 302 may be generated with respect to an auction. For example, the receiving entity may indicate a range of non-computational resources (e.g., cryptocurrency) that the receiving entity is willing to send to initiate an interaction to use one or more distributed computing resources. Furthermore, each provider entity in a set of provider entities may indicate, for example, via compute resource metadata, a range of non-computational resources that each provider entity is willing to receive for each computing resource. The computing system 110 can determine a subset of available distributed computing resources that satisfy the parameters of the request submitted by the receiving entity, and the computing system 110 can determine an optimized interaction to initiate based on the range of non-computational resources indicated by the receiving entity and the set of provider entities, for example, via the digital twin module 116, the content server 118, the compute distribution module 120, or any combination thereof.
[0109] In some cases, a digital twin 302 may be generated and used to initiate an interaction about one or more medical applications, such as a healthcare provider visit or surgery. Virtual reality applications may enable a fully immersive doctor visit by an internationally-level healthcare provider, without requiring the healthcare provider to be physically present in the region. The virtual reality environment can be available anywhere in the world, where patients can undergo annual health checkups or meet with brain oncologists in hard-to-reach locations. Virtual reality applications may require short network latency and significant computing power to take blood samples or receive results. Furthermore, or alternatively, augmented reality applications may enable an internationally-level surgeon to perform complex surgery remotely on a patient. In this example, the augmented reality application may have very high bandwidth, computing power, and very low latency. Virtual reality and augmented reality applications for medical interactions may use more computing resources than locally available, or more computing resources provided by the organization associated with the healthcare provider or surgeon. Healthcare providers, surgeons, organizations, or combinations thereof may generate and / or submit compute resource requests to access distributed computing resources used to enable virtual reality applications, augmented reality applications, and the like.
[0110] In some cases, for defense and / or military use cases, the ability to pool large amounts of computing resources with extremely low latency can be beneficial in various implementations of artificial intelligence, future state virtual reality, and augmented reality. Artificial intelligence applications with low latency can be used in a variety of defense and / or military use cases. In a particular example, an augmented reality application could be used by soldiers to run a real-time application within glasses that can be worn by the soldier, which can simulate movements on the battlefield and predict the outcome. Locally available computing resources may be limited or insufficient. For example, computing devices embedded in wearable technology may not provide sufficient computing power, computer memory, etc., to effectively run artificial intelligence applications, augmented reality applications, etc. Soldiers, or organizations associated with soldiers, may generate and / or send computing resource requests to access one or more distributed computing resources to facilitate the effective execution of artificial intelligence applications, augmented reality applications, etc.
[0111] In some cases, education can be improved through artificial intelligence applications, augmented reality applications, or virtual reality applications. For example, teachers can teach more students faster within an immersive classroom environment. Combinations of augmented reality and virtual reality applications to enable improvements in education may be characterized by on-demand capabilities with higher bandwidth and lower latency at larger scales. Immersive classroom environments can be extended to geographical locations where the cost of teachers to enable international levels would be prohibitive. Teachers, or any organization associated with a teacher, may generate and / or submit computing resource requests to access one or more distributed computing resources to facilitate an immersive classroom environment.
[0112] While aspects of the invention have been described in the foregoing specification with reference to specific embodiments herein, those skilled in the art will recognize that the invention is not limited thereto. The various features and aspects of the invention described herein may be used individually or in combination. Furthermore, embodiments may be used in any number of environments and applications beyond those described herein without departing from the broader idea and scope of this specification. Accordingly, this specification and the drawings should be considered illustrative rather than restrictive.
Claims
1. A method by which a computer performs an action. This includes a computing device receiving compute resource metadata that identifies a set of distributed compute resources, Each distributed computing resource within the set of distributed computing resources is configured to be assigned to another entity. Each distributed computing resource in the set of distributed computing resources is associated with a different provider entity among a plurality of provider entities, and the method is The computing device receives a request from the receiving entity to use one or more computing resources, The computing device further includes generating a digital twin that includes a data object storing data generated based on the request and at least on the request and the computing resource metadata, The digital twin facilitates the identification of a specific computing resource within the set of distributed computing resources, and the digital twin represents a plurality of potential interactions, including potential interactions between the receiving entity and each of the plurality of provider entities. The method further includes the computing device initiating an interaction between the receiving entity and a specific provider entity among the plurality of provider entities by using the digital twin, The interaction is a method performed by a computer, which includes allocating the specific computing resources from the specific provider entity to the receiving entity in response to the request.
2. The generation of the aforementioned digital twin is The computing device determines, based on the receiving entity, the type of potential interaction associated with the receiving entity, A method performed by a computer according to claim 1, comprising the computing device generating the digital twin specific to the type of potential interaction.
3. The method performed by the computer according to claim 2, wherein each of the plurality of potential dialogues is characterized by the type of potential dialogue of the digital twin.
4. The method performed by a computer according to any one of claims 1 to 3, wherein the computing resource metadata includes (i) the address of each distributed computing resource in the set of distributed computing resources, (ii) the capacity of each distributed computing resource in the set of distributed computing resources, and (iii) identification information of a provider entity among the plurality of provider entities corresponding to each distributed computing resource in the set of distributed computing resources.
5. To initiate the aforementioned dialogue, The computing device determines the amount of non-computing resources to be transferred before initiating the interaction by using the digital twin, A computer method according to any one of claims 1 to 4, wherein the computing device facilitates the transfer of the amount of non-computing resources from the receiving entity to the blockchain.
6. A method performed by a computer according to claim 5, wherein the specific computing resource is an optimized computing resource, and initiating the interaction includes the computing device allocating the optimized computing resource from the specific provider entity to the receiving entity in response to facilitating the transfer of the amount of non-computing resources from the receiving entity to the blockchain.
7. The generation of the aforementioned digital twin is The computing device determines, based on the receiving entity, the type of potential interaction associated with the receiving entity, The computing device accesses an existing digital twin specific to the type of potential interaction, A method performed by a computer according to any one of claims 1 to 6, comprising the computing device adjusting the existing digital twin based on the computing resource metadata and the request to generate the digital twin.
8. A non-temporary machine-readable storage medium containing a computer program product that includes instructions configured to cause a data processing device to perform an operation, wherein the operation is: This includes receiving compute resource metadata that identifies a set of distributed compute resources, Each distributed computing resource within the set of distributed computing resources is configured to be assigned to another entity. Each distributed computing resource in the set of distributed computing resources is associated with a different provider entity among multiple provider entities, and the operation is as follows: Receiving a request from the receiving entity to use one or more computing resources, The method further includes generating a digital twin that includes a data object storing data generated based on the request and the computing resource metadata, The digital twin facilitates the identification of a specific computing resource within the set of distributed computing resources, and the digital twin represents a plurality of potential interactions, including potential interactions between the receiving entity and each of the plurality of provider entities. The operation further includes initiating an interaction between the receiving entity and a specific provider entity among the plurality of provider entities by using the digital twin, The interaction includes allocating the specific computing resources from the specific provider entity to the receiving entity in response to the request, in a non-temporary machine-readable storage medium.
9. The operation to generate the aforementioned digital twin is: Based on the receiving entity, determine the type of potential interaction associated with the receiving entity. A non-temporary machine-readable storage medium according to claim 8, comprising generating the digital twin specific to the type of potential interaction.
10. The non-temporary machine-readable storage medium according to claim 9, wherein each of the plurality of potential dialogues is characterized by the type of the potential dialogue of the digital twin.
11. The non-temporary machine-readable storage medium according to any one of claims 8 to 10, wherein the computing resource metadata includes (i) the address of each distributed computing resource in the set of distributed computing resources, (ii) the capacity of each distributed computing resource in the set of distributed computing resources, and (iii) identification information of a provider entity among the plurality of provider entities corresponding to each distributed computing resource in the set of distributed computing resources.
12. The action of initiating the aforementioned dialogue is: By using the aforementioned digital twin, the amount of non-computing resources to be transferred before initiating the interaction is determined, A non-temporary machine-readable storage medium according to any one of claims 8 to 11, comprising facilitating the transfer of the amount of non-computing resources from the receiving entity to the blockchain.
13. The non-temporary machine-readable storage medium according to claim 12, wherein the particular computing resource is an optimized computing resource, and the action to initiate the interaction includes allocating the optimized computing resource from the particular provider entity to the receiving entity in response to facilitating the transfer of the amount of non-computing resources from the receiving entity to the blockchain.
14. The operation to generate the aforementioned digital twin is: Based on the receiving entity, determine the type of potential interaction associated with the receiving entity. Accessing existing digital twins specific to the aforementioned type of potential interaction, A non-temporary machine-readable storage medium according to any one of claims 8 to 13, comprising adjusting the existing digital twin based on the computing resource metadata and the request to generate the digital twin.
15. One or more data processors, A system comprising a non-temporary computer-readable storage medium containing instructions that cause the one or more data processors to perform an operation when executed on the one or more data processors, wherein the operation is This includes receiving compute resource metadata that identifies a set of distributed compute resources, Each distributed computing resource within the set of distributed computing resources is configured to be assigned to another entity. Each distributed computing resource in the set of distributed computing resources is associated with a different provider entity among multiple provider entities, and the operation is as follows: Receiving a request from the receiving entity to use one or more computing resources, The method further includes generating a digital twin that includes a data object storing data generated based on the request and the computing resource metadata, The digital twin facilitates the identification of a specific computing resource within the set of distributed computing resources, and the digital twin represents a plurality of potential interactions, including potential interactions between the receiving entity and each of the plurality of provider entities. The operation further includes initiating an interaction between the receiving entity and a specific provider entity among the plurality of provider entities by using the digital twin, The interaction includes, in response to the request, allocating the specific computing resources from the specific provider entity to the receiving entity.
16. The operation to generate the aforementioned digital twin is: Based on the receiving entity, determine the type of potential interaction associated with the receiving entity. The system according to claim 15, comprising generating a digital twin specific to the type of potential dialogue, wherein each of the plurality of potential dialogues is characterized by the type of potential dialogue in the digital twin.
17. The system according to claim 15 or 16, wherein the computing resource metadata includes (i) the address of each distributed computing resource in the set of distributed computing resources, (ii) the capacity of each distributed computing resource in the set of distributed computing resources, and (iii) identification information of a provider entity among the plurality of provider entities corresponding to each distributed computing resource in the set of distributed computing resources.
18. The action of initiating the aforementioned dialogue is: By using the aforementioned digital twin, the amount of non-computing resources to be transferred before initiating the interaction is determined, The system according to any one of claims 15 to 17, further comprising facilitating the transfer of the amount of non-computing resources from the receiving entity to the blockchain.
19. The system according to claim 18, wherein the specific computing resource is an optimized computing resource, and the action of initiating the interaction includes allocating the optimized computing resource from the specific provider entity to the receiving entity in response to facilitating the transfer of the amount of non-computing resources from the receiving entity to the blockchain.
20. The operation to generate the aforementioned digital twin is: Based on the receiving entity, determine the type of potential interaction associated with the receiving entity. Accessing existing digital twins specific to the aforementioned type of potential interaction, The system according to any one of claims 15 to 19, comprising adjusting the existing digital twin based on the computing resource metadata and the request to generate the digital twin.