DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claims 1-20 are cancelled.
Claims 21-40 are pending in this office action.
Response to Arguments
Applicant's arguments filed 04/20/2026 have been fully considered but they are not persuasive.
The double patenting is maintained as acknowledged by applicant’s representative and argument A, B, C and D.
Applicant’s argument:
-Klein does not disclose, teach, or suggest a method that includes, inter alia, receiving a description of a plurality of AVC devices in an AVC setup, wherein the description comprises operational configuration or characteristics of the plurality of AVC devices, and specifying, via a resource allocator configured to use the description of the operational configuration or characteristics of the plurality of AVC devices…..
-Nowhere does Klein teach or suggest that the service launch controller specifies, via a resource allocator that is configured to use a description of the operational configuration or characteristics of the plurality of AVC devices, a first resource allocation for a remote computing environment based on the description of the operational configuration or characteristics of the plurality of AVC devices…….
-Further, Klein does not teach or suggest evaluating based on results from an AVC compiler whether the first resource allocation is sufficient for the plurality of AVC devices based on the first projected performance of the plurality of AVC devices. Klein is silent regarding use of an AVC compiler, let alone evaluating based on results from an AVC compiler whether the first resource allocation is sufficient as set forth in Applicant's claims. Wu also does not correct these deficiencies in Klein. The only teaching of such a configuration is provided by Applicant's disclosure……
-Wu also does not disclose evaluating based on results from an AVC compiler whether a first resource allocation is sufficient, and if not sufficient, allocate additional resources to specify a second resource allocation, and then recompiling via the AVC compiler the plurality of AVC devices with the second resource allocation, which includes simulating a second projected performance of the plurality of AVC devices in the AVC setup with the second resource allocation.
Examiner’s response:
Klein is directed to allocating resources such as virtual machine for conference such as :media services(audio and video): the request is for services that carry real-time medias stream, The request is for setting up such virtual machine and launching it to fulfill such request:
[0015]“Referring back to the illustration of FIG. 1A, the service launch controller 102 can be adapted to receive a request from a client device 110 (e.g., a computer, a smartphone, a tablet, a server, etc.) for media services (e.g., a teleconferencing service, media streaming services, etc.). The client device 110 can provide rules, codes, instructions, and/or other informative information to the service launch controller 102 to describe the services requested. ”;
Above is the description of the virtual machines.
Now in order to fulfill the request the , certain virtual machine(application and hardware) are allocated for the request and Because of performance issue, the determined/identified services(setup) virtual machines are constrained to performance such as Qos, that is testing/simulation/evaluating:
[0016]“When hardware resources in proximity to the requesting client device 110 are identified, the service launch controller 102 can perform testing to determine if such resources can provide the requesting client device 110 a desirable QoS to the client device 110”;
If the performance is not as expected, new resources are identified, but if the performance as expected, the services is launched and provided to the client:
[0016]“If so, a selective forwarding unit 104 is launched. Otherwise, other resources in the server cloud 100 (at perhaps a different location) can be identified by the service launch controller 102 and QoS testing can be performed to verify that these resources can provide adequate services to the requesting client device 110”;
Wu in the other hand , receive a load as a request, the request describes metrics computing resources that need to be allocated:
[0013] In the example arrangement discussed herein, in the virtual computing environment allocating instantiations of computing resources based on a computing metric of a primary application for execution on the instantiated computing resources, a method for increasing allocated computing resources includes receiving a load metric indicative of an additional load on an initial computing instantiation, such that the load metric defines a measure of additional computing resources responsive to the additional load”,
For any additional load to the initial identified resources, a request for performance evaluation is executed(testing, simulation and evaluation) to check if the resources can handle such load to determine an adequate configuration(Fig. 4).:
[0058]“ his involves, at step 308 determining, based on the impact analysis of a current state of the virtualization instance 150 and the performance shortfall, a revised configuration 150' having sufficient computing resources for handling a true computing demand including the performance shortfall, such that the current state includes an increase in computing demand beyond the initial configuration. Thus, performing the impact analysis includes determining, based on the initial configuration and the performance shortfall, an extrinsic load indicative of additional computing resources for handling a current computing load over the initial configuration 150'. The extrinsic load includes additional loads beyond the load imposed by the primary application 162 for which the initial computing instantiation was configured to handle based on the initial load, as disclosed at step 309.”
But the applicant’s representative emphasizes in his argument for example compiler, based on the result: in the specification the compiler can exercise as a function of:
[0042] “The AVC compiler can organize the AVC setup into a configuration expected to maximize performance and/or minimize resource use”;
[0043] “The AVC compiler can process the AVC setup to accumulate the resources required for the various equipment and components of that AVC setup.”;
In Klein the , the resource allocation in order to fulfill the request ia an allocation on resource within the cloud, and testing such resource for performance issue is also based on the result of simulation it may indicates an expected or fail performance and may or may not be allocated [0016].
In the other hand Wu, and based on load request asset of computing resources is allocated based on performance. And if additional resource are needed based on performance degradation or additional load such resource are added.(figg 7-9).
Double Patenting
The non-statutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A non-statutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on non-statutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The filing of a terminal disclaimer by itself is not a complete reply to a non-statutory double patenting (NSDP) rejection. A complete reply requires that the terminal disclaimer be accompanied by a reply requesting reconsideration of the prior Office action. Even where the NSDP rejection is provisional the reply must be complete. See MPEP § 804, subsection I.B.1. For a reply to a non-final Office action, see 37 CFR 1.111(a). For a reply to final Office action, see 37 CFR 1.113(c). A request for reconsideration while not provided for in 37 CFR 1.113(c) may be filed after final for consideration. See MPEP §§ 706.07(e) and 714.13.
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The actual filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based e-Terminal Disclaimer may be filled out completely online using web-screens. An e-Terminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about e-Terminal Disclaimers, refer to www.uspto.gov/patents/apply/applying-online/eterminal-disclaimer.
Claims 21, 29, 33 rejected on the ground of non-statutory double patenting as being unpatentable over claims 8 and 10 of U.S. Patent No. 12,014,200 in view of Klein et al US20160241604A1.Bald limitation constitute the differences.
Application:18/731235
Patent: 12,014, 200
21. A method for operating an audio, video, control (AVC) system, the method comprising:
receiving a description of a plurality of AVC devices; Wherein the description comprises operational configuration or characteristics of the plurality of AVC devices;
specifying, via a resource allocator configured to use the description of the plurality of AVC devices, a first resource allocation for a remote computing environment based on the description of the plurality of AVC devices,
the remote computing environment comprising a plurality of virtual machines, wherein each of the plurality of AVC devices corresponds to a respective one of the plurality of virtual machines;
Wherein each of the plurality of virtual machines includes an AVC real-time operating system (RTOS) configured to perform real-time processing for the AVC setup
compiling, via an AVC compiler using the description of the plurality of AVC devices and the first resource allocation, the plurality of AVC devices within the remote computing environment with the first resource allocation, wherein compiling the plurality of AVC devices includes simulating a first projected performance of the plurality of AVC devices in the AVC setup with the first resource allocation;
evaluating based on the results from the AVC compiler whether the first resource allocation is sufficient for the plurality of AVC devices based on the first projected performance of the plurality of AVC devices; and in response to a determination that the first resource allocation is not sufficient: allocating additional resources to the remote computing environment to specify a second resource allocation for the remote computing environment;
and recompiling via the AVC compiler the plurality of AVC devices within the remote computing environment with the second resource allocation. Wherein recompiling the plurality of AVC devices includes simulating a second projected performance of the plurality of AVC devices In the AVC setup with the second resource allocation;
8. (Currently Amended) The method of claim 1, wherein establishing at least the first virtual machine comprises assigning host OS resources to the first virtual machine by:
receiving a description of the first AVC setup group that identifies the one or more AVC devices established in the first AVC setup group, including the first remote AVC device;
specifying an initial resource allocation as a current resource allocation for the first AVC setup group;
and until an expected performance level for the current resource allocation reaches at least a threshold performance level - using a complier with the current resource allocation to organize the first AVC setup group into a configuration;
determining the expected performance level for the configuration; and when the expected performance level is less than the threshold performance level, incrementing the current resource allocation.
10. (Previously Presented) The method of claim 8, wherein incrementing the current resource allocation comprises allocating one or more additional CPU cores to the current resource allocation for the first AVC setup group.
Independent Claim 29(CRM)
Dependents claim 8 and 10(method)
Independent claim 33
Dependent claim 8 and 10
The patent does not explicitly disclose:
the remote computing environment comprising a plurality of virtual machines, wherein each of the plurality of AVC devices corresponds to a respective one of the plurality of virtual machines, wherein each of the plurality of virtual machines includes an AVC real-time operating system (RTOS) configured to perform real-time processing for the AVC setup;
and recompiling via the AVC compiler the plurality of AVC devices within the remote computing environment with the second resource allocation. Wherein recompiling the plurality of AVC devices includes simulating a second projected performance of the plurality of AVC devices In the AVC setup with the second resource allocation;
Klein discloses:
the remote computing environment comprising a plurality of virtual machines:
[0013] “The hardware resources of the server cloud 100 can be vast, including but not limited to, communication resources (e.g., switches, routers, etc.) and computing resources (e.g., servers, storage devices, etc.) which can be customized to generate one or more instances of a virtual machine that performs certain functions based on software applications installed on the virtual machine by the service launch controller 102”;
wherein each of the plurality of AVC devices corresponds to a respective one of the plurality of virtual machines:
[0014] “In another embodiment, the hypervisor can launch pre-configured virtual machines, which are launched with pre-installed software applications that perform desired function(s). With a server cloud 100 architecture, the service launch controller 102 can launch multiple virtual machines that can provide services to requesting client devices on an on-demand basis”;
Wherein each of the plurality of virtual machines includes an AVC real-time operating system (RTOS) configured to perform real-time processing for the AVC setup:
[0013]“The hardware resources of the server cloud 100 can be vast, including but not limited to, communication resources (e.g., switches, routers, etc.) and computing resources (e.g., servers, storage devices, etc.) which can be customized to generate one or more instances of a virtual machine that performs certain functions based on software applications installed on the virtual machine by the service launch controller 102. The applications can be an operating system and/or specialized software applications executed by the operating system.”;
[0015]” The service launch controller 102 can process this information and thereby launch one or more instances of a virtual machine (depicted as a “selective forwarding unit 104”) configured to provide the client device 110 the services requested over a real-time transport protocol (RTP) for carrying media streams in conjunction with an RTP control protocol (RTCP)”;
and recompiling via the AVC compiler the plurality of AVC devices within the remote computing environment with the second resource allocation. Wherein recompiling the plurality of AVC devices includes simulating a second projected performance of the plurality of AVC devices In the AVC setup with the second resource allocation;
[0017] “Depending on the resources of the selective forwarding unit 104, additional client devices in a vicinity of the requesting client device can also be served by the selective forwarding unit 104 as depicted in FIG. 1B by reference 112. If additional resources are required to service more than one client device, the service launch controller 102 can direct a hypervisor managing the resources of the selective forwarding unit 104 to augment resources of the selective forwarding unit 104 with additional CPUs, additional memory, additional routers, switches, etc”;
[0016] “ When hardware resources in proximity to the requesting client device 110 are identified, the service launch controller 102 can perform testing to determine if such resources can provide the requesting client device 110 a desirable QoS to the client device 110. If so, a selective forwarding unit 104 is launched. Otherwise, other resources in the server cloud 100 (at perhaps a different location) can be identified by the service launch controller 102 and QoS testing can be performed to verify that these resources can provide adequate services to the requesting client device 110.”;
It would have obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to combine the teachings of cited references. One of ordinary skill in the art before the effective filling date of the claimed invention would have been motivated to incorporate the teachings of Klein into teachings of the patent to dynamically scale the resources for achieving a pre-determined performance. an initial configuration specifies a combination of computing resources, primarily defined by a number of processors, a processor speed, and available memory (RAM). Disk space may also be specified. This initial configuration is deemed to handle the initial computing load presented by the target (primary) application in an unburdened system. The unburdened system defines a "pure" installation for handling only the target application, without any other applications or extrinsic loads that consume computing resources and thus diminish a true performance metric that defines the number of operations actually achievable as the initial configuration becomes burdened with additional tasks.[Wu 0031].
Claims 21, 29, 33 rejected on the ground of non-statutory double patenting as being unpatentable over claims 8 and 10 of U.S. Patent No. 11,561,813 in view of Klein et al US20160241604A1.Bald limitation constitute the differences.
Application:18/731235
Patent:11,561,813
21. A method for operating an audio, video, control (AVC) system, the method comprising:
receiving a description of a plurality of AVC devices; Wherein the description comprises operational configuration or characteristics of the plurality of AVC devices;
specifying, via a resource allocator configured to use the description of the plurality of AVC devices, a first resource allocation for a remote computing environment based on the description of the plurality of AVC devices,
the remote computing environment comprising a plurality of virtual machines, wherein each of the plurality of AVC devices corresponds to a respective one of the plurality of virtual machines;
Wherein each of the plurality of virtual machines includes an AVC real-time operating system (RTOS) configured to perform real-time processing for the AVC setup
compiling, via an AVC compiler using the description of the plurality of AVC devices and the first resource allocation, the plurality of AVC devices within the remote computing environment with the first resource allocation, wherein compiling the plurality of AVC devices includes simulating a first projected performance of the plurality of AVC devices with the first resource allocation;
evaluating based on the results from the AVC compiler whether the first resource allocation is sufficient for the plurality of AVC devices based on the projected performance of the plurality of AVC devices;
and in response to a determination that the first resource allocation is not sufficient: allocating additional resources to the remote computing environment to specify a second resource allocation for the remote computing environment;
and recompiling via the AVC compiler the plurality of AVC devices within the remote computing environment with the second resource allocation. Wherein recompiling the plurality of AVC devices includes simulating a second projected performance of the plurality of AVC devices In the AVC setup with the second resource allocation
8. The method of claim 1, wherein establishing at least the first virtual machine comprises assigning host OS resources to the first virtual machine by:
receiving a description of the first AVC setup group that identifies the one or more AVC devices established in the first AVC setup group, including the first remote AVC device;
specifying an initial resource allocation as a current resource allocation for the first AVC setup group;
and until an expected performance level for the current resource allocation reaches at least a threshold performance level using a complier with the current resource allocation to organize the first AVC setup group into a configuration;
determining the expected performance level for the configuration;
and when the expected performance level is less than the threshold performance level, incrementing the current resource allocation.10. The method of claim 8, wherein incrementing the current resource allocation comprises allocating one or more additional CPU cores to the current resource allocation for the first AVC setup group.
Independent Claim 29(CRM)
Dependents claim 8 and 10 (method)
Independent Claim 33
Dependents claim 8 and 10
The patent does not explicitly disclose:
the remote computing environment comprising a plurality of virtual machines, wherein each of the plurality of AVC devices corresponds to a respective one of the plurality of virtual machines;
Wherein each of the plurality of virtual machines includes an AVC real-time operating system (RTOS) configured to perform real-time processing for the AVC setup:
and recompiling via the AVC compiler the plurality of AVC devices within the remote computing environment with the second resource allocation. Wherein recompiling the plurality of AVC devices includes simulating a second projected performance of the plurality of AVC devices In the AVC setup with the second resource allocation;
Klein discloses:
the remote computing environment comprising a plurality of virtual machines:
[0013] “The hardware resources of the server cloud 100 can be vast, including but not limited to, communication resources (e.g., switches, routers, etc.) and computing resources (e.g., servers, storage devices, etc.) which can be customized to generate one or more instances of a virtual machine that performs certain functions based on software applications installed on the virtual machine by the service launch controller 102”;
wherein each of the plurality of AVC devices corresponds to a respective one of the plurality of virtual machines:
[0014] “In another embodiment, the hypervisor can launch pre-configured virtual machines, which are launched with pre-installed software applications that perform desired function(s). With a server cloud 100 architecture, the service launch controller 102 can launch multiple virtual machines that can provide services to requesting client devices on an on-demand basis”;
Wherein each of the plurality of virtual machines includes an AVC real-time operating system (RTOS) configured to perform real-time processing for the AVC setup:
[0013]“The hardware resources of the server cloud 100 can be vast, including but not limited to, communication resources (e.g., switches, routers, etc.) and computing resources (e.g., servers, storage devices, etc.) which can be customized to generate one or more instances of a virtual machine that performs certain functions based on software applications installed on the virtual machine by the service launch controller 102. The applications can be an operating system and/or specialized software applications executed by the operating system.”;
[0015]” The service launch controller 102 can process this information and thereby launch one or more instances of a virtual machine (depicted as a “selective forwarding unit 104”) configured to provide the client device 110 the services requested over a real-time transport protocol (RTP) for carrying media streams in conjunction with an RTP control protocol (RTCP)”;
And recompiling via the AVC compiler the plurality of AVC devices within the remote computing environment with the second resource allocation. Wherein recompiling the plurality of AVC devices includes simulating a second projected performance of the plurality of AVC devices In the AVC setup with the second resource allocation;
[0017] “Depending on the resources of the selective forwarding unit 104, additional client devices in a vicinity of the requesting client device can also be served by the selective forwarding unit 104 as depicted in FIG. 1B by reference 112. If additional resources are required to service more than one client device, the service launch controller 102 can direct a hypervisor managing the resources of the selective forwarding unit 104 to augment resources of the selective forwarding unit 104 with additional CPUs, additional memory, additional routers, switches, etc”;
[0016] “ When hardware resources in proximity to the requesting client device 110 are identified, the service launch controller 102 can perform testing to determine if such resources can provide the requesting client device 110 a desirable QoS to the client device 110. If so, a selective forwarding unit 104 is launched. Otherwise, other resources in the server cloud 100 (at perhaps a different location) can be identified by the service launch controller 102 and QoS testing can be performed to verify that these resources can provide adequate services to the requesting client device 110.”;
It would have obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to combine the teachings of cited references. One of ordinary skill in the art before the effective filling date of the claimed invention would have been motivated to incorporate the teachings of Klein into teachings of the patent to dynamically scale the resources for achieving a pre-determined performance. an initial configuration specifies a combination of computing resources, primarily defined by a number of processors, a processor speed, and available memory (RAM). Disk space may also be specified. This initial configuration is deemed to handle the initial computing load presented by the target (primary) application in an unburdened system. The unburdened system defines a "pure" installation for handling only the target application, without any other applications or extrinsic loads that consume computing resources and thus diminish a true performance metric that defines the number of operations actually achievable as the initial configuration becomes burdened with additional tasks.[Wu 0031].
Claims 21, 29, 33 provisionally rejected on the ground of non-statutory double patenting as being unpatentable over claims (23 and 27), 33, 40 of co-pending Application No.17/540,157 in view of Klein et al US20160241604A1 .This is a provisional non-statutory double patenting rejection. Bald limitation constitute the differences.
Application:18/731,235
Co-pending application:17/540,157
21. (New) A method for operating an audio, video, control (AVC) system, the method comprising:
receiving a description of a plurality of AVC devices; Wherein the description comprises operational configuration or characteristics of the plurality of AVC devices;
the remote computing environment comprising a plurality of virtual machines, wherein each of the plurality of AVC devices corresponds to a respective one of the plurality of virtual machines;
Wherein each of the plurality of virtual machines includes an AVC real-time operating system (RTOS) configured to perform real-time processing for the AVC setup
compiling, via an AVC compiler using the description of the plurality of AVC devices and the first resource allocation, the plurality of AVC devices within the remote computing environment with the first resource allocation, wherein compiling the plurality of AVC devices includes simulating a first projected performance of the plurality of AVC devices with the first resource allocation;
evaluating based on the results from the AVC compiler whether the first resource allocation is sufficient for the plurality of AVC devices based on the first projected performance of the plurality of AVC device;
and in response to a determination that the first resource allocation is not sufficient: allocating additional resources to the remote computing environment to specify a second resource allocation for the remote computing environment; and recompiling via the AVC compiler the plurality of AVC devices within the remote computing environment with the second resource allocation.
Wherein recompiling the plurality of AVC devices includes simulating a second projected performance of the plurality of AVC devices In the AVC setup with the second resource allocation
specifying, via a resource allocator configured to use the description of the plurality of AVC devices, a first resource allocation for a remote computing environment based on the description of the plurality of AVC devices
23. (Previously Presented) The method of claim 21 wherein allocating resources to the virtual machine comprises:
receiving the description of the AVC setup group, wherein the description of the AVC setup group is either indicated by a user or automatically generated based on the established AVC setup group;
compiling the AVC setup group and the virtual machine with an initial resource allocation, wherein compiling the AVC setup group and the virtual machine includes projecting a performance of the virtual machine with the initial resource allocation in processing the routing signals from the two or more AVC equipment devices in the AVC setup group;
and determining whether the initial resource allocation is sufficient based on the projected performance, wherein: when the initial resource allocation is sufficient, allocating resources to the virtual machine further includes saving the initial resource allocation,
and when the initial resource allocation is not sufficient, allocating resources to the virtual machine further includes incrementally increasing the initial resource allocation to a second resource allocation and recompiling the AVC setup group and the virtual machine with the second resource allocation.
27. (Previously Presented) The method of claim 23 wherein the initial resource allocation is specified based at least partially on the description of the AVC setup group.
Independent Claim 29
Independent Claim 33
Independent Claim 33(method).
Independent Claim 40(system)
The co-pending application does not explicitly disclose:
the remote computing environment comprising a plurality of virtual machines, wherein each of the plurality of AVC devices corresponds to a respective one of the plurality of virtual machines;
Wherein each of the plurality of virtual machines includes an AVC real-time operating system (RTOS) configured to perform real-time processing for the AVC setup:
Wherein recompiling the plurality of AVC devices includes simulating a second projected performance of the plurality of AVC devices In the AVC setup with the second resource allocation;
Klein discloses:
the remote computing environment comprising a plurality of virtual machines:
[0013] “The hardware resources of the server cloud 100 can be vast, including but not limited to, communication resources (e.g., switches, routers, etc.) and computing resources (e.g., servers, storage devices, etc.) which can be customized to generate one or more instances of a virtual machine that performs certain functions based on software applications installed on the virtual machine by the service launch controller 102”;
wherein each of the plurality of AVC devices corresponds to a respective one of the plurality of virtual machines:
[0014] “In another embodiment, the hypervisor can launch pre-configured virtual machines, which are launched with pre-installed software applications that perform desired function(s). With a server cloud 100 architecture, the service launch controller 102 can launch multiple virtual machines that can provide services to requesting client devices on an on-demand basis”;
Wherein each of the plurality of virtual machines includes an AVC real-time operating system (RTOS) configured to perform real-time processing for the AVC setup:
[0013]“The hardware resources of the server cloud 100 can be vast, including but not limited to, communication resources (e.g., switches, routers, etc.) and computing resources (e.g., servers, storage devices, etc.) which can be customized to generate one or more instances of a virtual machine that performs certain functions based on software applications installed on the virtual machine by the service launch controller 102. The applications can be an operating system and/or specialized software applications executed by the operating system.”;
[0015]” The service launch controller 102 can process this information and thereby launch one or more instances of a virtual machine (depicted as a “selective forwarding unit 104”) configured to provide the client device 110 the services requested over a real-time transport protocol (RTP) for carrying media streams in conjunction with an RTP control protocol (RTCP)”;
Wherein recompiling the plurality of AVC devices includes simulating a second projected performance of the plurality of AVC devices In the AVC setup with the second resource allocation;
[0017] “Depending on the resources of the selective forwarding unit 104, additional client devices in a vicinity of the requesting client device can also be served by the selective forwarding unit 104 as depicted in FIG. 1B by reference 112. If additional resources are required to service more than one client device, the service launch controller 102 can direct a hypervisor managing the resources of the selective forwarding unit 104 to augment resources of the selective forwarding unit 104 with additional CPUs, additional memory, additional routers, switches, etc”;
[0016] “ When hardware resources in proximity to the requesting client device 110 are identified, the service launch controller 102 can perform testing to determine if such resources can provide the requesting client device 110 a desirable QoS to the client device 110. If so, a selective forwarding unit 104 is launched. Otherwise, other resources in the server cloud 100 (at perhaps a different location) can be identified by the service launch controller 102 and QoS testing can be performed to verify that these resources can provide adequate services to the requesting client device 110.”;
It would have obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to combine the teachings of cited references. One of ordinary skill in the art before the effective filling date of the claimed invention would have been motivated to incorporate the teachings of Klein into teachings of the patent to dynamically scale the resources for achieving a pre-determined performance. an initial configuration specifies a combination of computing resources, primarily defined by a number of processors, a processor speed, and available memory (RAM). Disk space may also be specified. This initial configuration is deemed to handle the initial computing load presented by the target (primary) application in an unburdened system. The unburdened system defines a "pure" installation for handling only the target application, without any other applications or extrinsic loads that consume computing resources and thus diminish a true performance metric that defines the number of operations actually achievable as the initial configuration becomes burdened with additional tasks.[Wu 0031].
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
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.
Claims 21-29, 31-40 are rejected under 35 U.S.C. 103 as being unpatentable over Klein et al(from IDS) US20160241604A1 in view of Wu et al US20140047437A1.
As per claim 21, Klein discloses a method for operating an audio, video, control (AVC) system:
[0015]“Referring back to the illustration of FIG. 1A, the service launch controller 102 can be adapted to receive a request from a client device 110 (e.g., a computer, a smartphone, a tablet, a server, etc.) for media services (e.g., a teleconferencing service, media streaming services, etc.).
the method comprising: receiving a description of a plurality of AVC devices in an AVC setup:
[0015] “The client device 110 can provide rules, codes, instructions, and/or other informative information to the service launch controller 102 to describe the services requested.;
Wherein the description comprises operational configuration or characteristics of the plurality of AVC devices:
[0018]“The request sent to the service launch controller 102 can include rules, codes, instructions, and/or other informative information to describe the services requested. Suppose in this illustration that the client device 120 is requesting media services for itself (“session candidate 1”). The service launch controller 102 can determine the location of the client device 120 as described earlier and thereby identify hardware resources of the server cloud 100 to launch a virtual machine configured to provide media services (e.g., video on demand, streaming content, etc.)consistent with the demands of session candidate 1”;
specifying, via a resource allocator configured to use the description of the plurality of AVC devices, a first resource allocation for a remote computing environment based on the description of the plurality of AVC devices:
[0015]“The service launch controller 102 can process this information and thereby launch one or more instances of a virtual machine (depicted as a “selective forwarding unit 104”) configured to provide the client device 110 the services requested over a real-time transport protocol (RTP) for carrying media streams in conjunction with an RTP control protocol (RTCP)
the remote computing environment comprising a plurality of virtual machines:
[0013] “The hardware resources of the server cloud 100 can be vast, including but not limited to, communication resources (e.g., switches, routers, etc.) and computing resources (e.g., servers, storage devices, etc.) which can be customized to generate one or more instances of a virtual machine that performs certain functions based on software applications installed on the virtual machine by the service launch controller 102”;
wherein each of the plurality of AVC devices corresponds to a respective one of the plurality of virtual machines:
[0014] “In another embodiment, the hypervisor can launch pre-configured virtual machines, which are launched with pre-installed software applications that perform desired function(s). With a server cloud 100 architecture, the service launch controller 102 can launch multiple virtual machines that can provide services to requesting client devices on an on-demand basis”;
Wherein each of the plurality of virtual machines includes an AVC real-time operating system (RTOS) configured to perform real-time processing for the AVC setup:
[0013]“The hardware resources of the server cloud 100 can be vast, including but not limited to, communication resources (e.g., switches, routers, etc.) and computing resources (e.g., servers, storage devices, etc.) which can be customized to generate one or more instances of a virtual machine that performs certain functions based on software applications installed on the virtual machine by the service launch controller 102. The applications can be an operating system and/or specialized software applications executed by the operating system.”;
[0015]” The service launch controller 102 can process this information and thereby launch one or more instances of a virtual machine (depicted as a “selective forwarding unit 104”) configured to provide the client device 110 the services requested over a real-time transport protocol (RTP) for carrying media streams in conjunction with an RTP control protocol (RTCP)”;
compiling, via an AVC compiler using the description of the plurality of AVC devices and the first resource allocation, the plurality of AVC devices within the remote computing environment with the first resource allocation, wherein compiling the plurality of AVC devices includes simulating a first projected performance of the plurality of AVC devices in the AVC setup with the first resource allocation:
[0016]“When hardware resources in proximity to the requesting client device 110 are identified, the service launch controller 102 can perform testing to determine if such resources can provide the requesting client device 110 a desirable QoS to the client device 110. If so, a selective forwarding unit 104 is launched.”;
evaluating based on the results from the AVC compiler whether the first resource allocation is sufficient for the plurality of AVC devices based on the first projected performance of the plurality of AVC devices:
[0016]“When hardware resources in proximity to the requesting client device 110 are identified, the service launch controller 102 can perform testing to determine if such resources can provide the requesting client device 110 a desirable QoS to the client device 110. If so, a selective forwarding unit 104 is launched. Otherwise, other resources in the server cloud 100 (at perhaps a different location) can be identified by the service launch controller 102 and QoS testing can be performed to verify that these resources can provide adequate services to the requesting client device 110.
and recompiling via the AVC compiler the plurality of AVC devices within the remote computing environment with the second resource allocation:
[0017] “Depending on the resources of the selective forwarding unit 104, additional client devices in a vicinity of the requesting client device can also be served by the selective forwarding unit 104 as depicted in FIG. 1B by reference 112. If additional resources are required to service more than one client device, the service launch controller 102 can direct a hypervisor managing the resources of the selective forwarding unit 104 to augment resources of the selective forwarding unit 104 with additional CPUs, additional memory, additional routers, switches, etc”;
[0016] “ When hardware resources in proximity to the requesting client device 110 are identified, the service launch controller 102 can perform testing to determine if such resources can provide the requesting client device 110 a desirable QoS to the client device 110. If so, a selective forwarding unit 104 is launched. Otherwise, other resources in the server cloud 100 (at perhaps a different location) can be identified by the service launch controller 102 and QoS testing can be performed to verify that these resources can provide adequate services to the requesting client device 110.”;
But not explicitly:
and in response to a determination that the first resource allocation is not sufficient: allocating additional resources to the remote computing environment to specify a second resource allocation for the remote computing environment;
Wherein recompiling the plurality of AVC devices includes simulating a second projected performance of the plurality of AVC devices In the AVC setup with the second resource allocation
Wu discloses:
and in response to a determination that the first resource allocation is not sufficient: allocating additional resources to the remote computing environment to specify a second resource allocation for the remote computing environment:
[0058] “Thus, performing the impact analysis includes determining, based on the initial configuration and the performance shortfall, an extrinsic load indicative of additional computing resources for handling a current computing load over the initial configuration 150'. The extrinsic load includes additional loads beyond the load imposed by the primary application 162 for which the initial computing instantiation was configured to handle based on the initial load, as disclosed at step 309.’;
Wherein recompiling the plurality of AVC devices includes simulating a second projected performance of the plurality of AVC devices In the AVC setup with the second resource allocation:
[0013]“The impact analysis computes a true performance metric based on the received load metric for handling the additional load and extrinsic loads added after the initial computing instantiation, and instantiates an additional computing resource configured based on the computed true performance metric. In a particular configuration, a virtualization server `translates` the business application's throughput (BATs), typically measured by business transactions/number of users, or other operations with the ideal and benchmark tested `cloud` infrastructure settings, or configuration.”;
[0058]” This involves, at step 308 determining, based on the impact analysis of a current state of the virtualization instance 150 and the performance shortfall, a revised configuration 150' having sufficient computing resources for handling a true computing demand including the performance shortfall, such that the current state includes an increase in computing demand beyond the initial configuration. Thus, performing the impact analysis includes determining, based on the initial configuration and the performance shortfall, an extrinsic load indicative of additional computing resources for handling a current computing load over the initial configuration 150'.”;
Wu also discloses: evaluating whether the first resource allocation is sufficient for the plurality of devices based on the projected performance:
[0057]“At a later point in time, the user interface 500 receives an indication of a performance shortfall of at least one virtualization instance 150-N, in which the performance shortfall is based on a computing metric indicative of a measure of computing resources for performing an operation by a primary application 162 for which the virtualization instance 150 is configured to handle, as depicted at step 304“;
and recompiling the plurality of devices within the remote computing environment with the second resource allocation:
[0060]”Upon completion of the impact analysis, the instance manager 132 computes, based on the true computing demand, the hardware resources of the revised configuration, such that the hardware resources are computed based on an association of processors and memory to a quantity of operations, as depicted at step 313. The additional computing resource is defined by a revised configuration and includes a number of processors, a speed for each of the processors and a memory allocation, such that the revised configuration is based on a number of operations of the primary application, as shown at step 314;
[0042]”based on a demand for additional performance, defined in terms of operations of the primary application 162, the instance manager 123 responds to the demand by instantiating additional instances 150 (i.e. VMs). The responsiveness of the instance manager 123 to such an elasticity request demonstrates the elastic nature of the VMs 150 to "expand" and "contract" to meet surge/spike demands for additional operations and revert back to a normal load, thus conserving VMs 150 by avoiding over-allocation”;
It would have obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to combine the teachings of cited references. One of ordinary skill in the art before the effective filling date of the claimed invention would have been motivated to incorporate the teachings of Wu into teachings of Klein to dynamically scale the resources for achieving a pre-determined performance. an initial configuration specifies a combination of computing resources, primarily defined by a number of processors, a processor speed, and available memory (RAM). Disk space may also be specified. This initial configuration is deemed to handle the initial computing load presented by the target (primary) application in an unburdened system. The unburdened system defines a "pure" installation for handling only the target application, without any other applications or extrinsic loads that consume computing resources and thus diminish a true performance metric that defines the number of operations actually achievable as the initial configuration becomes burdened with additional tasks.[Wu 0031].
As per claim 22, the rejection of claim 21 is incorporated and furthermore Klein does not explicitly disclose:
in response to a determination that the second resource allocation is sufficient for the plurality of AVC devices, the method further comprises confirming the second resource allocation.
Wu discloses:
wherein, in response to a determination that the second resource allocation is sufficient for the plurality of AVC devices, the method further comprises confirming the second resource allocation:
[0046] “Upon approval at step 720, the virtualization manager (VM) 123 (instance manager) clones the existing instance 150' (step 731), and customizes the added instance 150'' at step 732 for the approved revision of the desired configuration to increase target operations performed by the primary application (SAP, in the example shown). The instance manager 123 then launches the instance 150 as the using the revised configuration at step 734”;
It would have obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to combine the teachings of cited references. One of ordinary skill in the art before the effective filling date of the claimed invention would have been motivated to incorporate the teachings of Wu into teachings of Klein to dynamically scale the resources for achieving a pre-determined performance. an initial configuration specifies a combination of computing resources, primarily defined by a number of processors, a processor speed, and available memory (RAM). Disk space may also be specified. This initial configuration is deemed to handle the initial computing load presented by the target (primary) application in an unburdened system. The unburdened system defines a "pure" installation for handling only the target application, without any other applications or extrinsic loads that consume computing resources and thus diminish a true performance metric that defines the number of operations actually achievable as the initial configuration becomes burdened with additional tasks.[Wu 0031].
As per claim 23, the rejection of claim 21 is incorporated and furthermore Klein discloses:
wherein the first resource allocation includes an indication of a number of CPUs, an amount of memory space, and an indication of associated hardware and software resources allocated to the remote computing environment to simulate the projected performance of the plurality of AVC devices:
[0027]“If additional resources are required to service more than one client device, the service launch controller 102 can direct a hypervisor managing the resources of the selective forwarding unit 104 to augment resources of the selective forwarding unit 104 with additional CPUs, additional memory, additional routers, switches, etc.;
Examiner interpretation: Wu also discloses adding additional resource to meet the performance [0046] and [0055].
As per claim 24, the rejection of claim 21 is incorporated and furthermore Klein discloses:
wherein the description of the plurality of AVC devices includes, for an individual AVC device, an identification of software associated with AVC processing for the individual AVC device.
[0018] “The request sent to the service launch controller 102 can include rules, codes, instructions, and/or other informative information to describe the services requested. Suppose in this illustration that the client device 120 is requesting media services for itself (“session candidate 1”). “;
Examiner interpretation: Wu also discloses identification of application associated in the description:[0056].
As per claim 25, the rejection of claim 21 is incorporated and furthermore Klein discloses:
wherein two or more AVC devices from the plurality of AVC devices are locally interconnected, and wherein the description of the plurality of AVC devices includes a specification of the local interconnections between the two or more AVC devices:
[0019] “Suppose instead that the client device 120 is requesting a communication session (e.g., video teleconferencing) with the client devices 112 (“session candidate 2”). Based on this request, the service launch controller 102 can determine the location of the client device 120 as described earlier and thereby identify hardware resources of the server cloud 100 to launch a virtual machine to enable teleconferencing with the client devices 112 over an RTP/RTCP connection. To enable cost effective communications over long disparate geographic locations, the service launch controller 102 can facilitate the establishment of a communications trunk (RTP/RTCP) between the selective forwarding units 106 and 104. The trunk can be a one-time trunk that is established while the teleconference services are active and torn down when services are terminated by client devices 112 and/or 120. FIG. 1C illustrates a scenario where additional clients are added to the selective forwarding unit 106.”;
As per claim 26, the rejection of claim 21 is incorporated and furthermore Klein does not explicitly disclose:
wherein the description of the plurality of AVC devices includes: an indication of expected usage rates for each of the plurality of AVC devices; and an indication of network and local connection bandwidths for each of the plurality of AVC devices.
Wu discloses:
wherein the description of the plurality of AVC devices includes: an indication of expected usage rates for each of the plurality of AVC devices; and an indication of network and local connection bandwidths for each of the plurality of AVC devices.
[0036]”Configurations herein normalize the cloud performance in terms of a standardized "operation" deemed to depict a representative transaction, or quantity of computing power, for a target application. A number of operations, therefore, define a performance level attributed to a particular configuration--an allocated combination of cloud resources including, but not limited to, a number and type of processors, memory, and disk (non-volatile storage). Various other attributes of a configuration may be "tuned," or enumerated, to provide a tunable cloud infrastructure, such as in terms of bandwidth, response time, QoS (Quality of service) allocations, and the like.
It would have obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to combine the teachings of cited references. One of ordinary skill in the art before the effective filling date of the claimed invention would have been motivated to incorporate the teachings of Wu into teachings of Klein to dynamically scale the resources for achieving a pre-determined performance. an initial configuration specifies a combination of computing resources, primarily defined by a number of processors, a processor speed, and available memory (RAM). Disk space may also be specified. This initial configuration is deemed to handle the initial computing load presented by the target (primary) application in an unburdened system. The unburdened system defines a "pure" installation for handling only the target application, without any other applications or extrinsic loads that consume computing resources and thus diminish a true performance metric that defines the number of operations actually achievable as the initial configuration becomes burdened with additional tasks.[Wu 0031].
As per claim 27, the rejection of claim 21 is incorporated and furthermore Klein discloses:
wherein allocating additional resources to the remote computing environment comprises allocating an additional processing core to the remote computing environment and/or allocating additional memory capacity to the remote computing environment:
[0017] “If additional resources are required to service more than one client device, the service launch controller 102 can direct a hypervisor managing the resources of the selective forwarding unit 104 to augment resources of the selective forwarding unit 104 with additional CPUs, additional memory, additional routers, switches, etc.
Examiner interpretation: Wu also discloses additional resource as CPU/memory [0037-0038]
As per claim 28, the rejection of claim 21 is incorporated and furthermore Klein discloses:
wherein the description of the plurality of AVC devices includes one or more settings for at least one individual AVC device from the plurality of AVC devices :
[0025] “FIG. 3 depicts an illustrative embodiment of a method 300 that can be used in portions of the systems described in FIGS. 1A-1C and 2A-2F. Method 300 can begin with step 302 in which a service launch controller 102 receives a request for communication services from one or more client devices. “;
[0019] “FIG. 1C illustrates a scenario where additional clients are added to the selective forwarding unit 106. Similar to the description earlier for the selective forwarding unit 104, the resources of the selective forwarding unit 106 can be adapted by the service launch controller 102 to provide services to additional client devices 122.”
As per claim 29, Klein discloses a computer-readable storage medium storing instructions that, when executed by a computing system, cause the computing system to perform operations comprising:
[0044]”The instructions 524 may also reside, completely or at least partially, within the main memory 504, the static memory 506, and/or within the processor 502 during execution thereof by the computer system 500.’;
receiving a description of a plurality of audio, video, control (AVC) devices in an AVC setup:
[0015] “The client device 110 can provide rules, codes, instructions, and/or other informative information to the service launch controller 102 to describe the services requested.;
[0025] “FIG. 3 depicts an illustrative embodiment of a method 300 that can be used in portions of the systems described in FIGS. 1A-1C and 2A-2F. Method 300 can begin with step 302 in which a service launch controller 102 receives a request for communication services from one or more client devices. “;
the method comprising: receiving a description of a plurality of AVC devices in an AVC setup:
[0015] “The client device 110 can provide rules, codes, instructions, and/or other informative information to the service launch controller 102 to describe the services requested.;
Specifying via a resource allocator configured to use the description of the plurality of AVC devices a first resource allocation for a remote computing environment based on the description of the AVC setup:
[0015]“The service launch controller 102 can process this information and thereby launch one or more instances of a virtual machine (depicted as a “selective forwarding unit 104”) configured to provide the client device 110 the services requested over a real-time transport protocol (RTP) for carrying media streams in conjunction with an RTP control protocol (RTCP)
the remote computing environment comprising a plurality of virtual machines
[0013] “The hardware resources of the server cloud 100 can be vast, including but not limited to, communication resources (e.g., switches, routers, etc.) and computing resources (e.g., servers, storage devices, etc.) which can be customized to generate one or more instances of a virtual machine that performs certain functions based on software applications installed on the virtual machine by the service launch controller 102”;
each corresponding to a respective one of the plurality of AVC devices:
[0014] “In another embodiment, the hypervisor can launch pre-configured virtual machines, which are launched with pre-installed software applications that perform desired function(s). With a server cloud 100 architecture, the service launch controller 102 can launch multiple virtual machines that can provide services to requesting client devices on an on-demand basis”;
Wherein each of the plurality of virtual machines includes an AVC real-time operating system (RTOS) configured to perform real-time processing for the AVC setup:
[0013]“The hardware resources of the server cloud 100 can be vast, including but not limited to, communication resources (e.g., switches, routers, etc.) and computing resources (e.g., servers, storage devices, etc.) which can be customized to generate one or more instances of a virtual machine that performs certain functions based on software applications installed on the virtual machine by the service launch controller 102. The applications can be an operating system and/or specialized software applications executed by the operating system.”;
[0015]” The service launch controller 102 can process this information and thereby launch one or more instances of a virtual machine (depicted as a “selective forwarding unit 104”) configured to provide the client device 110 the services requested over a real-time transport protocol (RTP) for carrying media streams in conjunction with an RTP control protocol (RTCP)”;
compiling via an AVC compiler using the description of the plurality of AVC devices and the first resource allocation the AVC setup within the remote computing environment with the first resource allocation to simulate generate a first projected performance of the plurality of AVC devices:
[0016]“When hardware resources in proximity to the requesting client device 110 are identified, the service launch controller 102 can perform testing to determine if such resources can provide the requesting client device 110 a desirable QoS to the client device 110. If so, a selective forwarding unit 104 is launched.”;
and evaluating based on the results from the AVC compiler whether the first resource allocation is sufficient for the plurality of AVC devices based on the first projected performance:
[0016] “When hardware resources in proximity to the requesting client device 110 are identified, the service launch controller 102 can perform testing to determine if such resources can provide the requesting client device 110 a desirable QoS to the client device 110. If so, a selective forwarding unit 104 is launched. Otherwise, other resources in the server cloud 100 (at perhaps a different location) can be identified by the service launch controller 102 and QoS testing can be performed to verify that these resources can provide adequate services to the requesting client device 110.
and recompiling via the AVC compiler the AVC setup within the remote computing environment with the second resource allocation:
[0017] “Depending on the resources of the selective forwarding unit 104, additional client devices in a vicinity of the requesting client device can also be served by the selective forwarding unit 104 as depicted in FIG. 1B by reference 112. If additional resources are required to service more than one client device, the service launch controller 102 can direct a hypervisor managing the resources of the selective forwarding unit 104 to augment resources of the selective forwarding unit 104 with additional CPUs, additional memory, additional routers, switches, etc.
and in response to a determination that the first resource allocation is sufficient for the plurality of AVC devices , the operations further comprise confirming the first resource allocation:
[0016] “ When hardware resources in proximity to the requesting client device 110 are identified, the service launch controller 102 can perform testing to determine if such resources can provide the requesting client device 110 a desirable QoS to the client device 110. If so, a selective forwarding unit 104 is launched. Otherwise, other resources in the server cloud 100 (at perhaps a different location) can be identified by the service launch controller 102 and QoS testing can be performed to verify that these resources can provide adequate services to the requesting client device 110.
But not explicitly:
wherein: in response to a determination that the first resource allocation is not sufficient, the operations further comprise: allocating additional resources to the remote computing environment to specify a second resource allocation for the remote computing environment;
Wherein recompiling the plurality of AVC devices includes simulating a second projected performance of the plurality of AVC devices In the AVC setup with the second resource allocation
Wu discloses:
wherein: in response to a determination that the first resource allocation is not sufficient, the operations further comprise: allocating additional resources to the remote computing environment to specify a second resource allocation for the remote computing environment:
[0058] “Thus, performing the impact analysis includes determining, based on the initial configuration and the performance shortfall, an extrinsic load indicative of additional computing resources for handling a current computing load over the initial configuration 150'. The extrinsic load includes additional loads beyond the load imposed by the primary application 162 for which the initial computing instantiation was configured to handle based on the initial load, as disclosed at step 309.’;
Wherein recompiling the plurality of AVC devices includes simulating a second projected performance of the plurality of AVC devices In the AVC setup with the second resource allocation :
[0013]“The impact analysis computes a true performance metric based on the received load metric for handling the additional load and extrinsic loads added after the initial computing instantiation, and instantiates an additional computing resource configured based on the computed true performance metric. In a particular configuration, a virtualization server `translates` the business application's throughput (BATs), typically measured by business transactions/number of users, or other operations with the ideal and benchmark tested `cloud` infrastructure settings, or configuration.”;
[0058]” This involves, at step 308 determining, based on the impact analysis of a current state of the virtualization instance 150 and the performance shortfall, a revised configuration 150' having sufficient computing resources for handling a true computing demand including the performance shortfall, such that the current state includes an increase in computing demand beyond the initial configuration. Thus, performing the impact analysis includes determining, based on the initial configuration and the performance shortfall, an extrinsic load indicative of additional computing resources for handling a current computing load over the initial configuration 150'.”;
Wu also discloses: evaluating whether the first resource allocation is sufficient for the plurality of devices based on the projected performance:
[0057]“At a later point in time, the user interface 500 receives an indication of a performance shortfall of at least one virtualization instance 150-N, in which the performance shortfall is based on a computing metric indicative of a measure of computing resources for performing an operation by a primary application 162 for which the virtualization instance 150 is configured to handle, as depicted at step 304“;
and recompiling the plurality of devices within the remote computing environment with the second resource allocation:
[0060] Upon completion of the impact analysis, the instance manager 132 computes, based on the true computing demand, the hardware resources of the revised configuration, such that the hardware resources are computed based on an association of processors and memory to a quantity of operations, as depicted at step 313. The additional computing resource is defined by a revised configuration and includes a number of processors, a speed for each of the processors and a memory allocation, such that the revised configuration is based on a number of operations of the primary application, as shown at step 314;
[0042] “ based on a demand for additional performance, defined in terms of operations of the primary application 162, the instance manager 123 responds to the demand by instantiating additional instances 150 (i.e. VMs). The responsiveness of the instance manager 123 to such an elasticity request demonstrates the elastic nature of the VMs 150 to "expand" and "contract" to meet surge/spike demands for additional operations and revert back to a normal load, thus conserving VMs 150 by avoiding over-allocation”;
It would have obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to combine the teachings of cited references. One of ordinary skill in the art before the effective filling date of the claimed invention would have been motivated to incorporate the teachings of Wu into teachings of Klein to dynamically scale the resources for achieving a pre-determined performance. an initial configuration specifies a combination of computing resources, primarily defined by a number of processors, a processor speed, and available memory (RAM). Disk space may also be specified. This initial configuration is deemed to handle the initial computing load presented by the target (primary) application in an unburdened system. The unburdened system defines a "pure" installation for handling only the target application, without any other applications or extrinsic loads that consume computing resources and thus diminish a true performance metric that defines the number of operations actually achievable as the initial configuration becomes burdened with additional tasks.[Wu 0031].
As per claim 31, the rejection of claim 29 is incorporated and furthermore Klein discloses:
wherein at least one of the plurality of AVC devices is a touchscreen controller couplable to one or more other AVC devices from the plurality of AVC devices,
[0031] “The display 410 can use touch screen technology to also serve as a user interface for detecting user input. As a touch screen display, the communication device 400 can be adapted to present a user interface with graphical user interface (GUI) elements that can be selected by a user with a touch of a finger.”;
and wherein the description of the plurality of AVC devices includes an identification of software associated with the touchscreen controller to generate control signals for the one or more other AVC devices.
[0015] Referring back to the illustration of FIG. 1A, the service launch controller 102 can be adapted to receive a request from a client device 110 (e.g., a computer, a smartphone, a tablet, a server, etc.) for media services (e.g., a teleconferencing service, media streaming services, etc.). The client device 110 can provide rules, codes, instructions, and/or other informative information to the service launch controller 102 to describe the services requested. The service launch controller 102 can process this information and thereby launch one or more instances of a virtual machine (depicted as a “selective forwarding unit 104”) configured to provide the client device 110 the services requested over a real-time transport protocol (RTP) for carrying media streams in conjunction with an RTP control protocol (RTCP) for monitoring traffic statistics, quality of service (QoS), and for aiding in synchronization of multiple media streams.
Examiner interpretation: see also fig 1B. where client device 120 includes application. Wu also discloses identification of application associated in the description:[0056].
As per claim 32, the rejection of claim 29 is incorporated and furthermore Klein discloses:
wherein the first resource allocation includes an indication of a number of CPUs, an amount of memory space, and an indication of software resources allocated to each of the plurality of virtual machines in the remote computing environment.
[0027]“If additional resources are required to service more than one client device, the service launch controller 102 can direct a hypervisor managing the resources of the selective forwarding unit 104 to augment resources of the selective forwarding unit 104 with additional CPUs, additional memory, additional routers, switches, etc.;
Examiner interpretation: Wu also discloses adding additional resource to meet the performance [0046] and [0055].
As per claim 33 Klein discloses a method for operating an audio, video, control (AVC) system,:
[0015]“Referring back to the illustration of FIG. 1A, the service launch controller 102 can be adapted to receive a request from a client device 110 (e.g., a computer, a smartphone, a tablet, a server, etc.) for media services (e.g., a teleconferencing service, media streaming services, etc.).
the method comprising: receiving a description of a plurality of AVC devices in an AVC setup, wherein the description comprises operational configuration of characteristics of the plurality of AVC devices::
[0015] “The client device 110 can provide rules, codes, instructions, and/or other informative information to the service launch controller 102 to describe the services requested.;
[0025] “FIG. 3 depicts an illustrative embodiment of a method 300 that can be used in portions of the systems described in FIGS. 1A-1C and 2A-2F. Method 300 can begin with step 302 in which a service launch controller 102 receives a request for communication services from one or more client devices. “;
specifying via a resource allocator configured to use the description of the plurality of AVC devices a resource allocation from a remote computing environment to a plurality of virtual machines corresponding to the plurality of AVC devices based on the description of the plurality of AVC devices:
[0015]“The service launch controller 102 can process this information and thereby launch one or more instances of a virtual machine (depicted as a “selective forwarding unit 104”) configured to provide the client device 110 the services requested over a real-time transport protocol (RTP) for carrying media streams in conjunction with an RTP control protocol (RTCP)
[0013] “The hardware resources of the server cloud 100 can be vast, including but not limited to, communication resources (e.g., switches, routers, etc.) and computing resources (e.g., servers, storage devices, etc.) which can be customized to generate one or more instances of a virtual machine that performs certain functions based on software applications installed on the virtual machine by the service launch controller 102”;
simulating a performance of the AVC setup via compiling with an AVC compiler using the description of the plurality of AVC devices and the first resource allocation the plurality of virtual machines and the resource allocation:
[0016]“When hardware resources in proximity to the requesting client device 110 are identified, the service launch controller 102 can perform testing to determine if such resources can provide the requesting client device 110 a desirable QoS to the client device 110. If so, a selective forwarding unit 104 is launched.”;
and evaluating, based on the results from the AVC compiler and the performance, whether the resource allocation is sufficient for the plurality of AVC devices.
[0016] “ When hardware resources in proximity to the requesting client device 110 are identified, the service launch controller 102 can perform testing to determine if such resources can provide the requesting client device 110 a desirable QoS to the client device 110. If so, a selective forwarding unit 104 is launched. Otherwise, other resources in the server cloud 100 (at perhaps a different location) can be identified by the service launch controller 102 and QoS testing can be performed to verify that these resources can provide adequate services to the requesting client device 110.
[0017]”Once the selective forwarding unit 104 has been launched, the requested services can be provided to the client device 110“;
But not explicitly:
Wherein upon determining the resource allocation is sufficient, providing confirmation of a sufficient resource allocation for performance of the AVC devices in the AVC setup:
Wu discloses:
Wherein upon determining the resource allocation is sufficient, providing confirmation of a sufficient resource allocation for performance of the AVC devices in the AVC setup:
[0046] “Upon approval at step 720, the virtualization manager (VM) 123 (instance manager) clones the existing instance 150' (step 731), and customizes the added instance 150'' at step 732 for the approved revision of the desired configuration to increase target operations performed by the primary application (SAP, in the example shown). The instance manager 123 then launches the instance 150 as the using the revised configuration at step 734”;
It would have obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to combine the teachings of cited references. One of ordinary skill in the art before the effective filling date of the claimed invention would have been motivated to incorporate the teachings of Wu into teachings of Klein to dynamically scale the resources for achieving a pre-determined performance. an initial configuration specifies a combination of computing resources, primarily defined by a number of processors, a processor speed, and available memory (RAM). Disk space may also be specified. This initial configuration is deemed to handle the initial computing load presented by the target (primary) application in an unburdened system. The unburdened system defines a "pure" installation for handling only the target application, without any other applications or extrinsic loads that consume computing resources and thus diminish a true performance metric that defines the number of operations actually achievable as the initial configuration becomes burdened with additional tasks.[Wu 0031].
As per claim 34, the rejection of claim 33 is incorporated and furthermore Klein discloses:
and re-simulating the performance of the AVC setup via compiling the plurality of virtual machines and the second resource allocation:
[0016]“otherwise, other resources in the server cloud 100 (at perhaps a different location) can be identified by the service launch controller 102 and QoS testing can be performed to verify that these resources can provide adequate services to the requesting client device 110.
But not explicitly:
wherein the resource allocation is a first resource allocation, and wherein, in response to a determination that the resource allocation is not sufficient, the method further comprises: allocating additional resources from the remote computing environment to the plurality of virtual machines to specify a second resource allocation for the plurality of virtual machines;
Wu discloses:
wherein the resource allocation is a first resource allocation, and wherein, in response to a determination that the resource allocation is not sufficient, the method further comprises: allocating additional resources from the remote computing environment to the plurality of virtual machines to specify a second resource allocation for the plurality of virtual machines;
[0058] “Thus, performing the impact analysis includes determining, based on the initial configuration and the performance shortfall, an extrinsic load indicative of additional computing resources for handling a current computing load over the initial configuration 150'. The extrinsic load includes additional loads beyond the load imposed by the primary application 162 for which the initial computing instantiation was configured to handle based on the initial load, as disclosed at step 309.’;
Klein also discloses: evaluating whether the first resource allocation is sufficient for the plurality of devices based on the projected performance:
[0057]“At a later point in time, the user interface 500 receives an indication of a performance shortfall of at least one virtualization instance 150-N, in which the performance shortfall is based on a computing metric indicative of a measure of computing resources for performing an operation by a primary application 162 for which the virtualization instance 150 is configured to handle, as depicted at step 304“;
and recompiling the plurality of devices within the remote computing environment with the second resource allocation:
[0060] Upon completion of the impact analysis, the instance manager 132 computes, based on the true computing demand, the hardware resources of the revised configuration, such that the hardware resources are computed based on an association of processors and memory to a quantity of operations, as depicted at step 313. The additional computing resource is defined by a revised configuration and includes a number of processors, a speed for each of the processors and a memory allocation, such that the revised configuration is based on a number of operations of the primary application, as shown at step 314;
[0042] “ based on a demand for additional performance, defined in terms of operations of the primary application 162, the instance manager 123 responds to the demand by instantiating additional instances 150 (i.e. VMs). The responsiveness of the instance manager 123 to such an elasticity request demonstrates the elastic nature of the VMs 150 to "expand" and "contract" to meet surge/spike demands for additional operations and revert back to a normal load, thus conserving VMs 150 by avoiding over-allocation”;
It would have obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to combine the teachings of cited references. One of ordinary skill in the art before the effective filling date of the claimed invention would have been motivated to incorporate the teachings of Wu into teachings of Klein to dynamically scale the resources for achieving a pre-determined performance. an initial configuration specifies a combination of computing resources, primarily defined by a number of processors, a processor speed, and available memory (RAM). Disk space may also be specified. This initial configuration is deemed to handle the initial computing load presented by the target (primary) application in an unburdened system. The unburdened system defines a "pure" installation for handling only the target application, without any other applications or extrinsic loads that consume computing resources and thus diminish a true performance metric that defines the number of operations actually achievable as the initial configuration becomes burdened with additional tasks.[Wu 0031].
As per claim 35, the rejection of claim 33 is incorporated and furthermore Klein discloses:
wherein the plurality of AVC devices in the AVC setup are AVC devices positioned within an individual room of a building:
[0012] “One embodiment of the subject disclosure includes determining participants of the communication session and grouping the participants of the communication session into end point locations, wherein the locations comprise points in the network in close proximity to at least a portion of the participants”.
Examiner interpretation: close proximity where participants are in a same location such as: conference room or home office(See Perlman Fig 2A and 2B and 0007)
As per claim 36, the rejection of claim 33 is incorporated and furthermore Klein discloses:
wherein the resource allocation includes an indication of at least one of a number of CPUs, an amount of memory space, and an indication of associated hardware and software resources for simulating the performance of the AVC setup:
[0017]“If additional resources are required to service more than one client device, the service launch controller 102 can direct a hypervisor managing the resources of the selective forwarding unit 104 to augment resources of the selective forwarding unit 104 with additional CPUs, additional memory, additional routers, switches, etc.;
Examiner interpretation: Wu also discloses adding additional resource to meet the performance [0046] and [0055]
step 1410 of fig. 10 discloses resource requirement.
As per claim 37, the rejection of claim 33 is incorporated and furthermore Klein discloses:
wherein the description of the plurality of AVC devices includes an identification of software components associated with each of the plurality of AVC devices:
[0018] “The request sent to the service launch controller 102 can include rules, codes, instructions, and/or other informative information to describe the services requested. Suppose in this illustration that the client device 120 is requesting media services for itself (“session candidate 1”).
As per claim 38, the rejection of claim 33 is incorporated and furthermore Klein discloses:
wherein the description of the plurality of AVC devices includes a specification of interconnections between the plurality of AVC devices:
[0019] “Suppose instead that the client device 120 is requesting a communication session (e.g., video teleconferencing) with the client devices 112 (“session candidate 2”). Based on this request, the service launch controller 102 can determine the location of the client device 120 as described earlier and thereby identify hardware resources of the server cloud 100 to launch a virtual machine to enable teleconferencing with the client devices 112 over an RTP/RTCP connection… FIG. 1C illustrates a scenario where additional clients are added to the selective forwarding unit 106. Similar to the description earlier for the selective forwarding unit 104, the resources of the selective forwarding unit 106 can be adapted by the service launch controller 102 to provide services to additional client devices 122.
As per claim 39, the rejection of claim 33 is incorporated and furthermore Klein does not explicitly disclose:
wherein the description of the plurality of AVC devices includes: an indication of device identifiers associated with each of the plurality of AVC devices; an indication of expected usage rates for each of the plurality of AVC devices; and an indication of connection bandwidths for each of the plurality of AVC devices.
Wu discloses:
wherein the description of the plurality of AVC devices includes: an indication of device identifiers associated with each of the plurality of AVC devices; an indication of expected usage rates for each of the plurality of AVC devices; and an indication of connection bandwidths for each of the plurality of AVC devices.
[0036]”Configurations herein normalize the cloud performance in terms of a standardized "operation" deemed to depict a representative transaction, or quantity of computing power, for a target application. A number of operations, therefore, define a performance level attributed to a particular configuration--an allocated combination of cloud resources including, but not limited to, a number and type of processors, memory, and disk (non-volatile storage). Various other attributes of a configuration may be "tuned," or enumerated, to provide a tunable cloud infrastructure, such as in terms of bandwidth, response time, QoS (Quality of service) allocations, and the like.
It would have obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to combine the teachings of cited references. One of ordinary skill in the art before the effective filling date of the claimed invention would have been motivated to incorporate the teachings of Wu into teachings of Klein to dynamically scale the resources for achieving a pre-determined performance. an initial configuration specifies a combination of computing resources, primarily defined by a number of processors, a processor speed, and available memory (RAM). Disk space may also be specified. This initial configuration is deemed to handle the initial computing load presented by the target (primary) application in an unburdened system. The unburdened system defines a "pure" installation for handling only the target application, without any other applications or extrinsic loads that consume computing resources and thus diminish a true performance metric that defines the number of operations actually achievable as the initial configuration becomes burdened with additional tasks.[Wu 0031].
As per claim 40, the rejection of claim 33 is incorporated and furthermore Klein discloses:
wherein the resource allocation is based at least partially on the description of the plurality of AVC devices:
[0015]“The service launch controller 102 can process this information and thereby launch one or more instances of a virtual machine (depicted as a “selective forwarding unit 104”) configured to provide the client device 110 the services requested over a real-time transport protocol (RTP) for carrying media streams in conjunction with an RTP control protocol (RTCP)
Claim 30 is rejected under 35 U.S.C. 103 as being unpatentable over Klein et al(from IDS) US20160241604A1 in view of Wu et al US20140047437A1 and Perlman et al US20150100995A1.
As per claim 30, the rejection of claim 29 is incorporated and furthermore Klein discloses:
and wherein the description of the plurality of AVC devices includes an identification of software associated with the AVC devices:
[0018] “The request sent to the service launch controller 102 can include rules, codes, instructions, and/or other informative information to describe the services requested. Suppose in this illustration that the client device 120 is requesting media services for itself (“session candidate 1”). “;
Examiner interpretation: see also fig 1B. where client device 120 includes application. Wu also discloses identification of application associated in the description:[0056].
But not explicitly:
wherein at least one of the plurality of AVC devices is a networked amplifier coupled to one or more other AVC devices from the plurality of AVC devices
Perlman discloses:
wherein at least one of the plurality of AVC devices is a networked amplifier coupled to one or more other AVC devices from the plurality of AVC devices:
[0146]”…… which routes the video and audio packets to the WAN Interface 442 at the user's premises, which routes the video and audio packets to the Firewall/Router/NAT device 443, which then routes the video and audio packets to the client 415.
[0147]The client 415 decompresses the video and audio, and then displays the video on the display device 422 (or the client's built-in display device) and sends the audio to the display device 422 or to separate amplifier/speakers or to an amplifier/speakers built in the client.
It would have obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to combine the teachings of cited references. One of ordinary skill in the art before the effective filling date of the claimed invention would have been motivated to incorporate the teachings of Perlman into teachings of Klein and Wu to provide an enhanced user experience with an effectively arbitrary amount of computing power, arbitrary amount of fast storage, and extremely fast networking amongst powerful servers.[Perlman 0352].
Pertinent arts:
US20140058871A1:
Techniques are described for scaling of computing resources. A scaling service is utilized that allocates additional computing resources (e.g., processors, memory, etc.) to a virtual machine instance (or other compute instance) and/or de-allocates computing resources from a virtual machine instance according requests and/or thresholds.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to BRAHIM BOURZIK whose telephone number is (571)270-7155. The examiner can normally be reached Monday-Friday (8-4: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, Wei Y Mui can be reached on 571-270-2738. 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.
/BRAHIM BOURZIK/Examiner, Art Unit 2191 /WEI Y MUI/Supervisory Patent Examiner, Art Unit 2191