DETAILED ACTION
Status of Claims
Claims 1 – 20 are pending.
Claims 1, 13, and 17 are independent.
This office action is Non-Final.
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 .
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claims 1 – 5, 8 –15, and 17 - 19 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Jeuk et al. (US Patent Application Publication No. 2019/0065278, hereinafter “Jeuk”).
As per claim 1 , Jeuk teaches a system, comprising:
a processor [controller 180, fig.1, 0016]; and
a non-transitory memory storing instructions, that when executed, cause the processor to: obtain, from a user, a request associated with a first division in a user application [0029: “…when a new tenant signs up for a specific service running in a container 114, the controller 180 may push a data structure to the server system 110 to set a tenant-specific storage policy that controls how the software package 116 interacts with a storage endpoint associated with the software package 116…“];
identify an operation policy associated with a configuration of the user application for the first division, the user application including a plurality of executors [virtual network functions(vNFs) 304, 0036] configured to provide a plurality of parameters associated with the configuration [0030: “…the service-ID may identify the particular service (which is running within a container) with a unique identifier (i.e., “0000002”), the tenant-ID may identify the particular tenant with another unique identifier (i.e., 12345678), and the set of policy information may define various storage aspects, such as whether the service should have read-access and/or write-access when running for the particular tenant, and an I/O rate for the service when running for the particular tenant. Thus, when a particular tenant wants a particular service to operate with read access, write access, and a low I/O-Rate, the tenant may specify these parameters to the controller and the controller may send the following data structure to the server system: [0000002: 12345678::{Read-Access: YES|Write-Access:YES|I/O-Rate: Low| . . . }]. The tenant-specific cgroup logic 128 may then add a policy to the tenant-specific cgroups 126 and, since the tenant-specific cgroups 126 can process tenant and service identifiers, the tenant-specific cgroups 126 can generate and enforce a tenant-specific policy at any containers within which the identified service is running. That is, the tenant-specific cgroups 126 may then apply the tenant-specific policy when the identified tenant is leveraging the identified service...”; 0036: “… controller 180 pushes out a tenant-specific storage policy to a container or virtual machine deployment of a specific application/service/micro-service while also assuring that the specific application/service/micro-service has access to resources required to satisfy the parameters of a tenant-specific policy. That is, the tenant-specific policies may be used as an input to other resources, like virtual network functions (vNFs) 304 and the resources (i.e., compute resources, network resources, storage resources, etc.) may react based on the policies to enable and/or assure that the policy requirements are met (i.e., vNFs can be optimized so that the storage policy is met from a network perspective through, for example, assuring low latency, high bandwidth paths)];
based at least in part on the operation policy of the first division, select one of the plurality of executors to respond to the request associated with the first division [0030, 0036:”… As mentioned, in at least some embodiments, controller 180 pushes out a tenant-specific storage policy to a container or virtual machine deployment of a specific application/service/micro-service while also assuring that the specific application/service/micro-service has access to resources required to satisfy the parameters of a tenant-specific policy. That is, the tenant-specific policies may be used as an input to other resources, like virtual network functions (vNFs) 304 and the resources (i.e., compute resources, network resources, storage resources, etc.) may react based on the policies to enable and/or assure that the policy requirements are met (i.e., vNFs can be optimized so that the storage policy is met from a network perspective through, for example, assuring low latency, high bandwidth paths). …”];
execute the user application using the selected one of the plurality of executors to generate a response to the request associated with the first division; and transmit the response to the request associated with the first division to the user [0014: “… More specifically, the techniques presented herein provide tenant-specific control groups(“cgroups”) that allow operational policies for a software package (i.e., a service, microservice or application) running within a container to be defined on a per-tenant basis. …Providing tenant-specific cgroups allows each of these operational policies to be reconstituted as a set of tenant-specific operational policies so that a container servicing multiple tenants can operate in accordance with operational policies that are customized on a per-tenant basis. For example, a storage policy that is typically applied to a container by its associated cgroup can be subdivided into, modified to include, or be entirely replaced with a set of tenant-specific storage policies. Then, the container can enforce different policies when different tenants leverage the service residing therein. Thus, the techniques presented herein essentially create containers with multitenant awareness…”; 0015: “…Moreover, when container-level cgroups are implemented as tenant-specific cgroups in accordance with the instant embodiments, tenant-specific operational policies (also referred to tenant-specific operational policies (also referred to herein as “policies,” for simplicity) can be easily and quickly shifted or changed for any tenant without any concerns that a change in policy might adversely affect other tenants utilizing the software package running within that container. Thus, over time, a tenant-specific policy (or sub-policy) can be dynamically updated and/or updated on-demand to accommodate the changing needs of a tenant and/or various external parameters (i.e., time of day, surges in demand, allocations of underlying resources, etc.) 0017: “…the techniques presented herein may assure that internal tenants (i.e., tenants internal to the private cloud) are provided with optimal performance that is customized to their needs(i.e., an engineer working on storage related development tasks may be afforded enhanced storage as compared to a human resource manager)…”; 0030 – 0031: “… the controller 180,which has pre-established relationships with various resources in the cloud environment, can inform the various resources of the policy to ensure that parameters of the tenant-specific policy are satisfied by the various resources.…”].
As per claim 2, Jeuk teaches the system of claim 1, wherein the processor is configured to: monitor the plurality of parameters associated with the configuration [0040 - 0042: “…Regardless of how the request is received at 512, the controller 180 eventually learns of the request and, in response, the controller 180 checks resource availability and updates the cgroups, at514 and 516, respectively. More specifically, at 514, the controller 180 checks the resource availability of at least one of compute resources 502, network resources 504, and storage resources 506. In some instances, the controller 180 only checks the necessary resources. … In some instances, this may entail monitoring a workload of the service, application, or microservice operating in accordance with the tenant-specific policy (i.e., by monitoring I/Os generated by the service, application, or microservice, as was described above in connection with FIG. 1). Additionally or alternatively, the underlying resources can be monitored. Still further, external parameters, such as time of day, overall usage of cloud resources, etc. can be monitored (i.e., by monitoring metadata).Based on this monitoring, the controller 180 (and/or the tenant-specific cgroup logic 128) may dynamically adjust or update the tenant-specific storage policies (via the tenant-specific cgroups), at 526, to optimize the tenant-specific policies based on the monitoring…”]; based on a change in the plurality of parameters, adjust the operation policy associated with the configuration of the user application for the first division, the adjustment reallocating at least one of: a plurality of computational resources [0040: compute resources 502]; a plurality of storage resources [0040: storage resources 506]; and a plurality of communication resources [0040: network resources 504].
As per claim 3, Jeuk teaches the system of claim 1, wherein the processor is configured to: obtain, from the user, a performance setting, wherein the performance setting identifies the operation policy associated with the configuration of the user application for the first division, wherein the plurality of executors are identified based at least in part on the performance setting; identify a subscription status associated with the user, wherein the subscription status associated with the user identifies a plurality of available executors from the plurality of executors; and select one of the plurality of available executors to respond to the request associated with the first division [0033: “…tenant-specific storage policies can be applied to objects (for object based storage endpoints) and can include information like the number of replicas, the performance of the drives, the geographical location and efficient data placement (i.e., based on projected ring size). That is, in at least some instances, the techniques presented herein provide fine-grained policy enforcement on a per-service (or per-microservice) and per-tenant basis. Consequently, a service running within a container dealing with objects on a tenant basis, can meet the specific requirements of each tenant which may allow enforcement of service-level agreements (SLAs) at a container level…”, 0061: “… in scenarios where different tenants pay different premiums for service and parameters of the service are defined through an SLA, the techniques presented herein may allow for SLA compliance within a container. Thus, when a tenant/user paying a premium demands and expects a better (and distinguished) storage service than someone who only pays for best effort storage access, the techniques presented herein may allow this expectation to be met at a service-level, even when the service is running within a container…”].
As per claim 4, Jeuk teaches the system of claim 1, wherein the processor is configured to: identify a subscription status associated with the user, wherein the subscription status associated with the user identifies a plurality of available executors from the plurality of executors; offer, to the user, a plurality of wait times: the plurality of wait times are associated with the first division; the plurality of wait times are set by the operation policy; and the plurality of wait times are offered based on the subscription status associated with the user; obtain, from the user, a selected wait time in the plurality of wait times; and based at least in part on the selected wait time, select one of the plurality of available executors to respond to the request associated with the first division [dynamic adjustments to SLA based on subscription, 0033, 0042, 0061].
As per claim 5, Jeuk teaches the system of claim 1, wherein the processor is configured to: based at least in part on the operation policy of the first division, select a second executor in the plurality of executors to respond to the request associated with the first division; and execute the user application using the selected one of the plurality of executors and the second executor in the plurality of executors to generate a response to the request associated with the first division, wherein the selected one of the plurality of executors applies a first utilization rate and the second executor in the plurality of executors applies a second utilization rate, the first utilization rate being different from the second utilization rate [rates for resource utilizations based on resource availability and SLA, 0019, 0025, 0033, 0042].
As per claim 8, Jeuk teaches the system of claim 1, wherein the processor is configured to: interrupt the execution of the user application; send, to a representative, a request to determine a raised issue; and receive, from the representative, an approval to resume the execution of the user application [error handling and interrupts, including sending messages to user/administrator are well known, 0053].
As per claim 9, Jeuk teaches the system of claim 1, wherein the processor is configured to: interrupt the execution of the user application; send, to a representative, a request to determine a raised issue; receive, from the representative, a denial to resume the execution of the user application; and terminate the execution of the user application[error handling and interrupts, including sending messages to user/administrator are well known, 0053].
As per claim 10, Jeuk teaches the system of claim 1, wherein the processor is configured to: maintain a job queue, wherein the job queue lists a plurality of requests; identify, from the operation policy, a job scheduling preference of the first division; and change the order of requests in the plurality of requests based on the job scheduling preference [0042: “…Based on this monitoring, the controller 180 (and/or the tenant-specific cgroup logic 128) may dynamically adjust or update the tenant-specific storage policies (via the tenant-specific cgroups), at526, to optimize the tenant-specific policies based on the monitoring. …”].
As per 11, Jeuk teaches the system of claim 1, wherein the processor is configured to: identify a turnaround time, wherein the turnaround time is one of the parameters in the plurality of parameters associated with the configuration; and based at least in part on the turnaround time, select one of the plurality of executors to respond to the request associated with the first division [performance (including turnaround time) based on SLA 0033, 0061].
As per claim 12, Jeuk teaches the system of claim 11, wherein the processor is configured to: determine that the turnaround time is less than a scheduled wait time; and based at least in part on the determination that the turnaround time is less than the scheduled wait time, select one of the plurality of executors to respond to the request associated with the first division [performance (including turnaround time) based on SLA 0033, 0042, 0061].
As per claim 13, Jeuk teaches a computer-implemented method, comprising: obtaining, from a user, a request associated with a first division in a user application;
identifying an operation policy associated with a configuration of the user application for the first division, the user application including a plurality of executors configured to provide a plurality of parameters associated with the configuration [0029 - 0030: “…when a new tenant signs up for a specific service running in a container 114, the controller 180 may push a data structure to the server system 110 to set a tenant-specific storage policy that controls how the software package 116 interacts with a storage endpoint associated with the software package 116…“, 0036: vNFs];
based at least in part on the operation policy of the first division, selecting one of the plurality of executors to respond to the request associated with the first division [0014, 0015, 0030 – 0031: “… the controller 180,which has pre-established relationships with various resources in the cloud environment, can inform the various resources of the policy to ensure that parameters of the tenant-specific policy are satisfied by the various resources.…”];
executing the user application using the selected one of the plurality of executors to generate a response to the request associated with the first division; and transmitting the response to the request associated with the first division to the user [0030, 0031, 0036].
As per claim 14, Jeuk teaches the method of claim 13, further comprising: monitoring the plurality of parameters associated with the configuration; based on a change in the plurality of parameters, adjusting the operation policy associated with the configuration of the user application for the first division, the adjustment reallocating at least one of: a plurality of computational resources; a plurality of storage resources; and a plurality of communication resources [0040 – 0042: monitoring and adjusting resources ].
As per claim 15, Jeuk teaches the method of claim 13, further comprising: obtaining, from the user, a performance setting, wherein the performance setting identifies the operation policy associated with the configuration of the user application for the first division, wherein the plurality of executors are identified based at least in part on the performance setting; identifying a subscription status associated with the user, wherein the subscription status associated with the user identifies a plurality of available executors from the plurality of executors; and selecting one of the plurality of available executors to respond to the request associated with the first division [0033: “…tenant-specific storage policies can be applied to objects (for object based storage endpoints) and can include information like the number of replicas, the performance of the drives, the geographical location and efficient data placement (i.e., based on projected ring size). That is, in at least some instances, the techniques presented herein provide fine-grained policy enforcement on a per-service (or per-microservice) and per-tenant basis. Consequently, a service running within a container dealing with objects on a tenant basis, can meet the specific requirements of each tenant which may allow enforcement of service-level agreements (SLAs) at a container level…”, 0061: “… in scenarios where different tenants pay different premiums for service and parameters of the service are defined through an SLA, the techniques presented herein may allow for SLA compliance within a container. Thus, when a tenant/user paying a premium demands and expects a better (and distinguished) storage service than someone who only pays for best effort storage access, the techniques presented herein may allow this expectation to be met at a service-level, even when the service is running within a container…”]..
As per claim 17, Jeuk teaches a non-transitory computer readable medium having instructions stored thereon, wherein the instructions, when executed by at least one processor, cause at least one device to perform operations comprising:
obtaining, from a user, a request associated with a first division in a user application; identifying an operation policy associated with a configuration of the user application for the first division, the user application including a plurality of executors configured to provide a plurality of parameters associated with the configuration [0029 - 0030: “…when a new tenant signs up for a specific service running in a container 114, the controller 180 may push a data structure to the server system 110 to set a tenant-specific storage policy that controls how the software package 116 interacts with a storage endpoint associated with the software package 116…“, 0036: vNFs];
based at least in part on the operation policy of the first division, selecting one of the plurality of executors to respond to the request associated with the first division; executing the user application using the selected one of the plurality of executors to generate a response to the request associated with the first division [0014, 0015, 0030 – 0031: “… the controller 180,which has pre-established relationships with various resources in the cloud environment, can inform the various resources of the policy to ensure that parameters of the tenant-specific policy are satisfied by the various resources.…”];; and
transmitting the response to the request associated with the first division to the user [0030, 0031, 0036].
As per claim 18, Jeuk teaches the non-transitory computer readable medium of claim 17, further comprising instructions stored thereon that, when executed by at least one processor, further cause the device to perform operations comprising: monitoring the plurality of parameters associated with the configuration; based on a change in the plurality of parameters, adjusting the operation policy associated with the configuration of the user application for the first division, the adjustment reallocating at least one of: a plurality of computational resources; a plurality of storage resources; and a plurality of communication resources [0040 – 0042: monitoring and adjusting resources ].
As per claim 19, Jeuk teaches the non-transitory computer readable medium of claim 17, further comprising instructions stored thereon that, when executed by at least one processor, further cause the device to perform operations comprising: obtaining, from the user, a performance setting, wherein the performance setting identifies the operation policy associated with the configuration of the user application for the first division, wherein the plurality of executors are identified based at least in part on the performance setting; identifying a subscription status associated with the user, wherein the subscription status associated with the user identifies a plurality of available executors from the plurality of executors; and selecting one of the plurality of available executors to respond to the request associated with the first division [0033: “…tenant-specific storage policies can be applied to objects (for object based storage endpoints) and can include information like the number of replicas, the performance of the drives, the geographical location and efficient data placement (i.e., based on projected ring size). That is, in at least some instances, the techniques presented herein provide fine-grained policy enforcement on a per-service (or per-microservice) and per-tenant basis. Consequently, a service running within a container dealing with objects on a tenant basis, can meet the specific requirements of each tenant which may allow enforcement of service-level agreements (SLAs) at a container level…”, 0061: “… in scenarios where different tenants pay different premiums for service and parameters of the service are defined through an SLA, the techniques presented herein may allow for SLA compliance within a container. Thus, when a tenant/user paying a premium demands and expects a better (and distinguished) storage service than someone who only pays for best effort storage access, the techniques presented herein may allow this expectation to be met at a service-level, even when the service is running within a container…”].
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.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 6, 7, 16 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Jeuk et al. (US Patent Application Publication No. 2019/0065278, hereinafter “Jeuk”), in view of Tutar et al. (US Patent No. 10,824, 922, hereinafter “Tutar”.)
As per claim 6, Jeuk teaches the system of claim 1. However, Jeuk does not teach “… wherein the processor is configured to: obtain, from the user, a reference image, the reference image representing a product; obtain, from the user, a query, the query comprising: a string representing the product; and a set of conditions; determine a set of recommended items based on a matching score, the matching score determined by the string representing the product and the reference image, wherein each item in the set of recommended items: fulfills the set of conditions; has an item matching score; and the item matching score is above a predetermined threshold; and transmit, to the user, the set of recommended items…”.
Tutar is cited to teach similarity detection methods and systems are that utilize a convolutional neural network model to jointly learn string matching and semantic textual similarity as an image recognition solution. Tutar improves the teachings of Jeuk, as explicitly teaching a type of application that can be implements on the servers.
As per claim 6, Tutar further teaches … wherein the processor is configured to: obtain, from the user, a reference image, the reference image representing a product; obtain, from the user, a query, the query comprising: a string representing the product; and a set of conditions; determine a set of recommended items based on a matching score, the matching score determined by the string representing the product and the reference image, wherein each item in the set of recommended items: fulfills the set of conditions; has an item matching score; and the item matching score is above a predetermined threshold; and transmit, to the user, the set of recommended items [similarity detection system 120, fig. 1, claim 1]. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention as Tutar improves the teachings of Jeuk by explicitly teaching a type of application that can be implemented on the servers.
As per claim 7, Tutar teaches the system of claim 6, wherein the set of recommended items are transmitted to the user based on the item matching score of each item in the set of recommended items [col. 7, lines 5 – 50: recommendations to the user].
As per claim 161, Jeuk teaches the method of claim 13, wherein Tutar further teaches the method comprising: obtaining, from the user, a reference image, the reference image representing a product; obtaining, from the user, a query, the query comprising: a string representing the product; and a set of conditions; determining a set of recommended items based on a matching score, the matching score determined by the string representing the product and the reference image, wherein each item in the set of recommended items: fulfills the set of conditions; has an item matching score; and the item matching score is above a predetermined threshold; and transmitting, to the user, the set of recommended items [similarity detection system 120, fig. 1, claim 1].
As per claim 20, Jeuk teaches the non-transitory computer readable medium of claim 17, wherein Tutar further teaches the method comprising instructions stored thereon that, when executed by at least one processor, further cause the device to perform operations comprising: obtaining, from the user, a reference image, the reference image representing a product; obtaining, from the user, a query, the query comprising: a string representing the product; and a set of conditions; determining a set of recommended items based on a matching score, the matching score determined by the string representing the product and the reference image, wherein each item in the set of recommended items: fulfills the set of conditions; has an item matching score; and the item matching score is above a predetermined threshold; and transmitting, to the user, the set of recommended items [similarity detection system 120, fig. 1, claim 1].
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Bankole; Kalonji K. et al. (US Patent Application Publication No. 2016/0162286 A1) “Managing User Access to Alternative Versions of a Particular Function of a Software Product From Within a Current Version of the Software Product” is cited to teach for a software product delivered as a hosted service from a host, the host delivers, to a single user interface, a current version of the software product comprising one or more selectable functions of the current version of the software product, wherein the current version of the software product is one version of multiple separate versions of the software product. The host updates the single user interface to display at least one selectable previous version function from at least one previous version of the separate versions of the software product. In response to receiving a user selection within the single user interface to access a particular selectable previous version function, the host delivers the functionality of the particular selectable previous version function from a particular previous version of the software product within the single user interface for the current version of the software product.
Ravi; Gunupuree et al. (US Patent Application Publication No. 2014/0032531 A1) “System and Method for a Service Metering Framework in a Network Environment” is cited to teach a method that includes causing generation of a metered record associated with a metering event of an application executed within a cloud-based computing system, the metered record including a metering attribute and a corresponding value, the corresponding value being determined substantially simultaneous to a runtime execution of the application, and facilitating searching for the metered record based on the metering attribute and the corresponding value of the metering attribute. In specific embodiments, the metered record is communicated using a REpresentational State Transfer (REST) Application Programming Interface (API). In an example embodiment, the notification of the metering event can be received by any one of a REST API, a Java Messaging Service listener, an Extensible Messaging and Presence Protocol (XMPP) listener, or a metering plugin.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to TERRELL S JOHNSON whose telephone number is (571)270-3485. The examiner can normally be reached 10AM-7PM EST M-F.
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, Jaweed Abbaszadeh can be reached at 571-270-1640. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
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.
/TERRELL S JOHNSON/Primary Examiner, Art Unit 2176
1 The examiner incorporates the detailed individual discussion of the prior art reference as set forth in claim 6 hereinabove to address the limitations of claims 16 and 20.