DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
This office action is in response to applicant’s amendment filed on 03/02/2026.
Claims 1-5, 8, 10-14, 17, and 19-26 are pending and examined.
Claims 6-7, 9, 15-16, and 18 are cancelled.
Response to Arguments
Applicant's arguments filed 03/02/2026 with respect to 35 U.S.C. 112(f) have been fully considered and are persuasive. The claim interpretation for claim 1 has been withdrawn.
Applicant's arguments filed 03/02/2026 with respect to 35 U.S.C. 101 have been fully considered and are persuasive. The rejections for claims 10-20 have been withdrawn.
Applicant's arguments filed 03/02/2026 with respect to 35 U.S.C. 103 have been fully considered but they are not persuasive. Applicant argues that “the cited references, whether considered alone or in combination, fail to teach or suggest all the elements of amended independent claims 1, 10, and 20. For example, the cited references do not appear to teach or suggest at least, "wherein the competitive selection engine solicits bids under the cost from the subset of the geographically dispersed grid of nodes", selecting "a lowest cost one of the subset of the geographically dispersed grid of nodes", "consuming a test amount of vendable compute resources from the lowest cost one of the subset of the geographically dispersed grid of nodes", "deselect[ing] the selected one [...] prior to deploying the workload", and selecting "a next lowest cost one of the subset of the geographically dispersed grid of nodes" (emphasis added) as recited in amended independent claims 1, 10, and 20.” Examiner respectfully disagrees, see 35 U.S.C. 103 rejections below for a detailed analysis. Allen’s minimum burst operating spinning up the minimum number of nodes to complete the jobs to control budgeting would involve identifying nodes based on their capabilities, which include a cost, to minimize the cost parameter to be lower than the required cost budget and correlates to the competitive selection engine selecting a subset of the grid of nodes which are under the cost. The system receiving an updated polling for all resources and their capabilities to identify an optimal set of compute resources are matched to the job, where the job may include parameters for a cost that can be minimized using a minimum bursting operation, is therefore interpreted as the competitive selection engine soliciting bids under the cost from the subset of the grid of nodes. Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Bursell with Allen because associated requirements, dependencies, and triggers for jobs and workloads can be used in combination with various cloud configurations, architecture, platform, or characteristics to match particular jobs or workloads with resources .
Additionally, while Bursell in view of Allen may not disclose each and every limitation as currently amended, the additional reference of Schulze is interpreted to disclose the remaining limitations. For example, the cost impact being measured for a given work node provided by a cloud service broker operator correlates to a vendable compute resource. The measuring workload being used in a test deployment for a first candidate node to measure a metric for a computing resource correlates to metering one of the subset of the geographically dispersed grid of nodes by consuming a test amount of vendable compute resources from the one of the subset of the geographically dispersed grid of nodes. A node which is non-compliant for a compulsory execution requirement being prevented from selection as a given work node correlates to deselecting the selected one of the subset of the geographically dispersed grid of nodes prior to deploying the workload. In the case where a first candidate node was non-compliant of a compulsory execution requirement and a second candidate node was compliant, the second candidate node would be the next selected node and therefore corelates to selecting a next one of the subset of the geographically dispersed grid of nodes. Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Bursell with Schulze because preventing noncompliant work nodes for a particular compulsory condition from being considered as the executing node can reduce the resource consumption for the whole arbitration process. Additionally, measuring workloads can be dedicatedly generated for measuring a metric for a specific type of computing resource or be derived from the job workload in order to reflect the resource consumption conditions of the actual job workload.
Claim Objections
Claim 10 is objected to because of the following informalities: the limitation “executing the workload on the next lowest cost one node of subset of the geographically dispersed grid of nodes” appears to be missing the word “the” before “subset of the geographically dispersed grid of nodes”, as seen in similar claim 20’s “executing the workload on the next lowest cost one of the subset of the geographical dispersed grid of nodes.” Appropriate correction is required.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 1, 8, 10, 17, 20, and 25 are rejected under 35 U.S.C. 103 as being unpatentable over Bursell et al. (U.S. Patent No. US 20220103379 A1), hereinafter “Bursell” in view of Allen et al. (U.S. Patent No. US 11372689 B1), hereinafter “Allen” and Schulze et al. (U.S. Patent No. US 11144342 B2), hereinafter “Schulze.”
With regards to Claim 1, Bursell teaches:
A system comprising:
a confidential computing provider comprising a geographically dispersed grid of nodes implemented in a trusted execution environment (Fig. 1, paragraphs 21, 24 and 26, “Computing environment 100 may refer to cloud computing device (e.g., host machine, virtual machine, container), a distributed computing device (e.g., edge computing node), another computing device, or a combination thereof. In certain implementations, computing device 100 may include one or more computing devices at a single physical location (e.g., data center) or across multiple physical locations (e.g., different data centers). In one example, computing environment 100 may include infrastructure orchestration system 110, host systems 120A-B, and storage service 150… Computing environment 100 may further include one or more host computer systems 120A-120B, on which virtual machine instances 130A-130K may run. In some implementations, hosts 120A-B may be physical servers (e.g., physical machines), virtual servers (e.g., implementing a hypervisor and virtual machines, containers), or a combination thereof. One or more of the hosts may be absent virtualization technology and one or more of the hosts may provide one or more levels of virtualization. The levels of virtualization may include hardware level virtualization, operating system level virtualization, other virtualization, or a combination thereof… Each of the trusted execution environments 140A-B may include one or more trusted execution environment instances (e.g., TEE instances) … TCA 160 may securely provision workloads to TEE 140A-B. As shown in FIG. 1, trusted execution environments 140A-B may be provided by a respective host system that may guard data associated with a particular instance using one or more encrypted memory regions 145A-B.” The hosts providing multiple TEEs including one or more TEE instances correlates to nodes implemented in a trusted execution environment. The computing environment including a combination of computing devices or hosts across multiple physical locations correlates to a confidential computing provider comprising a geographically dispersed grid of nodes);
a plurality of compute consumers including a first compute consumer comprising a workload configured to run on a cloud computing environment (Paragraphs 27, 34 and 39, “Trusted client agent (TCA) 160 may be a trusted process running within computing environment 100. TCA may be trusted by one or more tenants of the computing environment and may be responsible for provisioning, remote management and monitoring of one or more workloads within one or more TEE. Additionally, one tenant of TEE 140A-B may be associated with one or more TCA, for example to configure security settings more or less stringently for each associated TCA. In an implementation, TCA 160 may act as a client with respect to hosts 120A-120B, and may communicate with TEE 140A-B via XML-RPC or any other suitable protocol…In an implementation, the software provisioning command may contain workload 222 for provisioning to encrypted memory 250 of TEE 230. The software provisioning command may be initiated by a tenant of TEE 230 and may be directed to orchestration system 220 for execution by a TCA residing in one of the hosts of a computing environment (e.g., a cloud computing environment) … In implementations, the TCA may be trusted to provision workloads by one or more tenants of the computing environment, as explained in more details herein.” The TCA provisioning workloads from one or more tenants correlates to a plurality of compute consumers. The workload from a specific tenant out of the one or more tenants of the computing environment being requested for provisioning on a host of the cloud computing environment correlates to a first compute customer comprising a workload configured to run on the cloud computing environment), and
an orchestration manager communicatively coupling the confidential computing provider with the plurality of compute consumers (Fig. 1 and 7, paragraph 60, “In various illustrative examples, apparatus 700 may be represented by computing environment 100 of FIG. 1. Apparatus 700 comprises a memory 740 and processing device operatively coupled to the memory 740 and executes code implementing workload deployment component 710, TCA administration module 720, and workload encryption/decryption module 730. Memory 740 may store certificates 742 representing cryptographic certificates associates with one or more tenants or trusted third parties, as determined by TCA administration module 720. Workload deployment component 710 may utilize provisioning policies 744 to determine whether or not to deploy workloads at a trusted execution environment that is deployed at apparatus 700… In an illustrative example, workload deployment component 710 may implement methods 200, 300, 400 and/or 600 of FIGS. 2, 3, 4, and 6.” The apparatus represented by the computing environment of Fig. 1 being operatively coupled to a workload deployment component that utilizes provisioning policies to determine whether or not to deploy tenant workloads at a trusted execution environment correlates to an orchestration manager being communicatively coupled to the confidential computing provider with the plurality of compute consumers),
Bursell does not explicitly teach:
a plurality of compute consumers including a first compute consumer comprising a Service Level Agreement (SLA), and a cost;
wherein the orchestration manager is configured to deploy the workload of the first compute consumer on at least one node of the confidential computing provider that satisfies at least the SLA and the cost.
wherein the orchestration manager comprises one or more computer-readable storage media collectively storing computer- executable program code configured to cause the orchestration manager to:
identify a subset of the geographically dispersed grid of nodes satisfying the SLA;
execute a competitive selection engine amongst the subset of the geographically dispersed grid of nodes and based on the cost, wherein the competitive selection engine solicits bids under the cost from the subset of the geographically dispersed grid of nodes;
select a lowest cost one of the subset of the geographically dispersed grid of nodes based on the competitive selection engine;
meter the lowest cost one of the subset of the geographically dispersed grid of nodes by consuming a test amount of vendable compute resources from the lowest cost one of the subset of the geographically dispersed grid of nodes;
determine that the lowest cost one of the subset of the geographically dispersed grid of nodes fails to satisfy the SLA based on the metering;
deselect the selected one of the subset of the geographically dispersed grid of nodes prior to deploying the workload; and
select a next lowest cost one of the subset of the geographically dispersed grid of nodes.
However, Allen teaches:
a plurality of compute consumers including a first compute consumer comprising a Service Level Agreement (SLA), and a cost (Col. 12, lines 20-23, Col. 18, lines 60-67, Col. 19, lines 1-8 and 30-36, “Multi-cloud bursting service 340A receives requests from clients 312, 314, 316 and 318. Clients 312, 314, 316 and 318 can be users or entities (e.g., cloud consumers) with processing needs, resource needs, overflow requests, etc. … The bursting parameters and triggers 402 can dictate whether the cloud bursting request 404 is for provisioning nodes or deprovisioning nodes. The parameters in the bursting parameters and triggers 402 can define specific attributes, requirements, and information used in provisioning or deprovisioning nodes in response to the cloud bursting request 404. For example, the bursting parameters and triggers 402 can include parameters for provisioning nodes from one or more clouds (202-210), such as a reservation period (e.g., day, month, quarter, year, etc.), a type and/or number of resources (e.g., nodes) that should be provisioned, cost requirements, SLA requirements, QoS requirements, performance requirements, security requirements, reliability requirements, environment requirements, preferences, priorities, a budget for bursting, policies, etc. … In some cases, the bursting parameters and triggers 402 can be defined in specific job or workload templates. Such job or workload templates can identify specific jobs or workloads, associated requirements, associated dependencies, associated triggers for bursting, associated instructions for bursting, and/or any other information pertinent to the jobs or workloads.” The multi-cloud bursting service receiving bursting requests with processing or resource needs correlates to a plurality of compute consumers including a first compute customer. The bursting parameters and triggers for a specific job or workload bursting request including cost requirements and SLA requirements correlates to a first compute consumer comprising a cost and SLA respectively);
wherein the orchestration manager is configured to deploy the workload of the first compute consumer on at least one node of the confidential computing provider that satisfies at least the SLA and the cost (Col. 19, lines 42-53 and 55-64 and Col. 20, lines 50-56, “The cloud bursting request 404 to multi-cloud bursting service 340A can specify any parameters and/or requirements for the associated job or workload, such as a job priority, an SLA, a QoS requirement, a cost threshold, a performance requirement, a security requirement, a processing parameter, a resource requirement (e.g., a number and/or type of resources required or desired), a reliability requirement, a deprovisioning mode, etc. The cloud bursting request 404 can identify the job or workload that needs processing and any provisioning or deprovisioning instructions… The multi-cloud bursting service 340A receives the cloud bursting request 404 and processes the request based on the information provided in the request. The multi-cloud bursting service 340A can use cloud agnostic template stacks 406 for image management and provisioning 410. The cloud agnostic template stacks 406 can define one or more stacks which can define the provisioning dependencies and task. A stack can include the base operating system (OS), services, libraries, applications, and/or data for the execution environment for the jobs or workloads… Based on the stack(s) associated with a job or workload corresponding to the cloud bursting request 404, the multi-cloud bursting service(s) (e.g., multi-cloud bursting service 340A and/or 340B) can provision 410 specific cloud nodes 412-420 from one or more of the clouds 202-210 and configure the execution environments and parameters for the job or workload to be processed by the provisioned nodes.” The multi-cloud bursting service processing the request based on associated requirements or parameters such as cost and SLA requirements to provision specific cloud nodes for the workload correlates to the orchestration manager deploying the workload of the first compute consumer on at least one node of the computing provider that satisfies at least the SLA and the cost),
wherein the orchestration manager further comprises one or more computer-readable storage media collectively storing computer-executable program code configured to cause the orchestration manager to:
identify a subset of the grid of nodes satisfying the SLA (Col. 13, lines 8-19, “Each of the multi-cloud bursting services 340 can develop a relationship with a number of clouds. As shall be discussed herein, the ability of the multi-cloud bursting services 340 to identify, aggregate, communicate, and manage compute resources across a number of different clouds can greatly simplify the ability of workloads to be processed on compute resources that match SLA requirements for the cloud consumers. The multi-cloud bursting services 340 can provide an easy and efficient supply chain management between a job from a customer who desires compute resources for the job and the consumption of selected resources on a cloud by that job.” The multi-cloud bursting service identifying and aggregating compute resources that match SLA requirements for specific jobs from cloud consumers correlates to identifying a subset of nodes satisfying the SLA);
execute a competitive selection engine amongst the subset of the grid of nodes and based on the cost (Col. 19, lines 42-53 and 55-64 and Col. 20, lines 50-56, “The cloud bursting request 404 to multi-cloud bursting service 340A can specify any parameters and/or requirements for the associated job or workload, such as a job priority, an SLA, a QoS requirement, a cost threshold, a performance requirement, a security requirement, a processing parameter, a resource requirement (e.g., a number and/or type of resources required or desired), a reliability requirement, a deprovisioning mode, etc. The cloud bursting request 404 can identify the job or workload that needs processing and any provisioning or deprovisioning instructions… The multi-cloud bursting service 340A receives the cloud bursting request 404 and processes the request based on the information provided in the request. The multi-cloud bursting service 340A can use cloud agnostic template stacks 406 for image management and provisioning 410. The cloud agnostic template stacks 406 can define one or more stacks which can define the provisioning dependencies and task. A stack can include the base operating system (OS), services, libraries, applications, and/or data for the execution environment for the jobs or workloads… Based on the stack(s) associated with a job or workload corresponding to the cloud bursting request 404, the multi-cloud bursting service(s) (e.g., multi-cloud bursting service 340A and/or 340B) can provision 410 specific cloud nodes 412-420 from one or more of the clouds 202-210 and configure the execution environments and parameters for the job or workload to be processed by the provisioned nodes.” The multi-cloud bursting service processing the request based on associated requirements or parameters such as cost and SLA requirements to provision specific cloud nodes for the workload correlates to executing a competitive selection engine amongst the subset of the grid of nodes and based on the cost);
wherein the competitive selection engine solicits bids under the cost from the subset of the grid of nodes (Col. 12, lines 29-33, Col. 13, lines 50-57 and 59-67, Col. 14, lines 1-5, and Col. 29, lines 10-15, “Examples of different capabilities or characteristics may include resource types, resource quantities, resource costs (e.g., per unit of compute resource, per request or job, per resource reservation time, per subscription, per amount of data, per requirement, etc.) … In preparation for most advantageously ensuring that the optimal compute resources are identified and matched for processing the batch job, this system can automatically schedule to receive an updated polling of all of the separately administered compute environments in order to have a current snapshot of the resource capabilities across the different environments… The requests received by the multi-cloud bursting services 340 for compute resources can specify specific attributes, SLAs, QoS requirements, priorities, etc. The request or requestor can thus identify various parameters associated with the request. Such parameters can include a required cost, a required performance level, a required guarantee of resource availability, an amount of resources, locality requirements, reliability requirements, security requirements, etc. Based on the identified resource capabilities across the clouds 202-210 and the parameters associated with a request, the multi-cloud bursting services 340 can select compute resources in one or more of the clouds 202-210. The selection may involve identifying the resources and availabilities in one or more environments… In the minimum-maximum bursting configuration 908, a minimum bursting operation 916 can run to spin up a minimum number of nodes in the cluster 260 needed (or estimated to be needed) to complete the jobs in the queue 904. This can allow a network operator to better manage and control budgeting and cloud costs.” The minimum burst operating spinning up the minimum number of nodes to complete the jobs to control budgeting would involve identifying nodes based on their capabilities, which include a cost, to minimize the cost parameter to be lower than the required cost budget correlates to the competitive selection engine selecting a subset of the grid of nodes which are under the cost. The system receiving an updated polling for all resources and their capabilities to identify an optimal set of compute resources are matched to the job, where the job may include parameters for a cost that can be minimized using a minimum bursting operation, correlates to the competitive selection engine soliciting bids under the cost from the subset of the grid of nodes);
select a lowest cost one of the subset of the grid of nodes based on the competitive selection engine (Col. 28, lines 37-43 and Col. 29, lines 44-53, “In some examples, when the cloud bursting service is enabled via the bursting configuration interface 902, the cloud bursting service can execute or implement a burst function configured to detect what jobs are in the queue 904 and automatically spin up, take offline, or shutdown any nodes in the cloud environment 200 depending on any requirements for the queue 904 and/or jobs in the queue 904… Another aspect is shown in the configuration 950 of FIG. 9B. The bursting function can detect what jobs are in the queue 960 and automatically spin up, take off-line, or shut down a node or nodes depending on the total requirements of the queue 960. If there are not enough on-line nodes to run all the jobs, the bursting function will bring on-line as many nodes as are needed. If there are more nodes than needed, the excess nodes can be taken off-line. This approach enables users to only pay for what is in use and provides bursting at the lowest possible cost.” The cloud bursting service executing a bursting function to select the minimum number of nodes needed to execute the jobs, which can comprise a single node, and provide bursting at the lowest possible cost correlates to selecting a lowest cost one of the subset of the grid of nodes based on the competitive selection engine);
Allen does not explicitly teach that the subset of the grid of nodes is a subset of the geographically dispersed grid of nodes. However, geographically dispersing a grid of nodes is a popular method of node distribution as evidenced by Bursell above (Fig. 1, paragraphs 21, 24 and 26).
Additionally, Schulze teaches:
meter the one of the subset of the geographically dispersed grid of nodes by consuming a test amount of vendable compute resources from the one of the subset of the geographically dispersed grid of nodes (Col. 1, lines 51-61 and lines 63-66, Col. 5, lines 33-44 and lines 45-54, “the method, computer program product and/or system that utilizing a broker node that performs the following operations (not necessarily in the following order): (i) creating a measuring workload, the measuring workload having assigned the execution requirement; (ii) selecting a first and a second candidate node out of the work nodes; (iii) performing the test deployment with the test workload being the measuring workload, the test node being the first candidate node, and the metric being a first metric… (v) determining a cost impact function of the metric; (vi) determining a first total cost function from the first metric and the cost impact function… The measuring workload may be a standardized workload dedicatedly generated for measuring a metric for a specific type of computing resource, and/or be derived from the job workload in order to reflect the resource consumption conditions of the actual job workload. For the sake of further simplification, the present disclosure may consider different work nodes as being operated by different cloud service providers (CSPs). However, it is emphasized that this does not necessarily have to be the case as the same CSP may operate multiple nodes of different hardware and/or deployed at different geographical locations to which different regulations may apply... A cost impact function is understood as yielding an effect, expressed in terms of the cost measure, as a function of the varied computing resource. Using the example of monetary units, the annual cost of reduced business or revenue impact of the operator of the broker node as a function of an average response time may be a valid cost impact function. An increased response time of a given work node would render the work node in question less attractive and thus yield a higher cost of lost business to the cloud service broker (CSB) operator.” The cost impact being measured for a given work node provided by a cloud service broker operator correlates to a vendable compute resource. The cloud service providers operating multiple nodes deployed at different geographical locations correlates to the subset of the geographically dispersed grid of nodes. The measuring workload being used in a test deployment for a first candidate node to measure a metric for a computing resource correlates to metering one of the subset of the geographically dispersed grid of nodes by consuming a test amount of vendable compute resources from the one of the subset of the geographically dispersed grid of nodes);
determine that the lowest cost one of the subset of the geographically dispersed grid of nodes fails to satisfy the SLA based on the metering (Col. 8, lines 26-32 and Col. 11, lines 11-20, “According to embodiments, in case the binary condition is compulsory, the compliance constant is set to a finite value and the noncompliance constant is set to a value representing positive infinity. This may ensure that the compulsory condition is always fulfilled as the noncompliance constant is assumed to exceed any further cost value in subsequent calculations… According to embodiments, the execution requirement comprises a compulsory condition, the selection of the first and the second candidate node further comprising preventing the selection of a given work node as the first or the second candidate in case the given work node is unsupportive of the compulsory condition. This may reduce the resource consumption for the whole arbitration process as the determination of the executing node can be skipped for any work nodes if they are known to be noncompliant to the compulsory condition.” The execution requirements comprising a binary compulsory condition which sets a compliance constant for a non-compliant node to infinity, further resulting in the non-compliant node exceeding any cost value calculations, correlates to determining that the one of the subset of the geographically dispersed grid of nodes fails to satisfy the SLA based on the metering);
deselect the selected one of the subset of the geographically dispersed grid of nodes prior to deploying the workload (Col. 11, lines 11-20, “According to embodiments, the execution requirement comprises a compulsory condition, the selection of the first and the second candidate node further comprising preventing the selection of a given work node as the first or the second candidate in case the given work node is unsupportive of the compulsory condition. This may reduce the resource consumption for the whole arbitration process as the determination of the executing node can be skipped for any work nodes if they are known to be noncompliant to the compulsory condition.” A node which is non-compliant for a compulsory execution requirement being prevented from selection as a given work node correlates to deselecting the selected one of the subset of the geographically dispersed grid of nodes prior to deploying the workload); and
select a next one of the subset of the geographically dispersed grid of nodes (Col. 1, lines 51-67, Col. 2, lines 1-6, and Col. 11, lines 11-20, “the method, computer program product and/or system that utilizing a broker node that performs the following operations (not necessarily in the following order): (i) creating a measuring workload, the measuring workload having assigned the execution requirement; (ii) selecting a first and a second candidate node out of the work nodes; (iii) performing the test deployment with the test workload being the measuring workload, the test node being the first candidate node, and the metric being a first metric; (iv) performing the test deployment with the test workload being the measuring workload, the test node being the second candidate node, and the metric being a second metric; (v) determining a cost impact function of the metric; (vi) determining a first total cost function from the first metric and the cost impact function, and determining a second total cost function from the second metric and the cost impact function; (vii) determining a first minimum of the first total cost function and a second minimum of the second total cost function; (viii) based on the first minimum and the second minimum, selecting one of the first candidate node and the second candidate node as an executing node for executing the job workload… According to embodiments, the execution requirement comprises a compulsory condition, the selection of the first and the second candidate node further comprising preventing the selection of a given work node as the first or the second candidate in case the given work node is unsupportive of the compulsory condition. This may reduce the resource consumption for the whole arbitration process as the determination of the executing node can be skipped for any work nodes if they are known to be noncompliant to the compulsory condition.” In the case where a first candidate node was non-compliant of a compulsory execution requirement and a second candidate node was compliant, the second candidate node would be the next selected node and therefore corelates to selecting a next one of the subset of the geographically dispersed grid of nodes).
Schulze does not explicitly teach that the one of the subset of the geographically dispersed grid of nodes and the next one of the subset of the geographically dispersed grid of nodes are the lowest [and] next lowest cost one of the subset of the geographically dispersed grid of nodes respectively. However, selecting the lowest [and] next lowest cost one of the subset of the grid of nodes is a popular method for bursting at the lowest possible cost by enabling users to only pay for what is in use as evidenced by Allen above (Col. 28, lines 37-43 and Col. 29, lines 44-53).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Bursell with a plurality of compute consumers including a first compute consumer comprising a Service Level Agreement (SLA), and a cost; wherein the orchestration manager is configured to deploy the workload of the first compute consumer on at least one node of the confidential computing provider that satisfies at least the SLA and the cost, wherein the orchestration manager comprises one or more computer-readable storage media collectively storing computer- executable program code configured to cause the orchestration manager to: identify a subset of the grid of nodes satisfying the SLA; execute a competitive selection engine amongst the subset of the grid of nodes and based on the cost, wherein the competitive selection engine solicits bids under the cost from the subset of the grid of nodes; select a lowest cost one of the subset of the grid of nodes based on the competitive selection engine as taught by Allen because associated requirements, dependencies, and triggers for jobs and workloads can be used in combination with various cloud configurations, architecture, platform, or characteristics to match particular jobs or workloads with resources (Allen: Col. 19, lines 30-41).
Additionally, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Bursell with meter the one of the subset of the geographically dispersed grid of nodes by consuming a test amount of vendable compute resources from the one of the subset of the geographically dispersed grid of nodes; determine that the one of the subset of the geographically dispersed grid of nodes fails to satisfy the SLA based on the metering; deselect the selected one of the subset of the geographically dispersed grid of nodes prior to deploying the workload; and select a next one of the subset of the geographically dispersed grid of nodes as taught by Schulze because preventing noncompliant work nodes for a particular compulsory condition from being considered as the executing node can reduce the resource consumption for the whole arbitration process. Additionally, measuring workloads can be dedicatedly generated for measuring a metric for a specific type of computing resource or be derived from the job workload in order to reflect the resource consumption conditions of the actual job workload (Schulze: Col. 5, lines 33-37 and Col. 11, lines 11-20).
With regards to Claim 10, Bursell teaches:
A computer-implemented method comprising:
deploying a Trusted Execution Environment comprising a plurality of nodes in a distributed multi-party grid infrastructure (Fig. 1, paragraphs 24 and 26-27, “Computing environment 100 may further include one or more host computer systems 120A-120B, on which virtual machine instances 130A-130K may run. In some implementations, hosts 120A-B may be physical servers (e.g., physical machines), virtual servers (e.g., implementing a hypervisor and virtual machines, containers), or a combination thereof. One or more of the hosts may be absent virtualization technology and one or more of the hosts may provide one or more levels of virtualization. The levels of virtualization may include hardware level virtualization, operating system level virtualization, other virtualization, or a combination thereof… Each of the trusted execution environments 140A-B may include one or more trusted execution environment instances (e.g., TEE instances) … TCA 160 may securely provision workloads to TEE 140A-B. As shown in FIG. 1, trusted execution environments 140A-B may be provided by a respective host system that may guard data associated with a particular instance using one or more encrypted memory regions 145A-B… Trusted client agent (TCA) 160 may be a trusted process running within computing environment 100. TCA may be trusted by one or more tenants of the computing environment and may be responsible for provisioning, remote management and monitoring of one or more workloads within one or more TEE. Additionally, one tenant of TEE 140A-B may be associated with one or more TCA, for example to configure security settings more or less stringently for each associated TCA.” The hosts providing multiple TEEs including one or more TEE instances correlates to a trusted execution environment comprising a plurality of nodes. The trusted client agents provisioning workloads from one or more tenants of the computing environment within one or more TEE correlates to a distributed multi-party grid infrastructure) and configured to provide self-serve compute infrastructure for secure and confidential workload execution (Fig. 1, paragraphs 26-27, “Each of the trusted execution environments 140A-B may include one or more trusted execution environment instances (e.g., TEE instances) … TCA 160 may securely provision workloads to TEE 140A-B. As shown in FIG. 1, trusted execution environments 140A-B may be provided by a respective host system that may guard data associated with a particular instance using one or more encrypted memory regions 145A-B… Trusted client agent (TCA) 160 may be a trusted process running within computing environment 100. TCA may be trusted by one or more tenants of the computing environment and may be responsible for provisioning, remote management and monitoring of one or more workloads within one or more TEE. Additionally, one tenant of TEE 140A-B may be associated with one or more TCA, for example to configure security settings more or less stringently for each associated TCA.” The trusted client agents, which are processes trusted by one or more tenants, provisioning workloads from one or more tenants of the computing environment within one or more TEE correlates to providing self-serve compute infrastructure for secure and confidential workload execution);
receiving a workload configured to run on a cloud computing environment (Paragraphs 27, 34 and 39, “Trusted client agent (TCA) 160 may be a trusted process running within computing environment 100. TCA may be trusted by one or more tenants of the computing environment and may be responsible for provisioning, remote management and monitoring of one or more workloads within one or more TEE. Additionally, one tenant of TEE 140A-B may be associated with one or more TCA, for example to configure security settings more or less stringently for each associated TCA. In an implementation, TCA 160 may act as a client with respect to hosts 120A-120B, and may communicate with TEE 140A-B via XML-RPC or any other suitable protocol…In an implementation, the software provisioning command may contain workload 222 for provisioning to encrypted memory 250 of TEE 230. The software provisioning command may be initiated by a tenant of TEE 230 and may be directed to orchestration system 220 for execution by a TCA residing in one of the hosts of a computing environment (e.g., a cloud computing environment) … In implementations, the TCA may be trusted to provision workloads by one or more tenants of the computing environment, as explained in more details herein.” The workload from a specific tenant out of the one or more tenants of the computing environment being requested for provisioning on a host of the cloud computing environment correlates to receiving a workload configured to run on the cloud computing environment),
Bursell does not explicitly teach:
receiving a Service Level Agreement (SLA) defining resource characteristics associated with execution of the workload, and a cost associated with executing the workload;
matching the workload to at least one node of the plurality of nodes satisfying the SLA and the cost, wherein matching the workload comprises:
identifying a subset of a geographically dispersed grid of nodes satisfying the SLA;
executing a competitive selection engine amongst the subset of the geographically dispersed grid of nodes and based on the cost, wherein the competitive selection engine solicits bids under the cost from the subset of the geographically dispersed grid of nodes;
selecting a lowest cost one of the subset of the geographically dispersed grid of nodes based on the competitive selection engine;
metering the lowest cost one of the subset of the geographically dispersed grid of nodes by consuming a test amount of vendable compute resources from the lowest cost one of the subset of the geographically dispersed grid of nodes;
determining that the lowest cost one of the subset of the geographically dispersed grid of nodes fails to satisfy the SLA based on the metering;
deselecting the selected one of the subset of the geographically dispersed grid of nodes prior to deploying the workload; and
selecting a next lowest cost one of the subset of the geographically dispersed grid of nodes; and
and executing the workload on the next lowest one node of the subset of the geographically dispersed grid of nodes.
However, Allen teaches:
receiving a Service Level Agreement (SLA) defining resource characteristics associated with execution of the workload, and a cost associated with executing the workload (Col. 18, lines 60-67, Col. 19, lines 1-8 and 30-36, “The bursting parameters and triggers 402 can dictate whether the cloud bursting request 404 is for provisioning nodes or deprovisioning nodes. The parameters in the bursting parameters and triggers 402 can define specific attributes, requirements, and information used in provisioning or deprovisioning nodes in response to the cloud bursting request 404. For example, the bursting parameters and triggers 402 can include parameters for provisioning nodes from one or more clouds (202-210), such as a reservation period (e.g., day, month, quarter, year, etc.), a type and/or number of resources (e.g., nodes) that should be provisioned, cost requirements, SLA requirements, QoS requirements, performance requirements, security requirements, reliability requirements, environment requirements, preferences, priorities, a budget for bursting, policies, etc. … In some cases, the bursting parameters and triggers 402 can be defined in specific job or workload templates. Such job or workload templates can identify specific jobs or workloads, associated requirements, associated dependencies, associated triggers for bursting, associated instructions for bursting, and/or any other information pertinent to the jobs or workloads.” The bursting parameters and triggers for a specific job or workload bursting request including cost requirements and SLA requirements correlates to a cost associated with executing the workload and an SLA defining resource characteristics associated with the execution of the workload respectively);
matching the workload to at least one node of the plurality of nodes satisfying the SLA and the cost (Col. 19, lines 42-53 and 55-64 and Col. 20, lines 50-56, “The cloud bursting request 404 to multi-cloud bursting service 340A can specify any parameters and/or requirements for the associated job or workload, such as a job priority, an SLA, a QoS requirement, a cost threshold, a performance requirement, a security requirement, a processing parameter, a resource requirement (e.g., a number and/or type of resources required or desired), a reliability requirement, a deprovisioning mode, etc. The cloud bursting request 404 can identify the job or workload that needs processing and any provisioning or deprovisioning instructions… The multi-cloud bursting service 340A receives the cloud bursting request 404 and processes the request based on the information provided in the request. The multi-cloud bursting service 340A can use cloud agnostic template stacks 406 for image management and provisioning 410. The cloud agnostic template stacks 406 can define one or more stacks which can define the provisioning dependencies and task. A stack can include the base operating system (OS), services, libraries, applications, and/or data for the execution environment for the jobs or workloads… Based on the stack(s) associated with a job or workload corresponding to the cloud bursting request 404, the multi-cloud bursting service(s) (e.g., multi-cloud bursting service 340A and/or 340B) can provision 410 specific cloud nodes 412-420 from one or more of the clouds 202-210 and configure the execution environments and parameters for the job or workload to be processed by the provisioned nodes.” The multi-cloud bursting service processing the request based on associated requirements or parameters such as cost and SLA requirements to provision specific cloud nodes for the workload correlates to matching the workload to at least one node that satisfies the SLA and the cost),
wherein matching the workload comprises: identifying a subset of the grid of nodes satisfying the SLA (Col. 13, lines 8-19, “Each of the multi-cloud bursting services 340 can develop a relationship with a number of clouds. As shall be discussed herein, the ability of the multi-cloud bursting services 340 to identify, aggregate, communicate, and manage compute resources across a number of different clouds can greatly simplify the ability of workloads to be processed on compute resources that match SLA requirements for the cloud consumers. The multi-cloud bursting services 340 can provide an easy and efficient supply chain management between a job from a customer who desires compute resources for the job and the consumption of selected resources on a cloud by that job.” The multi-cloud bursting service identifying and aggregating compute resources that match SLA requirements for specific jobs from cloud consumers correlates to identifying a subset of nodes satisfying the SLA);
executing a competitive selection engine amongst the subset of the grid of nodes and based on the cost (Col. 19, lines 42-53 and 55-64 and Col. 20, lines 50-56, “The cloud bursting request 404 to multi-cloud bursting service 340A can specify any parameters and/or requirements for the associated job or workload, such as a job priority, an SLA, a QoS requirement, a cost threshold, a performance requirement, a security requirement, a processing parameter, a resource requirement (e.g., a number and/or type of resources required or desired), a reliability requirement, a deprovisioning mode, etc. The cloud bursting request 404 can identify the job or workload that needs processing and any provisioning or deprovisioning instructions… The multi-cloud bursting service 340A receives the cloud bursting request 404 and processes the request based on the information provided in the request. The multi-cloud bursting service 340A can use cloud agnostic template stacks 406 for image management and provisioning 410. The cloud agnostic template stacks 406 can define one or more stacks which can define the provisioning dependencies and task. A stack can include the base operating system (OS), services, libraries, applications, and/or data for the execution environment for the jobs or workloads… Based on the stack(s) associated with a job or workload corresponding to the cloud bursting request 404, the multi-cloud bursting service(s) (e.g., multi-cloud bursting service 340A and/or 340B) can provision 410 specific cloud nodes 412-420 from one or more of the clouds 202-210 and configure the execution environments and parameters for the job or workload to be processed by the provisioned nodes.” The multi-cloud bursting service processing the request based on associated requirements or parameters such as cost and SLA requirements to provision specific cloud nodes for the workload correlates to executing a competitive selection engine amongst the subset of the grid of nodes and based on the cost);
wherein the competitive selection engine solicits bids under the cost from the subset of the grid of nodes (Col. 12, lines 29-33, Col. 13, lines 50-57 and 59-67, Col. 14, lines 1-5, and Col. 29, lines 10-15, “Examples of different capabilities or characteristics may include resource types, resource quantities, resource costs (e.g., per unit of compute resource, per request or job, per resource reservation time, per subscription, per amount of data, per requirement, etc.) … In preparation for most advantageously ensuring that the optimal compute resources are identified and matched for processing the batch job, this system can automatically schedule to receive an updated polling of all of the separately administered compute environments in order to have a current snapshot of the resource capabilities across the different environments… The requests received by the multi-cloud bursting services 340 for compute resources can specify specific attributes, SLAs, QoS requirements, priorities, etc. The request or requestor can thus identify various parameters associated with the request. Such parameters can include a required cost, a required performance level, a required guarantee of resource availability, an amount of resources, locality requirements, reliability requirements, security requirements, etc. Based on the identified resource capabilities across the clouds 202-210 and the parameters associated with a request, the multi-cloud bursting services 340 can select compute resources in one or more of the clouds 202-210. The selection may involve identifying the resources and availabilities in one or more environments… In the minimum-maximum bursting configuration 908, a minimum bursting operation 916 can run to spin up a minimum number of nodes in the cluster 260 needed (or estimated to be needed) to complete the jobs in the queue 904. This can allow a network operator to better manage and control budgeting and cloud costs.” The minimum burst operating spinning up the minimum number of nodes to complete the jobs to control budgeting would involve identifying nodes based on their capabilities, which include a cost, to minimize the cost parameter to be lower than the required cost budget correlates to the competitive selection engine selecting a subset of the grid of nodes which are under the cost. The system receiving an updated polling for all resources and their capabilities to identify an optimal set of compute resources are matched to the job, where the job may include parameters for a cost that can be minimized using a minimum bursting operation, correlates to the competitive selection engine soliciting bids under the cost from the subset of the grid of nodes);
selecting a lowest cost one of the subset of the grid of nodes based on the competitive selection engine (Col. 28, lines 37-43 and Col. 29, lines 44-53, “In some examples, when the cloud bursting service is enabled via the bursting configuration interface 902, the cloud bursting service can execute or implement a burst function configured to detect what jobs are in the queue 904 and automatically spin up, take offline, or shutdown any nodes in the cloud environment 200 depending on any requirements for the queue 904 and/or jobs in the queue 904… Another aspect is shown in the configuration 950 of FIG. 9B. The bursting function can detect what jobs are in the queue 960 and automatically spin up, take off-line, or shut down a node or nodes depending on the total requirements of the queue 960. If there are not enough on-line nodes to run all the jobs, the bursting function will bring on-line as many nodes as are needed. If there are more nodes than needed, the excess nodes can be taken off-line. This approach enables users to only pay for what is in use and provides bursting at the lowest possible cost.” The cloud bursting service executing a bursting function to select the minimum number of nodes needed to execute the jobs, which can comprise a single node, and provide bursting at the lowest possible cost correlates to selecting a lowest cost one of the subset of the grid of nodes based on the competitive selection engine);
Additionally, Schulze teaches:
metering the one of the subset of the geographically dispersed grid of nodes by consuming a test amount of vendable compute resources from the one of the subset of the geographically dispersed grid of nodes (Col. 1, lines 51-61 and lines 63-66, Col. 5, lines 33-44 and lines 45-54, “the method, computer program product and/or system that utilizing a broker node that performs the following operations (not necessarily in the following order): (i) creating a measuring workload, the measuring workload having assigned the execution requirement; (ii) selecting a first and a second candidate node out of the work nodes; (iii) performing the test deployment with the test workload being the measuring workload, the test node being the first candidate node, and the metric being a first metric… (v) determining a cost impact function of the metric; (vi) determining a first total cost function from the first metric and the cost impact function… The measuring workload may be a standardized workload dedicatedly generated for measuring a metric for a specific type of computing resource, and/or be derived from the job workload in order to reflect the resource consumption conditions of the actual job workload. For the sake of further simplification, the present disclosure may consider different work nodes as being operated by different cloud service providers (CSPs). However, it is emphasized that this does not necessarily have to be the case as the same CSP may operate multiple nodes of different hardware and/or deployed at different geographical locations to which different regulations may apply... A cost impact function is understood as yielding an effect, expressed in terms of the cost measure, as a function of the varied computing resource. Using the example of monetary units, the annual cost of reduced business or revenue impact of the operator of the broker node as a function of an average response time may be a valid cost impact function. An increased response time of a given work node would render the work node in question less attractive and thus yield a higher cost of lost business to the cloud service broker (CSB) operator.” The cost impact being measured for a given work node provided by a cloud service broker operator correlates to a vendable compute resource. The cloud service providers operating multiple nodes deployed at different geographical locations correlates to the subset of the geographically dispersed grid of nodes. The measuring workload being used in a test deployment for a first candidate node to measure a metric for a computing resource correlates to metering one of the subset of the geographically dispersed grid of nodes by consuming a test amount of vendable compute resources from the one of the subset of the geographically dispersed grid of nodes);
determining that the lowest cost one of the subset of the geographically dispersed grid of nodes fails to satisfy the SLA based on the metering (Col. 8, lines 26-32 and Col. 11, lines 11-20, “According to embodiments, in case the binary condition is compulsory, the compliance constant is set to a finite value and the noncompliance constant is set to a value representing positive infinity. This may ensure that the compulsory condition is always fulfilled as the noncompliance constant is assumed to exceed any further cost value in subsequent calculations… According to embodiments, the execution requirement comprises a compulsory condition, the selection of the first and the second candidate node further comprising preventing the selection of a given work node as the first or the second candidate in case the given work node is unsupportive of the compulsory condition. This may reduce the resource consumption for the whole arbitration process as the determination of the executing node can be skipped for any work nodes if they are known to be noncompliant to the compulsory condition.” The execution requirements comprising a binary compulsory condition which sets a compliance constant for a non-compliant node to infinity, further resulting in the non-compliant node exceeding any cost value calculations, correlates to determining that the one of the subset of the geographically dispersed grid of nodes fails to satisfy the SLA based on the metering);
deselecting the selected one of the subset of the geographically dispersed grid of nodes prior to deploying the workload (Col. 11, lines 11-20, “According to embodiments, the execution requirement comprises a compulsory condition, the selection of the first and the second candidate node further comprising preventing the selection of a given work node as the first or the second candidate in case the given work node is unsupportive of the compulsory condition. This may reduce the resource consumption for the whole arbitration process as the determination of the executing node can be skipped for any work nodes if they are known to be noncompliant to the compulsory condition.” A node which is non-compliant for a compulsory execution requirement being prevented from selection as a given work node correlates to deselecting the selected one of the subset of the geographically dispersed grid of nodes prior to deploying the workload); and
selecting a next one of the subset of the geographically dispersed grid of nodes (Col. 1, lines 51-67, Col. 2, lines 1-6, and Col. 11, lines 11-20, “the method, computer program product and/or system that utilizing a broker node that performs the following operations (not necessarily in the following order): (i) creating a measuring workload, the measuring workload having assigned the execution requirement; (ii) selecting a first and a second candidate node out of the work nodes; (iii) performing the test deployment with the test workload being the measuring workload, the test node being the first candidate node, and the metric being a first metric; (iv) performing the test deployment with the test workload being the measuring workload, the test node being the second candidate node, and the metric being a second metric; (v) determining a cost impact function of the metric; (vi) determining a first total cost function from the first metric and the cost impact function, and determining a second total cost function from the second metric and the cost impact function; (vii) determining a first minimum of the first total cost function and a second minimum of the second total cost function; (viii) based on the first minimum and the second minimum, selecting one of the first candidate node and the second candidate node as an executing node for executing the job workload… According to embodiments, the execution requirement comprises a compulsory condition, the selection of the first and the second candidate node further comprising preventing the selection of a given work node as the first or the second candidate in case the given work node is unsupportive of the compulsory condition. This may reduce the resource consumption for the whole arbitration process as the determination of the executing node can be skipped for any work nodes if they are known to be noncompliant to the compulsory condition.” In the case where a first candidate node was non-compliant of a compulsory execution requirement and a second candidate node was compliant, the second candidate node would be the next selected node and therefore corelates to selecting a next one of the subset of the geographically dispersed grid of nodes); and executing the workload on the next one node of subset of the geographically dispersed grid of the nodes (Col. 1, line 67, Col. 2, lines 1-6, and Col. 11, lines 11-20, “(vii) determining a first minimum of the first total cost function and a second minimum of the second total cost function; (viii) based on the first minimum and the second minimum, selecting one of the first candidate node and the second candidate node as an executing node for executing the job workload; and (ix) causing the executing node to execute the job workload… According to embodiments, the execution requirement comprises a compulsory condition, the selection of the first and the second candidate node further comprising preventing the selection of a given work node as the first or the second candidate in case the given work node is unsupportive of the compulsory condition. This may reduce the resource consumption for the whole arbitration process as the determination of the executing node can be skipped for any work nodes if they are known to be noncompliant to the compulsory condition.” In the case where a first candidate node was non-compliant of a compulsory execution requirement and a second candidate node was compliant, the second candidate node would execute the job workload which therefore correlates to executing the workload on the next one node of subset of the geographically dispersed grid of the nodes).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Bursell with receiving a Service Level Agreement (SLA) defining resource characteristics associated with execution of the workload, and a cost associated with executing the workload; matching the workload to at least one node of the plurality of nodes satisfying the SLA and the cost, wherein matching the workload comprises: identifying a subset of the grid of nodes satisfying the SLA; executing a competitive selection engine amongst the subset of the grid of nodes and based on the cost, wherein the competitive selection engine solicits bids under the cost from the subset of the grid of nodes; selecting a lowest cost one of the subset of the grid of nodes based on the competitive selection engine as taught by Allen because associated requirements, dependencies, and triggers for jobs and workloads can be used in combination with various cloud configurations, architecture, platform, or characteristics to match particular jobs or workloads with resources (Allen: Col. 19, lines 30-41).
Additionally, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Bursell with metering the one of the subset of the geographically dispersed grid of nodes by consuming a test amount of vendable compute resources from the one of the subset of the geographically dispersed grid of nodes; determining that the one of the subset of the geographically dispersed grid of nodes fails to satisfy the SLA based on the metering; deselecting the selected one of the subset of the geographically dispersed grid of nodes prior to deploying the workload; and selecting a next one of the subset of the geographically dispersed grid of nodes; and executing the workload on the next one node of subset of the geographically dispersed grid of the nodes as taught by Schulze because preventing noncompliant work nodes for a particular compulsory condition from being considered as the executing node can reduce the resource consumption for the whole arbitration process. Additionally, measuring workloads can be dedicatedly generated for measuring a metric for a specific type of computing resource or be derived from the job workload in order to reflect the resource consumption conditions of the actual job workload (Schulze: Col. 5, lines 33-37 and Col. 11, lines 11-20).
With regards to Claim 20, the method of Claim 10 performs the same steps as the system of Claim 20, and Claim 20 is therefore rejected using the same rationale set forth above in the rejection of Claim 10.
With regards to Claim 8, Bursell in view of Allen and Schulze teaches the system of Claim 1 above. Schulze further teaches:
wherein the orchestration manager comprises additional computer-executable program code stored in the one or more computer-readable storage media and configured to cause the orchestration manager to:
meter the next one of the subset of the geographically dispersed grid of nodes (Col. 1, lines 51-66, Col. 5, lines 33-37, “the method, computer program product and/or system that utilizing a broker node that performs the following operations (not necessarily in the following order): (i) creating a measuring workload, the measuring workload having assigned the execution requirement; (ii) selecting a first and a second candidate node out of the work nodes; (iii) performing the test deployment with the test workload being the measuring workload, the test node being the first candidate node, and the metric being a first metric; (iv) performing the test deployment with the test workload being the measuring workload, the test node being the second candidate node, and the metric being a second metric; (v) determining a cost impact function of the metric; (vi) determining a first total cost function from the first metric and the cost impact function… The measuring workload may be a standardized workload dedicatedly generated for measuring a metric for a specific type of computing resource, and/or be derived from the job workload in order to reflect the resource consumption conditions of the actual job workload.” The measuring workload being used in a test deployment for a second candidate node to measure a metric for a computing resource correlates to metering the next one of the subset of the geographically dispersed grid of nodes);
determine that the next one of the subset of the geographically dispersed grid of nodes satisfies the SLA based on the metering (Col. 8, lines 26-32 and Col. 11, lines 11-20, “According to embodiments, in case the binary condition is compulsory, the compliance constant is set to a finite value and the noncompliance constant is set to a value representing positive infinity. This may ensure that the compulsory condition is always fulfilled as the noncompliance constant is assumed to exceed any further cost value in subsequent calculations… According to embodiments, the execution requirement comprises a compulsory condition, the selection of the first and the second candidate node further comprising preventing the selection of a given work node as the first or the second candidate in case the given work node is unsupportive of the compulsory condition. This may reduce the resource consumption for the whole arbitration process as the determination of the executing node can be skipped for any work nodes if they are known to be noncompliant to the compulsory condition.” The execution requirements comprising a binary compulsory condition which sets a compliance constant for a compliant node to a finite value, which allows the node to be considered as a given work node, correlates to determining that the next one of the subset of the geographically dispersed grid of nodes satisfies the SLA based on the metering);
automatically deploy the workload on the next one of the subset of the geographically dispersed grid of nodes (Col. 1, line 67, Col. 2, lines 1-6, and Col. 11, lines 11-20, “(vii) determining a first minimum of the first total cost function and a second minimum of the second total cost function; (viii) based on the first minimum and the second minimum, selecting one of the first candidate node and the second candidate node as an executing node for executing the job workload; and (ix) causing the executing node to execute the job workload… According to embodiments, the execution requirement comprises a compulsory condition, the selection of the first and the second candidate node further comprising preventing the selection of a given work node as the first or the second candidate in case the given work node is unsupportive of the compulsory condition. This may reduce the resource consumption for the whole arbitration process as the determination of the executing node can be skipped for any work nodes if they are known to be noncompliant to the compulsory condition.” In the case where a first candidate node was non-compliant of a compulsory execution requirement and a second candidate node was compliant, the second candidate node would execute the job workload which therefore correlates to automatically deploying the workload on the next one of the subset of the geographically dispersed grid of nodes).
Schulze does not explicitly teach that the next one of the subset of the geographically dispersed grid of nodes is the next lowest cost one of the subset of the geographically dispersed grid of nodes respectively. However, selecting the next lowest cost one of the subset of the grid of nodes is a popular method for bursting at the lowest possible cost by enabling users to only pay for what is in use as evidenced by Allen above (Col. 28, lines 37-43 and Col. 29, lines 44-53).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Bursell with meter the next one of the subset of the geographically dispersed grid of nodes; determine that the next one of the subset of the geographically dispersed grid of nodes satisfies the SLA based on the metering; and automatically deploy the workload on the next one of the subset of the geographically dispersed grid of nodes as taught by Schulze because preventing noncompliant work nodes for a particular compulsory condition from being considered as the executing node can reduce the resource consumption for the whole arbitration process. Additionally, measuring workloads can be dedicatedly generated for measuring a metric for a specific type of computing resource or be derived from the job workload in order to reflect the resource consumption conditions of the actual job workload (Schulze: Col. 5, lines 33-37 and Col. 11, lines 11-20).
Additionally, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Bursell with the next lowest cost one of the subset of the grid of nodes as taught by Allen because certain requests can specify specific attributes such as required performance levels, guarantee of resource availability, reliability or security requirements. Selecting compute resources which satisfy these requests ensure that optimal compute resources are matches for processing jobs (Allen: Col. 13, lines 48-67 and Col. 14, lines 1-14).
With regards to Claim 17, the system of Claim 8 performs the same steps as the method of Claim 17, and Claim 17 is therefore rejected using the same rationale set forth above in the rejection of Claim 8.
With regards to Claim 25, Bursell in view of Allen and Schulze teaches the manufacture of Claim 20 above. Schulze further teaches:
wherein matching the workload to the at least one node of the plurality of nodes further comprises:
metering the next one of the subset of the geographically dispersed grid of nodes (Col. 1, lines 51-66, Col. 5, lines 33-37, “the method, computer program product and/or system that utilizing a broker node that performs the following operations (not necessarily in the following order): (i) creating a measuring workload, the measuring workload having assigned the execution requirement; (ii) selecting a first and a second candidate node out of the work nodes; (iii) performing the test deployment with the test workload being the measuring workload, the test node being the first candidate node, and the metric being a first metric; (iv) performing the test deployment with the test workload being the measuring workload, the test node being the second candidate node, and the metric being a second metric; (v) determining a cost impact function of the metric; (vi) determining a first total cost function from the first metric and the cost impact function… The measuring workload may be a standardized workload dedicatedly generated for measuring a metric for a specific type of computing resource, and/or be derived from the job workload in order to reflect the resource consumption conditions of the actual job workload.” The measuring workload being used in a test deployment for a second candidate node to measure a metric for a computing resource correlates to metering the next one of the subset of the geographically dispersed grid of nodes);
determining that the next one of the subset of the geographically dispersed grid of nodes satisfies the SLA based on the metering (Col. 8, lines 26-32 and Col. 11, lines 11-20, “According to embodiments, in case the binary condition is compulsory, the compliance constant is set to a finite value and the noncompliance constant is set to a value representing positive infinity. This may ensure that the compulsory condition is always fulfilled as the noncompliance constant is assumed to exceed any further cost value in subsequent calculations… According to embodiments, the execution requirement comprises a compulsory condition, the selection of the first and the second candidate node further comprising preventing the selection of a given work node as the first or the second candidate in case the given work node is unsupportive of the compulsory condition. This may reduce the resource consumption for the whole arbitration process as the determination of the executing node can be skipped for any work nodes if they are known to be noncompliant to the compulsory condition.” The execution requirements comprising a binary compulsory condition which sets a compliance constant for a compliant node to a finite value, which allows the node to be considered as a given work node, correlates to determining that the next one of the subset of the geographically dispersed grid of nodes satisfies the SLA based on the metering);
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Bursell with metering the next one of the subset of the geographically dispersed grid of nodes; and determining that the next one of the subset of the geographically dispersed grid of nodes satisfies the SLA based on the metering as taught by Schulze because preventing noncompliant work nodes for a particular compulsory condition from being considered as the executing node can reduce the resource consumption for the whole arbitration process. Additionally, measuring workloads can be dedicatedly generated for measuring a metric for a specific type of computing resource or be derived from the job workload in order to reflect the resource consumption conditions of the actual job workload (Schulze: Col. 5, lines 33-37 and Col. 11, lines 11-20).
Additionally, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Bursell with the next lowest cost one of the subset of the grid of nodes as taught by Allen because certain requests can specify specific attributes such as required performance levels, guarantee of resource availability, reliability or security requirements. Selecting compute resources which satisfy these requests ensure that optimal compute resources are matches for processing jobs (Allen: Col. 13, lines 48-67 and Col. 14, lines 1-14).
Claim(s) 2-3, 11-12 and 21-22 are rejected under 35 U.S.C. 103 as being unpatentable over Bursell in view of Allen, Schulze and Kofman et al. (U.S. Patent No. US 20230056783 A1), hereinafter “Kofman.”
With regards to Claim 2, Bursell in view of Allen and Schulze teaches the system of Claim 1 above. Bursell further teaches:
and wherein the workload is securely deployed on the at least one node of the confidential computing provider using the trusted execution environment (Paragraph 36, “Finally, if workload 222 is signed by orchestration system 220 and is associated with a signing certificate that matches orchestration certificate 227, then workload 222 may be approved for provisioning to TEE 230. Upon determining that workload 222 is approved for provisioning to TEE 230, TCA 240, at operation 213, may deploy workload 222 to encrypted memory 250 of TEE 230.” The workload’s signing certificate matching the orchestration certificate before the workload is deployed to the TEE correlates to the workload being securely deployed on the at least one node of the confidential computing provider using the trusted execution environment).
Bursell in view of Allen and Schulze does not explicitly teach:
wherein respective nodes of the geographically dispersed grid of nodes are individually untrusted
However, Kofman teaches:
wherein respective nodes of the grid of nodes are individually untrusted (Paragraph 88, “An exemplary environment 200 may include a distributed ledger community (network) comprising a plurality of computing nodes 202 typically untrusted by each other which may apply one or more distributed ledger (blockchain) protocols as known in the art to control a distributed ledger 206, for example, a blockchain and jointly ensure security, irreversibility and immutability of the distributed ledger 206.” The plurality of computing nodes being untrusted by each other correlates to the nodes being individually untrusted)
Kofman does not explicitly teach that the respective nodes are of a geographically dispersed grid of nodes. However, geographically dispersing a grid of nodes is a popular method of node distribution as evidenced by Bursell above (Fig. 1, paragraphs 21, 24 and 26).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Bursell with wherein respective nodes of the grid of nodes are individually untrusted as taught by Kofman because existing solutions rely on trusted third parties which present limitations including that the third party must be trusted by both private data owners and stakeholders, the private data must be transferred to a third party which can expose the data to risks or attacks, and the third party may have additional costs, time, or potentially increased computation resources needed to transfer the data. Tracking and controlling execution through distributed ledgers of untrusted computing nodes to ensure security significantly reduces costs, time, and computation resources (Kofman: paragraphs 70 and 88).
With regards to Claims 11 and 21, the system of Claim 2 performs the same steps as the method and manufacture of Claims 11 and 21 respectfully, and Claims 11 and 21 are therefore rejected using the same rationale set forth above in the rejection of Claim 2.
With regards to Claim 3, Bursell in view of Allen and Schulze teaches the system of Claim 1 above. Bursell in view of Allen and Schulze does not explicitly teach:
wherein the trusted execution environment is implemented at least in part by one or more Secure Services Containers (SSCs).
However, Kofman teaches:
wherein the trusted execution environment is implemented at least in part by one or more Secure Services Containers (SSCs) (Paragraph 109, “The TEE may be implemented using one or more methods, architectures and/or deployments as known in the art, for example, Intel Software Guard Extensions (SGX), AMD Platform Security Processor (PSP), IBM Secure Service Container, ARM TrustZone and/or the like.” The TEE being implemented by one or more methods, architectures, and/or deployments including the IBM secure service container correlates to the trusted execution environment being implemented at least in part by one or more secure services container).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Bursell with wherein the trusted execution environment is implemented at least in part by one or more Secure Services Containers (SSCs) as taught by Kofman because multiple methods, architectures, or deployments in combination offers greater flexibility for different receptive software modules executed by the processor and hardware enclaves (Kofman: paragraph 109).
With regards to Claims 12 and 22, the system of Claim 3 performs the same steps as the method and manufacture of Claims 12 and 22 respectfully, and Claims 12 and 22 are therefore rejected using the same rationale set forth above in the rejection of Claim 3.
Claim(s) 4-5, 13-14 and 23-24 are rejected under 35 U.S.C. 103 as being unpatentable over Bursell in view of Allen, Schulze and Yan et al. (U.S. Patent No. US 20170214694 A1), hereinafter “Yan.”
With regards to Claim 4, Bursell in view of Allen and Schulze teaches the system of Claim 1 above. Bursell further teaches:
wherein the vendable compute resources provided by the geographically dispersed grid of nodes are protected at-rest (Paragraphs 25-26 and 34, “The trusted execution environment may be implemented by one or more processors coupled to a storage device (e.g., memory). The processor may protect data of the set of processes from being accessed by other processes that may be more or less privileged… Each of the trusted execution environments 140A-B may include one or more trusted execution environment instances (e.g., TEE instances). An instance of the trusted execution environment may be established for a particular set of one or more processes and may be associated with a particular memory encrypted region. The instances of a trusted execution environment may be provided by the same hardware (e.g., processor and memory) but each instance may be associated with a different memory encrypted region and a different set of one or more processes (e.g., set including an individual process or set of all processes within a container). TCA 160 may securely provision workloads to TEE 140A-B. As shown in FIG. 1, trusted execution environments 140A-B may be provided by a respective host system that may guard data associated with a particular instance using one or more encrypted memory regions 145A-B… In an implementation, the software provisioning command may contain workload 222 for provisioning to encrypted memory 250 of TEE 230. The software provisioning command may be initiated by a tenant of TEE 230 and may be directed to orchestration system 220 for execution by a TCA residing in one of the hosts of a computing environment (e.g., a cloud computing environment).” Each TEE instance being associated with a different memory encrypted region and set of one or more processes that is guarded by the respective host system correlates to the compute resources provided by the geographically dispersed nodes being protected at rest. The encrypted memory of TEE being provisioned for workloads through requests initiated by a tenant correlates to the vendable compute resources) by the trusted execution environment.
Bursell in view of Allen and Schulze does not explicitly teach:
wherein vendable compute resources provided by the geographically dispersed grid of nodes are protected in-flight and in-use by the trusted execution environment.
However, Yan teaches:
wherein vendable compute resources provided by the geographically dispersed grid of nodes are protected in-flight (Paragraphs 45-46, 101 and 103, “The VNF domain 110 comprises one or more virtualized network functions (VNFs), each of which is a virtualization of a network function in a legacy non-virtualized network. A VNF can be composed of multiple internal components. For example, one VNF can be deployed over multiple Virtual Machines (VMs), where each VM hosts a single component of the VNF. However, in other cases, the whole VNF can be deployed in a single VM as well. A VNF may be implemented as a software implementation (such as a software-only entity) of a network function, which is capable of running over the NFVI… The NFVI 120 is the totality of all hardware and software components that build up the environment in which VNFs are deployed, managed and executed. The NFVI can span across several locations, i.e. places where NFV Infrastructure-Point of Presence are operated… In order to protect data stored on shared storage resources or transmitted via shared network resources in virtualized networks, SFs about security computing and secure data communications can be deployed to support secure data transmission via the shared network resources… Trusted execution environment can be thus implemented by making the policies to ensure limited resource control required by execution isolation.” The one or more VNFs in the VNF domain that can span across several locations correlates to a geographically dispersed grid of nodes. The trusted execution environment being implemented using policies to ensure limited resource control on securely transmitted or shared network and storage resources correlates to vendable compute resources being protected in-flight), and in-use by the trusted execution environment (Paragraphs 45-46 and 102-103, “The VNF domain 110 comprises one or more virtualized network functions (VNFs), each of which is a virtualization of a network function in a legacy non-virtualized network. A VNF can be composed of multiple internal components. For example, one VNF can be deployed over multiple Virtual Machines (VMs), where each VM hosts a single component of the VNF. However, in other cases, the whole VNF can be deployed in a single VM as well. A VNF may be implemented as a software implementation (such as a software-only entity) of a network function, which is capable of running over the NFVI… The NFVI 120 is the totality of all hardware and software components that build up the environment in which VNFs are deployed, managed and executed. The NFVI can span across several locations, i.e. places where NFV Infrastructure-Point of Presence are operated… In order to protect new interfaces exposed by the interconnectivity among NFV end-to-end architectural components, e.g., hardware resources, VNFs, and management systems, the NFVI-TP can be configured to support trustworthy interconnectivity and cooperation among NFV architectural components. In this regard, the execution trust of VNFs can be ensured by adaptively adopting suitable trust management and control modes at NFVI, by the technology of trust management and QoS enhancement as discussed above. Execution policies can be ensured using remote attestation, trust sustainment and RTM technologies, as discussed above. The trust insurance component 223 in NFVI-TP can be configured to achieve an isolation of distinct VNF sets executing over the NFVI to ensure security and separation between these VNF sets. In this regard, policies of the VNF isolation can be registered as execution policies by the trust insurance component, and then it can make sure that the execution isolation is ensured by ensuring the fulfillment of the execution policies of related VNFs. The trust insurance component can further controls communications and callings happened inside the indicated sets of the executed VNFs based on its embedded policies/rules/criteria related to these actions if any. If isolation cannot be ensured and found by RTM, a warning will be raised by the NFVI-TP. For example, this can be implemented with the technology for execution of VNF Forwarding Graph and policies of a third party, as discussed above. Trusted execution environment can be thus implemented by making the policies to ensure limited resource control required by execution isolation.” The one or more VNFs in the VNF domain that can span across several locations correlates to a geographically dispersed grid of nodes. The trusted execution environment being implemented using execution policies utilizing remote attestation and trust sustainment to ensure security of resources correlates to the vendable compute resources being protected in use by the trusted execution environment).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Bursell with wherein vendable compute resources provided by the geographically dispersed grid of nodes are protected in-flight and in-use by the trusted execution environment as taught by Yan because virtualization layers can introduce security vulnerabilities. Protecting the data that is stored or transmitted ensures any components installed and executed are trustworthy. Various execution policies may also be used by trust insurance components to ensure execution isolation and fulfillment (Yan: paragraphs 100-103).
With regards to Claims 13 and 23, the system of Claim 4 performs the same steps as the method and manufacture of Claims 13 and 23 respectfully, and Claims 13 and 23 are therefore rejected using the same rationale set forth above in the rejection of Claim 4.
With regards to Claim 5, Bursell in view of Allen and Schulze teaches the system of Claim 1 above. Bursell in view of Allen and Schulze does not explicitly teach:
wherein the trusted execution environment further comprises Trusted Platform Module (TPM) attestation protocols implemented amongst the geographically dispersed grid of nodes.
However, Yan teaches:
wherein the trusted execution environment further comprises Trusted Platform Module (TPM) attestation protocols implemented amongst the geographically dispersed grid of nodes (Paragraphs 45-46, 53, 99, and 103, “The VNF domain 110 comprises one or more virtualized network functions (VNFs), each of which is a virtualization of a network function in a legacy non-virtualized network. A VNF can be composed of multiple internal components. For example, one VNF can be deployed over multiple Virtual Machines (VMs), where each VM hosts a single component of the VNF. However, in other cases, the whole VNF can be deployed in a single VM as well. A VNF may be implemented as a software implementation (such as a software-only entity) of a network function, which is capable of running over the NFVI… The NFVI 120 is the totality of all hardware and software components that build up the environment in which VNFs are deployed, managed and executed. The NFVI can span across several locations, i.e. places where NFV Infrastructure-Point of Presence are operated… The RTM 211 could be an independent module embedded in the trusted platform. In an embodiment, the RTM 211 could be embodied as a Trusted Platform Module (TPM) of Trusted Computing Platform with related software… In the first aspect, the NFVI-TP can provide appropriate security countermeasures for the NFV framework in the following points… Trusted execution environment can be thus implemented by making the policies to ensure limited resource control required by execution isolation.” The one or more VNFs in the VNF domain that can span across several locations correlates to a geographically dispersed grid of nodes. The trusted platform including a trusted execution environment which has an embedded TPM of trusted computing platform correlates to the trusted execution environment comprising TPM attestation protocols).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Bursell wherein the trusted execution environment further comprises Trusted Platform Module (TPM) attestation protocols implemented amongst the geographically dispersed grid of nodes as taught by Yan because TPMs can be designed to resist all software attacks and moderate hardware attacks. It also encloses a non-volatile storage, a set of platform configuration registers, and an engine for cryptographic operations. TPMs are a fundamental secure computing module establishing security and trust in digital computing, communications, and networking by providing secure booting and software installation, private data protection and digital rights management, and remote attestation based communications and collaboration (Yan: paragraph 53).
With regards to Claims 14 and 24, the system of Claim 5 performs the same steps as the method and manufacture of Claims 14 and 24 respectfully, and Claims 14 and 24 are therefore rejected using the same rationale set forth above in the rejection of Claim 5.
Claim(s) 19 and 26 are rejected under 35 U.S.C. 103 as being unpatentable over Bursell in view of Allen, Schulze and Chao et al. (U.S. Patent No. US 20180020024 A1), hereinafter “Chao.”
With regards to Claim 19, Bursell in view of Allen and Schulze teaches the method of Claim 10 above. Bursell in view of Allen and Schulze does not explicitly teach:
wherein the method is executed by one or more data processing systems based on computer-readable program code downloaded to the one or more data processing systems from a remote data processing system, and wherein the method further comprises:
metering usage of the computer-readable program code; and generating an invoice based on metering the usage of the computer-readable program code.
However, Chao teaches:
wherein the method is executed by one or more data processing systems based on computer-readable program code downloaded to the one or more data processing systems from a remote data processing system (Fig. 1, paragraphs 47-48, “The network server 102 may include any remote server that could be accessed via the Internet 104, such as by applications running on client devices 170… The computing system 101 may include standard network appliance, router and/or interface components 110 used to receive incoming data packets from remote servers 102, direct incoming data packets to the addressed client devices 170 via the enterprise network 122, receive outgoing data packets from client devices via the enterprise network and relay the outgoing data packets via the Internet 104.” The computing system receiving incoming data packets from remote servers and client devices corelates to one or more data processing systems from a remote data processing system), and wherein the method further comprises:
metering usage of the computer-readable program code (Paragraph 60, “The application analyzer component 160 may be configured to perform static and/or dynamic analysis operations to identify one or more behaviors and determine whether the identified behaviors are benign or non-benign. For example, for each activity in an http or user session on the web application (e.g., authentication of user, database access, memory read and write, network access, etc.), the application analyzer component 160 may perform any of a variety of operations, such as count the number of requests, extract triggered and embedded scripts in the request, extract associated variable and values, check authentication level, detect amount and type of data access to the database, record changes in system memory, record usage of computing resources, number of network accesses, detect type and amount of data sent through network, count the number of sensitive/interesting API or system calls, examine its corresponding scripts, call methods to unroll scripts code or operations/activities, examine the resulting source script code, recursively count the number of lines of code, recursively count the number of sensitive/interesting API or system calls, etc.” The application analyzer component performing static or dynamic analysis on various activity including the number of sensitive or interesting API or system calls correlates to metering usage of computer-readable program code); and generating an invoice based on metering the usage of the computer-readable program code (Paragraph 60, “The application analyzer component 160 may be configured to perform static and/or dynamic analysis operations to identify one or more behaviors and determine whether the identified behaviors are benign or non-benign. For example, for each activity in an http or user session on the web application (e.g., authentication of user, database access, memory read and write, network access, etc.), the application analyzer component 160 may perform any of a variety of operations, such as count the number of requests, extract triggered and embedded scripts in the request, extract associated variable and values, check authentication level, detect amount and type of data access to the database, record changes in system memory, record usage of computing resources, number of network accesses, detect type and amount of data sent through network, count the number of sensitive/interesting API or system calls, examine its corresponding scripts, call methods to unroll scripts code or operations/activities, examine the resulting source script code, recursively count the number of lines of code, recursively count the number of sensitive/interesting API or system calls, etc. The application analyzer component 160 may also be used to generate the activity transition graph for the given application that captures how the different activities (i.e., web pages) are linked to one another.” The application analyzer component performing static or dynamic analysis on various activity including the number of sensitive or interesting API or system calls and generating an activity transition graph correlates to generating an invoice based on metering the usage of the computer-readable program code).
Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Bursell with wherein the method is executed by one or more data processing systems based on computer-readable program code downloaded to the one or more data processing systems from a remote data processing system, and wherein the method further comprises: metering usage of the computer-readable program code; and generating an invoice based on metering the usage of the computer-readable program code as taught by Chao because tracking activity on the usage of computer-readable program code can be used to identify certain types of behaviors and whether they are benign or non-benign. Additional analysis can be done on the recorded data to identify and select high value target activities according to the use case and based on heuristics and outcome of the analysis (Chao: paragraphs 60-61).
With regards to Claim 26, the method of Claim 19 performs the same steps as the manufacture of Claim 26, and Claim 26 is therefore rejected using the same rationale set forth above in the rejection of Claim 19.
Prior Art Made of Record
The prior art made of record and not relied upon is considered pertinent to applicant’s disclosure.
Dailianas et al. (U.S. Patent No. US 20200314175 A1); teaching a method of regulating access of consumers to resources and services. The regulation occurs through a movement of consumers between different providers of a resource or service that includes cloud service providers. Moving consumers includes determining the cost of moving the consumer from a first to a second provider. The cost is compared to a cost and performance criteria associated with moving the consumer, where the cloud-based services may be priced as templates, reserved instances, or a combination.
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to SELINA HU whose telephone number is (571)272-5428. The examiner can normally be reached Monday-Friday 8:30-5:30.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Chat Do can be reached at (571) 272-3721. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
The publicPAIR and privatePAIR systems are no longer available. Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/SELINA ELISA HU/ Examiner, Art Unit 2193
/Chat C Do/Supervisory Patent Examiner, Art Unit 2193