Notice of Pre-AIA or AIA Status
1. The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
2. This is the initial office action based on the application filed on February 15th, 2024, which claims 1-21 are presented for examination.
Status of Claims
3. Claims 1-21 are pending, of which claims, of which claim 1, 14 and 15 are in independent form.
Priority
4. No priority has been considered for this application.
Information Disclosure Statement
5. Information disclosure statement filed on 02/15/2024, has been reviewed and considered by Examiner.
The Office's Note:
6. The Office has cited particular paragraphs / columns and line numbers in the reference(s) applied to the claims above for the convenience of the Applicant. Although the specified citations are representative of the teachings of the art and are applied to specific limitations within the individual claim(s), other passages and figures may apply as well. It is respectfully requested from the Applicant in preparing responses, to fully consider the references in entirety as potentially teaching all or part of the claimed invention, as well as the context of the cited passages as taught by the prior art or relied upon by the Examiner.
Claim Objections
7. Claims 12, 13 and 20 are objected to because of the following informalities:
A) As per Claim 12, line 1, recites “HTTP” - as acronym is likely to change its meaning over the time, thus, it needs to be spelled out at least once in the claim. Appropriate correction is requested.
B) As per Claim 13, line 4, recites “HTTP” and, line 6, recites “API”- as acronym is likely to change its meaning over the time, thus, it needs to be spelled out at least once in the claim. Appropriate correction is requested.
C) As per Claim 20, line 4, recites “API” - as acronym is likely to change its meaning over the time, thus, it needs to be spelled out at least once in the claim. Appropriate correction is requested.
Claim Interpretation
The following is a quotation of 35 U.S.C. 112(f):
(f) Element in Claim for a Combination. – An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
The following is a quotation of pre-AIA 35 U.S.C. 112, sixth paragraph:
An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
8. The claim 14 in this application are given their broadest reasonable interpretation using the plain meaning of the claim language in light of the specification as it would be understood by one of ordinary skill in the art. The broadest reasonable interpretation of a claim element (also commonly referred to as a claim limitation) is limited by the description in the specification when 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is invoked.
As explained in MPEP § 2181, subsection I, claim limitations that meet the following three-prong test will be interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph:
(A) the claim limitation uses the term “means” or “step” or a term used as a substitute for “means” that is a generic placeholder (also called a nonce term or a non-structural term having no specific structural meaning) for performing the claimed function;
(B) the term “means” or “step” or the generic placeholder is modified by functional language, typically, but not always linked by the transition word “for” (e.g., “means for”) or another linking word or phrase, such as “configured to” or “so that”; and
(C) the term “means” or “step” or the generic placeholder is not modified by sufficient structure, material, or acts for performing the claimed function.
Use of the word “means” (or “step”) in a claim with functional language creates a rebuttable presumption that the claim limitation is to be treated in accordance with 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. The presumption that the claim limitation is interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is rebutted when the claim limitation recites sufficient structure, material, or acts to entirely perform the recited function.
Absence of the word “means” (or “step”) in a claim creates a rebuttable presumption that the claim limitation is not to be treated in accordance with 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. The presumption that the claim limitation is not interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is rebutted when the claim limitation recites function without reciting sufficient structure, material or acts to entirely perform the recited function.
Claim 14 limitations in this application that use the word “means” (or “step”) are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, except as otherwise indicated in an Office action. Conversely, claim limitations in this application that do not use the word “means” (or “step”) are not being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, except as otherwise indicated in an Office action.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
9. Claims 1, 14 and 15 rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention. Claims 1, 14 and 15 recite “a second version of the software application running on a second network resource of the computer-based system, wherein the second version is different from the second version”. The limitation “wherein the second version is different from the second version” is unclear. The limitation should recite “wherein the first version is different from the second version” . Appropriate correction is requested.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
10. Claims 1-13 are rejected under 35 U.S.C. 101 because the claimed invention is directed to non-statutory subject matter.
Claim 1 recites “A computer-based system” for controlling network traffic allocation. Claim 1 does not disclose any hardware component to realize any of the underlying functionality of the said a program product’s implementation. Therefore, examiner will reasonably interpret functionality of this program product as an implementation of software alone, Software and computer program per se do not fall within any category of patent-eligible subject matter. Furthermore, claims 2-13 depend from claim 1, and therefore, claims 2-13 do not overcome the deficiency stated above for claim 1, and do not fall within any category of patent-eligible subject maters. Claims 1-13 are therefore ineligible for patent protection. See MPEP § 2106.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
11. Claims 1-20 are rejected under 35 U.S.C. 103 as being unpatentable over Watt (US 10630808– hereinafter Watt – IDS of records) and further in view of Lucas (US 10560372 – hereinafter Lucas).
Claim 1 is rejected, Watt teaches a computer-based system for controlling network traffic allocation to different versions of a software application for a service, the computer-based system comprising (Watt, abstract and summary):
a first version of the software application running on a first network resource of the computer- based system (Watt, US 10630808, fig. 3, component 305 – Set B, column 7, line 31 to 52, FIG. 3 shows an example of a software testing and rollout system 300, which may be used to implement Blue-Green deployment or A/B testing functionality… The software testing and rollout system 300 includes a load balancer 301, which can route traffic to different versions of an application or software denoted Set A 303 and Set B 305. For example, the Set A 303 may represent the “Blue” or updated software version, with the Set B 305 representing the “Green” or currently deployed software version. The load balancer 301 routes traffic to Set A 303 or Set B 305.);
a second version of the software application running on a second network resource of the computer-based system, wherein the second version is different from the second version(Watt, fig. 3, component 303 – Set A, column 7, line 31 to 52, FIG. 3 shows an example of a software testing and rollout system 300, which may be used to implement Blue-Green deployment or A/B testing functionality… The software testing and rollout system 300 includes a load balancer 301, which can route traffic to different versions of an application or software denoted Set A 303 and Set B 305. For example, the Set A 303 may represent the “Blue” or updated software version, with the Set B 305 representing the “Green” or currently deployed software version. The load balancer 301 routes traffic to Set A 303 or Set B 305.);
a load balancer in communication with the first and second network resources(Watt, fig. 3, component 301 – Load Balancer, column 7, line 31 to 52, The software testing and rollout system 300 includes a load balancer 301, which can route traffic to different versions of an application or software denoted Set A 303 and Set B 305. For example, the Set A 303 may represent the “Blue” or updated software version, with the Set B 305 representing the “Green” or currently deployed software version. The load balancer 301 routes traffic to Set A 303 or Set B 305.);
a toggle interface for receiving user input indicative of a desired network traffic allocation between the first and second versions of the software application (Watt, column 8, line 50 to column 9 line 25, FIG. 7A shows a contextual routing system 700 which pushes feature toggling capabilities to software-defined load balancers or contextual gateways. The contextual routing system 700 include a user 701, which interacts with a central toggle controller 702 to define routing policies for use by contextual gateways 704-1, 704-2 and 704-3 (collectively, contextual gateways 704). In some embodiments, the user 701 represents a system administrator, software developer or other authorized user permitted to define traffic toggle settings for different applications. Colum 9, line 26 to line 43, contextual gateway 704-1 utilizes traffic toggle settings 703-1 to determine routing of traffic between two versions of its associated application, denoted Set A 705-1 and Set B 705-2. The version of the application associated with Set A 705-1 may have a first set of features providing a first user experience, with the version of the application associated with Set B 705-2 having a second set of features providing a second user experience. Of course, it is possible for more than two versions of an application to be deployed, so as to provide more than two types of features or user experiences.);
a version control service for (Watt, fig. 7B, Contextual Gateway):
periodically polling the toggle interface for an updated network traffic allocation between the first and second versions of the software application, wherein the updated network traffic allocation is based on the user input received by the toggle interface(Watt, column 9, line 5 to 25, the contextual gateway 704-1 may provide contextual routing for a first application, with the contextual gateway 704-2 providing contextual routing for a second application and the contextual gateway 704-3 providing contextual routing for a third application. Thus, the central toggle controller 702 provides traffic toggle settings 703-1 for the first application to the contextual gateway 704-1, traffic toggle settings 703-2 for the second application to the contextual gateway 704-2, and traffic toggle settings 703-3 for the third application to the contextual gateway 704-3. Each of the contextual gateways 704 uses the traffic toggle settings provided by the central toggle controller 702 to enable feature toggling at the software-defined load balancer level, based on application context information. Column 11, line 3 to 13, Rule update processing module 745 is configured to update routing rules that are used by the routing rules evaluation module 742 to resolve header key/value pairs into route names. The rule update processing module 745 may be configured to run in a background thread or process to fetch the latest routing rules from a remote management entity such as the central toggle controller 702. The remote management module 746 may be used to interface to the central toggle controller 702, to set locations for fetching desired routing rule sets, such as by environment, feature flag, environment or toggle settings, etc.); and
communicating the updated network traffic allocation between the first and second versions of the software application to the load balancer(Watt, column 9, line 33 to 43, contextual gateway 704-1 utilizes traffic toggle settings 703-1 to determine routing of traffic between two versions of its associated application, denoted Set A 705-1 and Set B 705-2. The version of the application associated with Set A 705-1 may have a first set of features providing a first user experience, with the version of the application associated with Set B 705-2 having a second set of features providing a second user experience. Of course, it is possible for more than two versions of an application to be deployed, so as to provide more than two types of features or user experiences. Column 3, line 59 to column 4, line 4, The contextual gateways 120 may be viewed as providing load balancing-as-a-service, to route requests from client devices 104 to application hosts 126 in an intelligent manner, such as based on application context information obtained or derived from the requests, on routing rules or other information stored in routing database 106, etc. The contextual gateways 120 are thus examples of software-defined load balancers.),
wherein the load balancer is for allocating network traffic for the software application to the first and second versions of the software application in accordance with the updated network traffic allocation(Watt, fig. 3, component 301 – Load Balancer, column 7, line 31 to 52, The software testing and rollout system 300 includes a load balancer 301, which can route traffic to different versions of an application or software denoted Set A 303 and Set B 305. For example, the Set A 303 may represent the “Blue” or updated software version, with the Set B 305 representing the “Green” or currently deployed software version. The load balancer 301 routes traffic to Set A 303 or Set B 305.).
The Office would like to use prior art Lucas to back up Watt to further teach limitation
a desired network traffic allocation between the first and second versions of the software application(Lucas, US 10560372, column 3, line 1 to line 16, in some embodiments, the request router may, based on defined or learned heuristics, drive request traffic in a gradual fashion onto the new version, and quickly move request traffic away from the new version upon the detection of error conditions. Fig. 5A and column 16, line 36 to 54, field 512 indicates the current proportion of requests that are allocated to each version. Fig. 6 and column 18, line 61 to column 20, line 17, FIG. 6 is a graph illustrating the upgrading of downgrading of versions within a system that employs version-aware request routers, according to some embodiments. As shown, the graph 600 plots the percentage of requests that are distributed to a number of different versions in a system, versions 1 630, 2 632, and 3 634, over a period of time. The vertical axis 610 indicates the request distribution percentage, and ranges from 0 to 100%, and the horizontal axis 620 indicates the time.)
It would have obvious to one having ordinary skill in the art before the effecting filing date of the claimed invention to combine the teachings of cited references. Thus, one of ordinary skill in the art before the effecting filing date of the claimed invention would have been motivated to incorporate Lucas into Watt to provide a request router without user intervention which is based on messages received from a multiple backend nodes. The request router is provided to receive periodic health data from a backend node, which determines the specific version of the resource. The request router maintains a routing policy, which is updated independently from other routing polices. A manager node is used for processors. An associated memory is used to receive the metrics from the request routers. The request router is used to analyze the metrics to determine the update for the routing policy as suggested by Lucas (See abstract and summary).
Claim 2 is rejected for the reasons set forth hereinabove for claim 1, Watt and Lucas teach the computer-based system of claim 1, wherein the toggle interface stores feature flags related to the updated network traffic allocation between the first and second versions of the software application that is based on the user input received by the toggle interface(Watt, column 8, line 50 to column 9 line 25, FIG. 7A shows a contextual routing system 700 which pushes feature toggling capabilities to software-defined load balancers or contextual gateways. The contextual routing system 700 include a user 701, which interacts with a central toggle controller 702 to define routing policies for use by contextual gateways 704-1, 704-2 and 704-3 (collectively, contextual gateways 704). In some embodiments, the user 701 represents a system administrator, software developer or other authorized user permitted to define traffic toggle settings for different applications. Colum 9, line 26 to line 43, contextual gateway 704-1 utilizes traffic toggle settings 703-1 to determine routing of traffic between two versions of its associated application, denoted Set A 705-1 and Set B 705-2. The version of the application associated with Set A 705-1 may have a first set of features providing a first user experience, with the version of the application associated with Set B 705-2 having a second set of features providing a second user experience. Of course, it is possible for more than two versions of an application to be deployed, so as to provide more than two types of features or user experiences.).
Claim 3 is rejected for the reasons set forth hereinabove for claim 2, Watt and Lucas teach the computer-based system of claim 2, wherein the toggle interface comprises a web- based interface for receiving the user input (Watt, fig. 4 and column 7, line 66 to column 8, line 3, The feature toggling system 400 illustrates a new feature 401, along with feature flags or toggles 403 that are set to “ON” or “OFF” to enable and disable the new feature 401 for different groups of consumers 405.).
Claim 4 is rejected for the reasons set forth hereinabove for claim 2, Watt and Lucas teach the computer-based system of claim 2, wherein the toggle interface employs a Boolean attribute that has a first value when only one of the first and second versions of the software application is available for deployment, and has a second value when both of the first and second versions of the software application are available for deployment (Watt, fig. 4 and column 7, line 66 to column 8, line 3, The feature toggling system 400 illustrates a new feature 401, along with feature flags or toggles 403 that are set to “ON” or “OFF” to enable and disable the new feature 401 for different groups of consumers 405. Watt, column 11, line 35 to 56, The contextual gateways 704 in some embodiments are instantiated with environment labels in order to fetch a flag set from the routing database or central toggle controller 702. For example, a contextual gateway may be instantiated with an environment label such as ‘non-production’ in order to fetch appropriate flags set from the routing database. A production gateway could be flagged ‘prod’ and a non-production gateway could be flagged ‘non prod’ and then those values would show in the user interface of the central toggle controller 702 (e.g., in the routing rules editing interface provided by module 711) for the user 701 to specify appropriate rule sets. When servers hosting different application versions are deployed, they may be similarly labeled based on the rule sets. For example, a label can be the server name itself (e.g., route to server A) or servers can be grouped under a label (e.g., version 1.2 servers). The contextual gateways 704 are thus grouped in environments, and servers hosting different application versions would also be grouped by labels to facilitate rule specification (e.g., the above-described routing rule of “For non-production environment, if (storename>10000) then route to servers hosting application versions labeled ‘beta’.”).).
Claim 5 is rejected for the reasons set forth hereinabove for claim 1, Watt and Lucas teach the computer-based system of claim 1, wherein the second version has a different name than the first version (Watt, column 10, line 47 to 54, A given header may include the key/value pair “storename:1234567” and the routing database defined by the user 701 may include the routing rule “For non-production environment, if (storename>10000) then route to servers hosting application versions labeled ‘beta’.” This routing rule would cast traffic for a particular store set to deployed servers hosting application versions with a ‘beta’ label.).
Claim 6 is rejected for the reasons set forth hereinabove for claim 5, Watt and Lucas teach the computer-based system of claim 5, wherein the different name of the second version comprises a name of the first version plus a suffix(Watt, column 10, line 47 to 54, A given header may include the key/value pair “storename:1234567” and the routing database defined by the user 701 may include the routing rule “For non-production environment, if (storename>10000) then route to servers hosting application versions labeled ‘beta’.” This routing rule would cast traffic for a particular store set to deployed servers hosting application versions with a ‘beta’ label.).
Claim 7 is rejected for the reasons set forth hereinabove for claim 1, Watt and Lucas teach the computer-based system of claim 1, wherein: the first network resource comprises a first endpoint of a network comprising the load balancer (Watt, column 10, line 62 to column 11, line 2, The endpoint map module 744 provides a mapping of route names to hostnames, IP addresses or other identifiers for different application instances (e.g., particular servers, virtual machines, containers, etc. hosting application instances). The web request forwarding module 747 forwards the web request received by the web request handler module 741 to the IP/hostname or other identifier provided by the endpoint map module 744. Watt, fig. 3, component 301 – Load Balancer, column 7, line 31 to 52, The software testing and rollout system 300 includes a load balancer 301, which can route traffic to different versions of an application or software denoted Set A 303 and Set B 305. For example, the Set A 303 may represent the “Blue” or updated software version, with the Set B 305 representing the “Green” or currently deployed software version. The load balancer 301 routes traffic to Set A 303 or Set B 305); and
the second network resource comprises a second endpoint of the network (Watt, column 10, line 62 to column 11, line 2, The endpoint map module 744 provides a mapping of route names to hostnames, IP addresses or other identifiers for different application instances (e.g., particular servers, virtual machines, containers, etc. hosting application instances). The web request forwarding module 747 forwards the web request received by the web request handler module 741 to the IP/hostname or other identifier provided by the endpoint map module 744. Watt, fig. 3, component 301 – Load Balancer, column 7, line 31 to 52, The software testing and rollout system 300 includes a load balancer 301, which can route traffic to different versions of an application or software denoted Set A 303 and Set B 305. For example, the Set A 303 may represent the “Blue” or updated software version, with the Set B 305 representing the “Green” or currently deployed software version. The load balancer 301 routes traffic to Set A 303 or Set B 305).
Claim 8 is rejected for the reasons set forth hereinabove for claim 7, Watt and Lucas teach the computer-based system of claim 7, wherein the first network resource comprises a first pod in the network and the second network resource comprises a second pod in the network(Watt, column 10, line 62 to column 11, line 2, The endpoint map module 744 provides a mapping of route names to hostnames, IP addresses or other identifiers for different application instances (e.g., particular servers, virtual machines, containers, etc. hosting application instances). The web request forwarding module 747 forwards the web request received by the web request handler module 741 to the IP/hostname or other identifier provided by the endpoint map module 744. Column 5, line 54 to 63, Such virtualization infrastructure illustratively includes container-based virtualization infrastructure configured to provide Docker containers or other types of Linux containers (LXCs).)
Claim 9 is rejected for the reasons set forth hereinabove for claim 8, Watt and Lucas teach the computer-based system of claim 8, wherein the first pod comprises a first collection of one or more containers and the second pod comprises a second collection of one or more containers(Watt, column 10, line 62 to column 11, line 2, The endpoint map module 744 provides a mapping of route names to hostnames, IP addresses or other identifiers for different application instances (e.g., particular servers, virtual machines, containers, etc. hosting application instances). The web request forwarding module 747 forwards the web request received by the web request handler module 741 to the IP/hostname or other identifier provided by the endpoint map module 744. Column 5, line 54 to 63, Such virtualization infrastructure illustratively includes container-based virtualization infrastructure configured to provide Docker containers or other types of Linux containers (LXCs).).
Claim10 is rejected for the reasons set forth hereinabove for claim 1, Watt and Lucas teach the computer-based system of claim 1, wherein the second version of the software application is developed after the first version of the software application(Watt, fig. 3, component 303 – Set A, column 7, line 31 to 52, FIG. 3 shows an example of a software testing and rollout system 300, which may be used to implement Blue-Green deployment or A/B testing functionality… The software testing and rollout system 300 includes a load balancer 301, which can route traffic to different versions of an application or software denoted Set A 303 and Set B 305. For example, the Set A 303 may represent the “Blue” or updated software version, with the Set B 305 representing the “Green” or currently deployed software version. The load balancer 301 routes traffic to Set A 303 or Set B 305.).
Claim 11 is rejected for the reasons set forth hereinabove for claim 10, Watt and Lucas teach the computer-based system of claim 10, wherein the second version fixes at least one bug in the first version(Watt, fig. 3, component 303 – Set A, column 7, line 31 to 52, FIG. 3 shows an example of a software testing and rollout system 300, which may be used to implement Blue-Green deployment or A/B testing functionality… The software testing and rollout system 300 includes a load balancer 301, which can route traffic to different versions of an application or software denoted Set A 303 and Set B 305. For example, the Set A 303 may represent the “Blue” or updated software version, with the Set B 305 representing the “Green” or currently deployed software version. The load balancer 301 routes traffic to Set A 303 or Set B 305.).
Claim 12 is rejected for the reasons set forth hereinabove for claim 1, Watt and Lucas teach the computer-based system of claim 1, wherein the network traffic comprises HTTP requests for the service (Watt, fig. 2 and column 6, line 40 to 51, the request comprises a hypertext transfer protocol (HTTP) web request comprising a header, and step 204 includes stripping the header from the HTTP web request and processing the header to obtain one or more key/value pairs.).
Claim 13 is rejected for the reasons set forth hereinabove for claim 1, Watt and Lucas teach the computer-based system of claim 1, wherein the version control service is for communicating the updated network traffic allocation between the first and second versions of the software application to the load balancer via an API (Watt, column 9, line 5 to 25, the contextual gateway 704-1 may provide contextual routing for a first application, with the contextual gateway 704-2 providing contextual routing for a second application and the contextual gateway 704-3 providing contextual routing for a third application. Thus, the central toggle controller 702 provides traffic toggle settings 703-1 for the first application to the contextual gateway 704-1, traffic toggle settings 703-2 for the second application to the contextual gateway 704-2, and traffic toggle settings 703-3 for the third application to the contextual gateway 704-3. Each of the contextual gateways 704 uses the traffic toggle settings provided by the central toggle controller 702 to enable feature toggling at the software-defined load balancer level, based on application context information. Column 11, line 3 to 13, Rule update processing module 745 is configured to update routing rules that are used by the routing rules evaluation module 742 to resolve header key/value pairs into route names. The rule update processing module 745 may be configured to run in a background thread or process to fetch the latest routing rules from a remote management entity such as the central toggle controller 702. The remote management module 746 may be used to interface to the central toggle controller 702, to set locations for fetching desired routing rule sets, such as by environment, feature flag, environment or toggle settings, etc. Column 9, line 5 to 25, Thus, the central toggle controller 702 provides traffic toggle settings 703-1 for the first application to the contextual gateway 704-1, traffic toggle settings 703-2 for the second application to the contextual gateway 704-2, and traffic toggle settings 703-3 for the third application to the contextual gateway 704-3. Each of the contextual gateways 704 uses the traffic toggle settings provided by the central toggle controller 702 to enable feature toggling at the software-defined load balancer level, based on application context information. Lucas, column 6, line 28 to line 46, the API of the different versions of the resource are the same to the client, so that the clients 110 may remain oblivious to which version of the resource is used to handle their requests. In some embodiments, there may be differences in the APIs of the different versions. In that case, in some embodiments, the request router 140 may be configured to translate a request formatted for the API of a first version to the API of a second version. Column 5, line 50 to 57, The computing services generally operate on computing resources of the service provider system 130, and may be controlled and configured by clients 110 via various interfaces such as graphical user interface (GUI) (e.g., as part of an administration control panel or web site) and/or as a programmatic interface such as an Application Programming Interface (API).).
As per claim 14, this is the system claim to system claim 1. Therefore, it is rejected for the same reasons as above.
As per claim 15, this is the method claim to system claim 1. Therefore, it is rejected for the same reasons as above.
As per claim 16, this is the method claim to system claim 2 and claim 3. Therefore, it is rejected for the same reasons as above.
As per claim 17, this is the method claim to system claim 4. Therefore, it is rejected for the same reasons as above.
As per claim 18, this is the method claim to system claim 5 and claim 6. Therefore, it is rejected for the same reasons as above.
As per claim 19, this is the method claim to system claim 7. Therefore, it is rejected for the same reasons as above.
As per claim 20, this is the method claim to system claim 8, claim 12 and claim 13. Therefore, it is rejected for the same reasons as above.
As per claim 21, this is the method claim to system claim 11. Therefore, it is rejected for the same reasons as above.
Inquiry
12. Any inquiry concerning this communication or earlier communications from the examiner should be directed to DUY KHUONG THANH NGUYEN whose telephone number is (571)270-7139. The examiner can normally be reached Monday - Friday 0800-1630.
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, Lewis Bullock can be reached at 5712723759. 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.
/DUY KHUONG T NGUYEN/ Primary Examiner, Art Unit 2199