Detailed Action
Claims 1, and 4-20 are pending and are examined.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Status of Claims
Claims 1, 4-9, 12-14, 16, and 19 are currently amended.
Claims 2-3 are cancelled.
Response to Remarks
35 U.S.C. § 101
Remark 1: Applicant argues “Independent claim 1 does not recite a judicial exception. The Office Action alleges that claim 1, "under its broadest reasonable interpretation recites limitations grouped within the 'certain methods of organizing human activity' grouping of abstract ideas." Office Action, p. 2. The Office Action provides that "Commercial or legal interactions recite agreements in the form of contracts, legal obligations, advertising, marketing or sales activities or behaviors, and business relations." Id. The Office Action incorrectly reasons support for this allegation on the basis that "the limitations recite commercial or legal interactions, as they recite agreements in the form of contracts (e.g., voting), and advertising, and managing personal behavior or relationships or interactions between people, as they recite social activities, and following rules or instructions." Id. at p. 3. These comments in the Office Action do not represent the context of claim 1 as a whole. Claim 1 sets forth: A first node in a first data center, the first node comprising: at least one processor circuit to be programmed by the machine-readable instructions to: execute a first application at the first node, wherein the first application is redundant of a second application executed at the second node, the first application to provide redundancy and failover operation to tolerate unavailability of the second application at the second node; cause storing of metadata in an unencrypted state at the first node, the metadata being a copy of redundant metadata stored in an unencrypted state at the second node in the second data center and stored in an encrypted state at the third node in the cloud system; after unavailability of the second node...; synchronize the metadata from the encrypted state at the third node to the unencrypted state at the first node; and reconstruct data at the first data center based on the metadata at the first node. In claim 1, at least one processor circuit is to execute a first application at a first node that is redundant of a second application at a second node to provide redundancy and failover operation to tolerate unavailability of the second application at the second node. In addition, the at least one processor circuit of claim 1 is to cause storing of metadata in an unencrypted state at the first node. In claim 1, the metadata is a copy of redundant metadata stored in an unencrypted state at the second node in the second data center and stored in an encrypted state at the third node in the cloud system. In addition, the at least one processor circuit is to synchronize the metadata between an encrypted state and an unencrypted state and reconstruct data at the first data center based on the metadata at the first node. This does not constitute certain methods of organizing human activity. Instead, claim 1 defines operations of a first node at a first data center based on a status of a second node at a second data center and based on interactions with a third node in a cloud system. Accordingly, claim 1 is not directed to an abstract idea.” (Applicant Arguments, 2025-11-24).
Response to Remark 1: Applicant argues that claim 1 does not recite a judicial exception because it is directed to operations of a first node at a first data center based on the status of a second node and interactions with a third node in a cloud system. The argument is not persuasive. Under it broadest reasonable interpretation, claim 1 still recites an abstract idea in the form of a rule-based contingency scheme for managing redundancy, failover, and record restoration among distributed participants: executing a redundant application copy, maintaining corresponding metadata copies in prescribed locations and states, and, upon unavailability of one participant, synchronizing metadata and reconstructing data from the remaining records. At that level, claim 1 amounts to following rules or instructions for backup, succession, and recordkeeping, which remains within the ‘certain methods of organized human activity’, including ‘managing personal behavior or relationship or interactions between people’ and ‘ following rule or instructions’ and the MPEP further explains that the number of actors involved is not dispositive. Accordingly, this contention is unpersuasive.
Remark 2: Applicant argues “Even if independent claim 1 does recite a judicial exception (a point not conceded), claim 1 as a whole integrates the judicial exception into a practical application. As noted above, independent claim 1 defines operations of a first node at a first data center based on a status of a second node at a second data center and based on interactions with a third node in a cloud system. Independent claim 1 sets forth that the at least one processor circuit is to execute a first application at the first node, wherein the first application is redundant of a second application executed at the second node, the first application to provide redundancy and failover operation to tolerate unavailability of the second application at the second node. Independent claim 1 also recites that the at least one processor circuit is to synchronize the metadata from the encrypted state at the third node to the unencrypted state at the first node and reconstruct data at the first data center based on the metadata at the first node. As such, claim 1 is directed to the practical application of providing redundancy and failover operation to tolerate unavailability of the second application at the second node and recites how such redundancy is used by synchronizing the metadata from the encrypted state at the third node to the unencrypted state at the first node and reconstructing data at the first data center based on the metadata at the first node. Like SME Example 45, claim 2, which is patent eligible under Step 2A, Prong 2, claim 1 of the instant application is integrated into a practical application. Claim 2 of SME Example 45 recites: 2. The controller of claim 1, which is further configured to: (d) send control signals to the injection molding apparatus once the polyurethane has reached a target percentage, the control signals instructing the apparatus to open the mold and eject the molded polyurethane from the mold. The analysis provided by the USPTO for SME Example 45, claim 2, explains that "Limitation (d) does not merely link the judicial exceptions to a technical field, but instead adds a meaningful limitation in that it employs the information provided by the judicial exceptions (the calculated percentage of the extent of cure) to control the operation of the injection molding apparatus." Appendix 1 to the October 2019 Update: Subject Matter Eligibility Life Sciences & Data Processing Examples, p. 24. The USPTO analysis for SME Example 45, claim 2, also looks to the specification to note that "the claimed controller avoids the technical problems associated with undercure and overcure, which would otherwise negatively affect the cured polyurethane's strength and wear performance." Id. Similarly, here, independent claim 1 of the instant application sets forth at least one processor circuit to execute a first application at the first node, wherein the first application is redundant of a second application executed at the second node, the first application to provide redundancy and failover operation to tolerate unavailability of the second application at the second node. This is consistent with the specification of the instant application which discloses an example advantage of the redundant applications as follows: The applications 112a,b run in parallel to provide redundancy and failover operation to an end-user in the event of a failure or unavailability of either one of the applications 112a,b. Specification, para. [0032]. Independent claim 1 also sets forth storing of metadata in an unencrypted state at the first node, the metadata being a copy of redundant metadata stored in an unencrypted state at the second node in the second data center and stored in an encrypted state at the third node in the cloud system. The encrypted state of the metadata keeps the metadata secure at the third node in the cloud system. This is consistent with the specification of the instant application which discloses an example advantage of keeping the metadata in an encrypted state in the cloud system as follows: Since the secondary-tier node 102c does not use the metadata or the command log, the metadata and the command log may remain in an encrypted state in the secondary-tier node 102c. As such, encryption keys are not provided to the secondary-tier node 102c. In this manner, the secondary-tier node 102c does not decrypt the metadata and the command log, thereby, substantially decreasing the likelihood that a malicious process or malicious actor can access the decrypted metadata or command log from the secondary-tier node 102c. Id. at para. [0035]. In addition, independent claim 1 sets forth how such redundancies are used. For example, claim 1 recites that the at least one processor is to synchronize the metadata from the encrypted state at the third node to the unencrypted state at the first node and reconstruct data at the first data center based on the metadata at the first node. Accordingly, independent claim 1 as a whole integrates the judicial exception into a practical application of tolerating unavailability of a second application and keeping metadata secure at a cloud system. As such, independent claim 1 satisfies Step 2A, Prong 2.” (id.).
Response to Remark 2: Applicant argues that, even if claims recites a judicial exception, the claim integrates that exception into a practical application because it tolerates unavailability of a second application and keeps metadata secure in a cloud system by synchronizing metadata from an encrypted state to an unencrypted state and reconstructing data at the first data center. That argument is also not persuasive. The claim does not recite a specific technological mechanism for how the application redundancy is implemented, how the metadata is synchronized, how the encrypted to unencrypted transition is performed, or how the reconstruction is technically carried out; instead, it recites those results at a high level of generality using generic processor circuitry, nodes, data centers, and a cloud system. As the MPEP explains, a claim does not integrate an exception into a practical application when it merely uses a computer as a tool, merely includes instructions to implement the abstract idea on a computer, adds only insignificant extra-solution activity, or generally links the idea to a particular technological environment. Accordingly, this contention is unpersuasive.
Remark 3: Applicant argues “Claim 1 is also eligible because the above recitations provide "meaningful limitations beyond generally linking the use of the judicial exception to a particular technological environment." MPEP 2106.05(I)(A). In considering Step 2B of the Alice Mayo test, it is well established that "[e]valuating additional elements to determine whether they amount to an inventive concept requires considering them both individually and in combination to ensure that they amount to significantly more than the judicial exception itself." MPEP 2106.05(I). In BASCOM Global Internet v. AT&TMobility LLC, 827 F.3d 1341 (Fed. Cir. 2016), the Federal Circuit held that a claim directed to a content filtering system for filtering content retrieved from an Internet computer network is patent eligible. The BASCOM court considered whether a claim including an abstract idea included additional elements amounting to significantly more when the claim limitations were considered in combination (827 F.3d at 1349), and agreed that "an inventive concept can be found in the ordered combination of claim limitations that transform the abstract idea of filtering content into a particular, practical application of that abstract idea" (Id. at 1352). The Bascom court found eligibility based on the particular arrangement of elements claimed. The claims do not merely recite the abstract idea of filtering content along with the requirement to perform it on the Internet, or to perform it on a set of generic computer components. Such claims would not contain an inventive concept. See CyberSource Corp. V. Retail Decisions, Inc., 654 F.3d 1366, 1370 (Fed. Cir. 2011) (reasoning that the use of the Internet to verify a credit card transaction does not meaningfully add to the abstract idea of verifying the transaction). Nor do the claims preempt all ways of filtering content on the Internet; rather, they recite a specific, discrete implementation of the abstract idea of filtering content. Filtering content on the Internet was already a known concept, and the patent describes how its particular arrangement of elements is a technical improvement over prior art ways of filtering such content. BASCOM, 827 F.3d at 1350 (emphasis added). The unique, ordered combination of elements in BASCOM set forth a unique interaction between a remote ISP server and a client computer. Claim 1 of the instant application contains a unique, ordered combination of elements that set forth particular technical features for improving how distributed nodes are used to provide redundancies that tolerate an unavailability of a node and that keep metadata secure at a cloud system. . . .The particular arrangement of elements in claim 1 of the instant application results in technical improvements in providing redundancy and failover operation to tolerate unavailability of an application at a node and in keeping metadata secure at a cloud system. Such technical improvements improve the operation of distributing nodes by enabling at least one processor circuit to synchronize the metadata from the encrypted state at the third node to the unencrypted state at the first node and reconstruct data at the first data center based on the metadata at the first node, as set forth in claim 1. Accordingly, independent claim 1 and all claims depending therefrom are directed to eligible subject matter in compliance with 35 U.S.C. § 101 under step 2B of the Alice Mayo test.” (id).
Response to Remark 3: Applicant argues that claim 1 amounts to significantly more, relying on the ordered combination of elements and analogizing to BASCOM. That argument is unpersuasive because, unlike BASCOM, claim 1 does not recite a specific non-conventional and non-generic arrangement that supplies a concrete technological solution; rather, it recites generic distributed components performing high-level functions such as executing a redundant application, storing metadata copies, synchronizing metadata, and reconstructing data after unavailability. The MPEP recognizes BASCOM where there is a specific limitation other than what is well-understood, routine, and conventional, or a non-conventional and non-generic arrangement, but it also makes clear that generic computer implementation, mere instructions to apply the exception, insignificant extra-solution activity, and generally linking the exception to the technological environment do not amount to significantly more. Accordingly, this contention is unpersuasive.
35 U.S.C. § 102 and § 103
Remark 1: Applicant argues “In Rule, an authentication application at the authentication server decrypts encrypted data. Accordingly, the alleged Zad/Rule combination does not teach or suggest at least one processor circuit to be programmed by machine-readable instructions to cause storing of metadata in an unencrypted state at a first node, the metadata being a copy of redundant metadata stored in an unencrypted state at the second node in the second data center and stored in an encrypted state at the third node in the cloud system, as set forth in claim 1.” (id).
Response to Remark 1: Examiner respectfully disagrees, as the cited references (e.g. Zad and Rule) still teach the currently amended independent claims, as shown at least in paragraphs 2, 16, 18-19, 29, and 32 of Zad, and as further outlined in paragraphs 26-32 of this action. Indeed, Zad still teaches the claimed invention as it discloses a high-availability distributed cluster with redundant nodes used to ‘maintain the availability of service despite. . . a node failure and/or a network partition”, and further identifies distributed applications, cloud infrastructure services, and managed services as examples of the service being supported. Zad also teaches that Raft allows distributed nodes to maintain ‘one common replicated state’ that ETCD is used for ‘storing and replicating the state of the cluster’, and those commands are replicated to logs across the nodes and committed on a quorum. Accordingly, this contention is unpersuasive.
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.
Claims 1, and 4-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
Claims 1, and 4-8:
Step 1
Claims 1, and 4-8 are directed to an apparatus. Therefore, these claims fall within the four statutory categories of invention, and thus must be further analyzed at Step 2A to determine if the claims are directed to a judicial exception (See MPEP 2106.03, subsection II).
Step 2A Prong One
In Prong One examiners evaluate whether the claim recites a judicial exception, i.e., whether a law of nature, natural phenomenon, or abstract idea is set forth or described in the claim. Claim 1 recites (i.e., sets forth or describes) an abstract idea of advertising a candidate status, accessing votes and applying a quorum rule, then setting a role based on a threshold met. Specifically, but for the additional elements, the claim under its broadest reasonable interpretation recites limitations grouped within the “certain methods of organizing human activity” grouping of abstract ideas. The certain method of organizing human activity grouping is used to describe fundamental economic principles or practices, commercial or legal interactions, and managing personal behavior or relationships or interactions between people. Fundamental economic principles or practices are relating to the economy and commerce, or recite hedging, insurance, and mitigating risks. Commercial or legal interactions recite agreements in the form of contracts, legal obligations, advertising, marketing or sales activities or behaviors, and business relations. Managing personal behavior or relationships or interactions between people recite social activities, teaching, and following rules or instructions. See MPEP § 2106.04(a)(2), subsection II. The claim limitations reciting the abstract ideas are grouped within the “certain methods of organizing human activity” grouping of abstract ideas because the limitations recite commercial or legal interactions, as they recite agreements in the form of contracts (e.g., voting), and advertising, and managing personal behavior or relationships or interactions between people, as they recite social activities, and following rules or instructions. Indeed, the claims focus on how a group organizes itself, announcing candidacy, voting, achieving quorum, and assigning roles. More specifically, the following underlined claim elements recite abstract ideas while the non-underlined claim elements recite additional elements according to MPEP 2106.04(a).
interface circuitry to transmit an advertisement from the first node to a second node in a second data center and a third node in a cloud system, the advertisement to specify a leader-candidate status for the first node;
machine-readable instructions; and
at least one processor circuit to be programmed by the machine-readable instructions to:
execute a first application at the first node, wherein the first application is redundant of a second application executed at the second node, the first application to provide redundancy and failover operation to tolerate unavailability of the second application at the second node cause storing of metadata in an unencrypted state at the first node, the metadata being a copy of redundant metadata stored in an unencrypted state at the second node in the second data center and stored in an encrypted state at the third node in the cloud system:
after unavailability of the second node, access votes from the second node in the second data center and the third node in the cloud system; and
after the votes satisfy a quorum to elect the first node as a leader node, set a role of the first node as the leader node,
synchronize the metadata from the encrypted state at the third node to the unencrypted state at the first node: and reconstruct data at the first data center based on the metadata at the first node.
Step 2A Prong Two
In Prong Two, examiners evaluate whether the claim as a whole integrates the exception into a practical application of that exception. A claim that integrates a judicial exception into a practical application will apply, rely on, or use the judicial exception in a manner that imposes a meaningful limit on the judicial exception, such that the claim is more than a drafting effort designed to monopolize the judicial exception. Here, claim 1 as a whole, looking at the identified additional elements individually and in combination, does not integrate the judicial exception into a practical application. First, the non-underlined additional elements merely serve as a tool to perform the abstract idea (MPEP § 2106.05(f)). Indeed, the additional elements, when considered both individually and in combination, only involve a computer performing functions that correspond to the acts required to carry out the abstract idea. Additionally, regarding the specification and claims, there is no improvement in the functioning of a computer or an improvement to other technology or technical field present (MPEP §§ 2106.04(d)(1) and 2106.05(a)), there is no applying or using the judicial exception to effect a particular treatment or prophylaxis for a disease or medical condition present (MPEP § 2106.04(d)(2)), there is no implementing the judicial exception with or using the judicial exception in conjunction with a particular machine or manufacture that is integral to the claim present (MPEP § 2106.05(b)), there is no effecting a transformation or reduction of a particular article to a different state or thing present (MPEP § 2106.05(c)), and there is no applying or using the judicial exception in some other meaningful way beyond generally linking the use of the judicial exception to a particular technological environment present, such that the claim as a whole is more than a drafting effort designed to monopolize the exception (MPEP § 2106.05(e)). Thus, the claim as a whole is directed to a judicial exception and thus requires further analysis at Step 2B to determine if the claim as a whole, amounts to significantly more than the exception itself (See MPEP 2106.04, subsection II).
Step 2B
Step 2B determines whether the claim as a whole amount to significantly more than the exception itself. Evaluating additional elements to determine whether they amount to an inventive concept requires considering them both individually and in combination to ensure that they amount to significantly more than the judicial exception itself. Here, the additional elements, taken individually and in combination, do not result in claim 1, as a whole, amounting to significantly more than the judicial exception. As discussed previously with respect to Step 2A, the additional elements merely serve as a tool to perform an abstract idea, and generally links the use of the judicial exception to a particular technological environment. Thus, there is no inventive concept in the claim and thus the claim is not eligible, warranting a rejection for lack of subject matter eligibility and concluding the eligibility analysis.
Dependent Claims
Claims 4-8 have also been analyzed. However, the subject matter of these claims also fails to recite patent eligible subject matter for the following reasons:
Claim 4 recites the following underlined claim elements as abstract ideas while the non-underlined claim elements recite additional elements according to MPEP 2106.04(a). The non-underlined additional elements fail to recite a practical application or significantly more than the abstract idea because it merely serves as a tool to perform the abstract idea (MPEP § 2106.05(f)). The claim recites the abstract idea of advertising a candidate status, accessing votes and applying a quorum rule, then setting a role based on a threshold met, and storing redundant data, grouped within the “certain methods of organizing human activity” grouping of abstract ideas.
wherein the first data center stores the data corresponding to the first node, the data being a copy of redundant data in the second data center, the redundant data not stored in the cloud system corresponding to the third node.
Claim 5 recites the following underlined claim elements as abstract ideas while the non-underlined claim elements recite additional elements according to MPEP 2106.04(a). The non-underlined additional elements fail to recite a practical application or significantly more than the abstract idea because it merely serves as a tool to perform the abstract idea (MPEP § 2106.05(f)). The claim recites the abstract idea of advertising a candidate status, accessing votes and applying a quorum rule, then setting a role based on a threshold met, and applying election rules to set roles, grouped within the “certain methods of organizing human activity” grouping of abstract ideas.
wherein:
the interface circuitry is to:
receive a second advertisement specifying a leader-candidate status for the second node in the second data center; and
transmit, to the second node, a vote for the second node to serve as the leader node; and
one or more of the at least one processor circuit is to set the role of the first node as a follower node.
Claim 6 recites the following underlined claim elements as abstract ideas while the non-underlined claim elements recite additional elements according to MPEP 2106.04(a). The non-underlined additional elements fail to recite a practical application or significantly more than the abstract idea because it merely serves as a tool to perform the abstract idea (MPEP § 2106.05(f)). The claim recites the abstract idea of advertising a candidate status, accessing votes and applying a quorum rule, then setting a role based on a threshold met, and promotion when a leader fails, grouped within the “certain methods of organizing human activity” grouping of abstract ideas.
wherein, after the unavailability of the second node at the second data center, one or more of the at least one processor circuit is to change the role of the first node from the follower node to the leader node.
Claim 7 recites the following underlined claim elements as abstract ideas while the non-underlined claim elements recite additional elements according to MPEP 2106.04(a). The non-underlined additional elements fail to recite a practical application or significantly more than the abstract idea because it merely serves as a tool to perform the abstract idea (MPEP § 2106.05(f)). The claim recites the abstract idea of advertising a candidate status, accessing votes and applying a quorum rule, then setting a role based on a threshold met, grouped within the “certain methods of organizing human activity” grouping of abstract ideas.
wherein a first network connection between the first node and the second node is a lower latency and higher bandwidth connection than a second network connection between the first node and the third node.
Claim 8 recites the following underlined claim elements as abstract ideas while the non-underlined claim elements recite additional elements according to MPEP 2106.04(a). The non-underlined additional elements fail to recite a practical application or significantly more than the abstract idea because it merely serves as a tool to perform the abstract idea (MPEP § 2106.05(f)). The claim recites the abstract idea of advertising a candidate status, accessing votes and applying a quorum rule, then setting a role based on a threshold met, grouped within the “certain methods of organizing human activity” grouping of abstract ideas.
wherein the first node and the second node are instantiated on dedicated hardware in corresponding ones of the first data center and the second data center, and the third node is instantiated on cloud resources in the cloud system.
Claims 9-15:
Step 1
Claims 9-15 are directed to a non-transitory computer-readable medium. Therefore, these claims fall within the four statutory categories of invention, and thus must be further analyzed at Step 2A to determine if the claims are directed to a judicial exception (See MPEP 2106.03, subsection II).
Step 2A Prong One
In Prong One examiners evaluate whether the claim recites a judicial exception, i.e., whether a law of nature, natural phenomenon, or abstract idea is set forth or described in the claim. Claim 9 recites (i.e., sets forth or describes) an abstract idea of advertising a candidate status, accessing votes and applying a quorum rule, then setting a role based on a threshold met. Specifically, but for the additional elements, the claim under its broadest reasonable interpretation recites limitations grouped within the “certain methods of organizing human activity” grouping of abstract ideas. The certain method of organizing human activity grouping is used to describe fundamental economic principles or practices, commercial or legal interactions, and managing personal behavior or relationships or interactions between people. Fundamental economic principles or practices are relating to the economy and commerce, or recite hedging, insurance, and mitigating risks. Commercial or legal interactions recite agreements in the form of contracts, legal obligations, advertising, marketing or sales activities or behaviors, and business relations. Managing personal behavior or relationships or interactions between people recite social activities, teaching, and following rules or instructions. See MPEP § 2106.04(a)(2), subsection II. The claim limitations reciting the abstract ideas are grouped within the “certain methods of organizing human activity” grouping of abstract ideas because the limitations recite commercial or legal interactions, as they recite agreements in the form of contracts (e.g., voting), and advertising, and managing personal behavior or relationships or interactions between people, as they recite social activities, and following rules or instructions. Indeed, the claims focus on how a group organizes itself, announcing candidacy, voting, achieving quorum, and assigning roles. More specifically, the following underlined claim elements recite abstract ideas while the non-underlined claim elements recite additional elements according to MPEP 2106.04(a).
At least one non-transitory machine-readable medium comprising machine-readable instructions to cause a first node to at least:
cause transmission of an advertisement from the first node in a first availability zone to a second node in a second availability zone and a third node in a third availability zone, the advertisement to specify a leader-candidate status for the first node, the first node and the second node eligible to vote for a leader and eligible to serve as a leader node, the third node eligible to vote for the leader and ineligible to serve as the leader node;
execute a first application at the first node, wherein the first application is redundant of a second application executed at the second node, the first application to provide redundancy and failover operation to tolerate unavailability of the second application at the second node cause storing of metadata in an unencrypted state at the first node, the metadata being a copy of redundant metadata stored in an unencrypted state at the second node and stored in an encrypted state at the third node:
after unavailability of the second node, access votes from the first node in the first availability zone and the third node in the third availability zone;
after the votes satisfy a quorum to elect the first node as the leader node, set a role of the first node as the leader node,
synchronize the metadata from the encrypted state at the third node to the unencrypted state at the first node: and reconstruct data at the first availability zone based on the metadata at the first node.
Step 2A Prong Two
In Prong Two, examiners evaluate whether the claim as a whole integrates the exception into a practical application of that exception. A claim that integrates a judicial exception into a practical application will apply, rely on, or use the judicial exception in a manner that imposes a meaningful limit on the judicial exception, such that the claim is more than a drafting effort designed to monopolize the judicial exception. Here, claim 9 as a whole, looking at the identified additional elements individually and in combination, does not integrate the judicial exception into a practical application. First, the non-underlined additional elements merely serve as a tool to perform the abstract idea (MPEP § 2106.05(f)). Indeed, the additional elements, when considered both individually and in combination, only involve a computer performing functions that correspond to the acts required to carry out the abstract idea. Additionally, regarding the specification and claims, there is no improvement in the functioning of a computer or an improvement to other technology or technical field present (MPEP §§ 2106.04(d)(1) and 2106.05(a)), there is no applying or using the judicial exception to effect a particular treatment or prophylaxis for a disease or medical condition present (MPEP § 2106.04(d)(2)), there is no implementing the judicial exception with or using the judicial exception in conjunction with a particular machine or manufacture that is integral to the claim present (MPEP § 2106.05(b)), there is no effecting a transformation or reduction of a particular article to a different state or thing present (MPEP § 2106.05(c)), and there is no applying or using the judicial exception in some other meaningful way beyond generally linking the use of the judicial exception to a particular technological environment present, such that the claim as a whole is more than a drafting effort designed to monopolize the exception (MPEP § 2106.05(e)). Thus, the claim as a whole is directed to a judicial exception and thus requires further analysis at Step 2B to determine if the claim as a whole, amounts to significantly more than the exception itself (See MPEP 2106.04, subsection II).
Step 2B
Step 2B determines whether the claim as a whole amount to significantly more than the exception itself. Evaluating additional elements to determine whether they amount to an inventive concept requires considering them both individually and in combination to ensure that they amount to significantly more than the judicial exception itself. Here, the additional elements, taken individually and in combination, do not result in claim 9, as a whole, amounting to significantly more than the judicial exception. As discussed previously with respect to Step 2A, the additional elements merely serve as a tool to perform an abstract idea, and generally links the use of the judicial exception to a particular technological environment. Thus, there is no inventive concept in the claim and thus the claim is not eligible, warranting a rejection for lack of subject matter eligibility and concluding the eligibility analysis.
Dependent Claims
Claims 10-15 have also been analyzed. However, the subject matter of these claims also fails to recite patent eligible subject matter for the following reasons:
Claim 10 recites the following underlined claim elements as abstract ideas while the non-underlined claim elements recite additional elements according to MPEP 2106.04(a). The non-underlined additional elements fail to recite a practical application or significantly more than the abstract idea because it merely serves as a tool to perform the abstract idea (MPEP § 2106.05(f)). The claim recites the abstract idea of advertising a candidate status, accessing votes and applying a quorum rule, then setting a role based on a threshold met, grouped within the “certain methods of organizing human activity” grouping of abstract ideas.
wherein the first availability zone is a first data center, the second availability zone is a second data center, the third availability zone is a cloud system.
Claim 11 recites the following underlined claim elements as abstract ideas while the non-underlined claim elements recite additional elements according to MPEP 2106.04(a). The non-underlined additional elements fail to recite a practical application or significantly more than the abstract idea because it merely serves as a tool to perform the abstract idea (MPEP § 2106.05(f)). The claim recites the abstract idea of advertising a candidate status, accessing votes and applying a quorum rule, then setting a role based on a threshold met, grouped within the “certain methods of organizing human activity” grouping of abstract ideas.
wherein the first availability zone is a first failure domain in a first data center, the second availability zone is a second failure domain in the first data center, the third availability zone is a third failure domain in a second data center.
Claim 12 recites the following underlined claim elements as abstract ideas while the non-underlined claim elements recite additional elements according to MPEP 2106.04(a). The non-underlined additional elements fail to recite a practical application or significantly more than the abstract idea because it merely serves as a tool to perform the abstract idea (MPEP § 2106.05(f)). The claim recites the abstract idea of advertising a candidate status, accessing votes and applying a quorum rule, then setting a role based on a threshold met, and sharing protected logs, grouped within the “certain methods of organizing human activity” grouping of abstract ideas.
wherein the machine-readable instructions are to cause the first node to synchronize an encrypted command log from the third node to the first node.
Claim 13 recites the following underlined claim elements as abstract ideas while the non-underlined claim elements recite additional elements according to MPEP 2106.04(a). The non-underlined additional elements fail to recite a practical application or significantly more than the abstract idea because it merely serves as a tool to perform the abstract idea (MPEP § 2106.05(f)). The claim recites the abstract idea of advertising a candidate status, accessing votes and applying a quorum rule, then setting a role based on a threshold met, and voting for another other candidate, grouped within the “certain methods of organizing human activity” grouping of abstract ideas.
wherein the machine-readable instructions are to cause the first node to:
access a second advertisement specifying a leader-candidate status for the second node in the second availability zone;
cause transmission of a vote for the second node to serve as the leader node; and
set the role of the first node as a follower node.
Claim 14 recites the following underlined claim elements as abstract ideas while the non-underlined claim elements recite additional elements according to MPEP 2106.04(a). The non-underlined additional elements fail to recite a practical application or significantly more than the abstract idea because it merely serves as a tool to perform the abstract idea (MPEP § 2106.05(f)). The claim recites the abstract idea of advertising a candidate status, accessing votes and applying a quorum rule, then setting a role based on a threshold met, and automatic succession on failure, grouped within the “certain methods of organizing human activity” grouping of abstract ideas.
wherein, after the unavailability of the second node at the second availability zone, the machine-readable instructions are to cause the first node to change the role of the first node from the follower node to the leader node.
Claim 15 recites the following underlined claim elements as abstract ideas while the non-underlined claim elements recite additional elements according to MPEP 2106.04(a). The non-underlined additional elements fail to recite a practical application or significantly more than the abstract idea because it merely serves as a tool to perform the abstract idea (MPEP § 2106.05(f)). The claim recites the abstract idea of advertising a candidate status, accessing votes and applying a quorum rule, then setting a role based on a threshold met, grouped within the “certain methods of organizing human activity” grouping of abstract ideas.
wherein a first network connection between the first node and the second node is a lower latency and higher bandwidth connection than a second network connection between the first node and the third node.
Claims 16-20:
Step 1
Claims 16-20 are directed to a computer-implemented method (i.e., process). Therefore, these claims fall within the four statutory categories of invention, and thus must be further analyzed at Step 2A to determine if the claims are directed to a judicial exception (See MPEP 2106.03, subsection II).
Step 2A Prong One
In Prong One examiners evaluate whether the claim recites a judicial exception, i.e., whether a law of nature, natural phenomenon, or abstract idea is set forth or described in the claim. Claim 16 recites (i.e., sets forth or describes) an abstract idea of advertising a candidate status, accessing votes and applying a quorum rule, then setting a role based on a threshold met. Specifically, but for the additional elements, the claim under its broadest reasonable interpretation recites limitations grouped within the “certain methods of organizing human activity” grouping of abstract ideas. The certain method of organizing human activity grouping is used to describe fundamental economic principles or practices, commercial or legal interactions, and managing personal behavior or relationships or interactions between people. Fundamental economic principles or practices are relating to the economy and commerce, or recite hedging, insurance, and mitigating risks. Commercial or legal interactions recite agreements in the form of contracts, legal obligations, advertising, marketing or sales activities or behaviors, and business relations. Managing personal behavior or relationships or interactions between people recite social activities, teaching, and following rules or instructions. See MPEP § 2106.04(a)(2), subsection II. The claim limitations reciting the abstract ideas are grouped within the “certain methods of organizing human activity” grouping of abstract ideas because the limitations recite commercial or legal interactions, as they recite agreements in the form of contracts (e.g., voting), and advertising, and managing personal behavior or relationships or interactions between people, as they recite social activities, and following rules or instructions. Indeed, the claims focus on how a group organizes itself, announcing candidacy, voting, achieving quorum, and assigning roles. More specifically, the following underlined claim elements recite abstract ideas while the non-underlined claim elements recite additional elements according to MPEP 2106.04(a).
causing, by at least one processor circuit programmed by at least one instruction, transmission of an advertisement from a first node in a first availability zone to a second node in a second availability zone and a third node in a third availability zone, the advertisement to specify a leader-candidate status for the first node, the first node and the second node eligible to vote for a leader and eligible to serve as a leader node, the third node eligible to vote for the leader and ineligible to serve as the leader node;
executing a first application at the first node, wherein the first application is redundant of a second application executed at the second node, the first application to provide redundancy and failover operation to tolerate unavailability of the second application at the second node;
causing, by one or more of the at least one processor circuit, storing of metadata in an unencrypted state at the first node, the metadata being a copy of redundant metadata stored in an unencrypted state at the second node and stored in an encrypted state at the third node;
after unavailability of the second node, accessing votes from the first node in the first availability zone and the third node in the third availability zone; and
after the votes satisfy a quorum to elect the first node as the leader node, setting a role of the first node as the leader node,
synchronizing the metadata from the encrypted state at the third node to the unencrypted state at the first node; and
reconstructing data at the first availability zone based on the metadata at the first node.
Step 2A Prong Two
In Prong Two, examiners evaluate whether the claim as a whole integrates the exception into a practical application of that exception. A claim that integrates a judicial exception into a practical application will apply, rely on, or use the judicial exception in a manner that imposes a meaningful limit on the judicial exception, such that the claim is more than a drafting effort designed to monopolize the judicial exception. Here, claim 16 as a whole, looking at the identified additional elements individually and in combination, does not integrate the judicial exception into a practical application. First, the non-underlined additional elements merely serve as a tool to perform the abstract idea (MPEP § 2106.05(f)). Indeed, the additional elements, when considered both individually and in combination, only involve a computer performing functions that correspond to the acts required to carry out the abstract idea. Additionally, regarding the specification and claims, there is no improvement in the functioning of a computer or an improvement to other technology or technical field present (MPEP §§ 2106.04(d)(1) and 2106.05(a)), there is no applying or using the judicial exception to effect a particular treatment or prophylaxis for a disease or medical condition present (MPEP § 2106.04(d)(2)), there is no implementing the judicial exception with or using the judicial exception in conjunction with a particular machine or manufacture that is integral to the claim present (MPEP § 2106.05(b)), there is no effecting a transformation or reduction of a particular article to a different state or thing present (MPEP § 2106.05(c)), and there is no applying or using the judicial exception in some other meaningful way beyond generally linking the use of the judicial exception to a particular technological environment present, such that the claim as a whole is more than a drafting effort designed to monopolize the exception (MPEP § 2106.05(e)). Thus, the claim as a whole is directed to a judicial exception and thus requires further analysis at Step 2B to determine if the claim as a whole, amounts to significantly more than the exception itself (See MPEP 2106.04, subsection II).
Step 2B
Step 2B determines whether the claim as a whole amount to significantly more than the exception itself. Evaluating additional elements to determine whether they amount to an inventive concept requires considering them both individually and in combination to ensure that they amount to significantly more than the judicial exception itself. Here, the additional elements, taken individually and in combination, do not result in claim 16, as a whole, amounting to significantly more than the judicial exception. As discussed previously with respect to Step 2A, the additional elements merely serve as a tool to perform an abstract idea and generally link the use of the judicial exception to a particular technological environment. Thus, there is no inventive concept in the claim and thus the claim is not eligible, warranting a rejection for lack of subject matter eligibility and concluding the eligibility analysis.
Dependent Claims
Claims 17-20 have also been analyzed. However, the subject matter of these claims also fails to recite patent eligible subject matter for the following reasons:
Claim 17 recites the following underlined claim elements as abstract ideas while the non-underlined claim elements recite additional elements according to MPEP 2106.04(a). The non-underlined additional elements fail to recite a practical application or significantly more than the abstract idea because it merely serves as a tool to perform the abstract idea (MPEP § 2106.05(f)). The claim recites the abstract idea of advertising a candidate status, accessing votes and applying a quorum rule, then setting a role based on a threshold met, grouped within the “certain methods of organizing human activity” grouping of abstract ideas.
wherein the first availability zone is a first data center, the second availability zone is a second data center, the third availability zone is a cloud system.
Claim 18 recites the following underlined claim elements as abstract ideas while the non-underlined claim elements recite additional elements according to MPEP 2106.04(a). The non-underlined additional elements fail to recite a practical application or significantly more than the abstract idea because it merely serves as a tool to perform the abstract idea (MPEP § 2106.05(f)). The claim recites the abstract idea of advertising a candidate status, accessing votes and applying a quorum rule, then setting a role based on a threshold met, grouped within the “certain methods of organizing human activity” grouping of abstract ideas.
wherein the first availability zone is a first failure domain in a data center, the second availability zone is a second failure domain in the data center, the third availability zone is a third failure domain in the data center.
Claim 19 recites the following underlined claim elements as abstract ideas while the non-underlined claim elements recite additional elements according to MPEP 2106.04(a). The non-underlined additional elements fail to recite a practical application or significantly more than the abstract idea because it merely serves as a tool to perform the abstract idea (MPEP § 2106.05(f)). The claim recites the abstract idea of advertising a candidate status, accessing votes and applying a quorum rule, then setting a role based on a threshold met, and maintenance of protected records, grouped within the “certain methods of organizing human activity” grouping of abstract ideas.
synchronizing an encrypted command log from the third node to the first node.
Claim 20 recites the following underlined claim elements as abstract ideas while the non-underlined claim elements recite additional elements according to MPEP 2106.04(a). The non-underlined additional elements fail to recite a practical application or significantly more than the abstract idea because it merely serves as a tool to perform the abstract idea (MPEP § 2106.05(f)). The claim recites the abstract idea of advertising a candidate status, accessing votes and applying a quorum rule, then setting a role based on a threshold met, and voting/setting follower status, grouped within the “certain methods of organizing human activity” grouping of abstract ideas.
accessing a second advertisement specifying a leader-candidate status for the second node in the second availability zone;
transmitting, to the second node, a vote for the second node to serve as the leader node; and
setting the role of the first node as a follower node.
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.
Claims 1, and 4-20 are rejected under 35 U.S.C. 103 as being unpatentable over Zad et al. (US20220206900A1) (hereinafter “Zad”) in view of Rule et al. (US10510074) (hereinafter “Rule”).
As per Claim 1, 9, and 16, Zad teaches:
A first node in a first data center, the first node comprising: (“Node 500 can also include a number of hardware components below hypervisor 510. For example, node 500 can include storage 520 which can be Redundant Array of Independent Disks (RAID) storage having a number of hard disk drives (HDDs) 522 and/or solid-state drives (SSDs) 524. Node 500 can also include memory 526 (e.g., random-access memory (RAM), read-only memory (ROM), flash, etc.) and one or more processors 528. Lastly, node 500 can include wireless and/or wired network interface components to enable communication over a network 530 (e.g., with other nodes or with the Internet).” (Para. 0090); the candidate ‘advertises’ to others, “In order to get elected, the server who became the candidate increases its term number and votes for itself, then the server sends a request to vote RPC to all other servers. Other servers upon receiving the request to vote should immediately give their vote to the server who asks for the vote if they haven't already voted on the current term.” (Para. 0029); “In embodiments, the decision on how to choose the leader is based on the votes as biased by the leadership priorities (e.g., vote weights 114, 116, and 118) which are configured when creating a cluster. The leadership priorities can also be adjusted later using changes to configuration files for the cluster. In some cases, one or more clusters may be rearranged based at least in part on changes in leadership priorities. For example, the cluster may be rearranged by electing a new leader node. Each node upon arrival in stretched network 100 broadcasts its identifier (ID) and its leadership priority (e.g., vote weight) to all other nodes in the stretched network. During the leader election process, each node compares its total number of received votes as biased by the vote weight of this node with the number of votes received by other nodes as biased by the maximum vote weight of the other nodes as follows.” (Para. 0048))
interface circuitry to transmit an advertisement from the first node to a second node in a second data center and a third node in a cloud system, the advertisement to specify a leader-candidate status for the first node; (“The nodes of a distributed systems may be coupled in communication via a communication link (e.g., a bus, a switch fabric, a wireless or wired network, or a combination thereof) and are typically spread over multiple failure domains to enhance service availability. For example, geographically distributed nodes may be coupled in communication via one or more private and/or public networks (e.g., the Internet). There are various types of distributed systems, including distributed computing systems, distributed information systems and distributed pervasive (or ubiquitous) systems. Examples of distributed computing systems, which are typically used for high performance computing tasks, include cluster and cloud computing systems and grid computing systems. Examples of distributed information systems, which are typically used for management and integration of business functions, include transaction processing systems and Enterprise Application Integration. Examples of distributed pervasive (or ubiquitous) systems, which typically include mobile and embedded systems, include home systems and sensor networks.” (Para. 0015); “Kubernetes is an open-source container-orchestration system for automating application deployment, scaling, and management (maintained by the Cloud Native Computing Foundation and available on the Internet at kubernetes.io). Kubernetes helps provide simple and easy management of a cluster, which consist of a group of host nodes running Linux® containers. Kubernetes clusters can span host computers (e.g., servers/nodes) across on premise, public, private, or hybrid clouds. Therefore, it is a good computing platform for hosting cloud native applications that require fast scaling. The Kubernetes master controls Kubernetes nodes and directs the communication across the system. The Kubernetes application programming interface (API) server allows clients to configure the workloads and containers across worker nodes.” (Para. 0031))
machine-readable instructions; and (“FIG. 4 is a block diagram of a node 400 of a distributed system in accordance with an example embodiment. In the simplified example illustrated by FIG. 4, node 400 includes a processing resource 410 coupled to a non-transitory, machine readable medium 420 encoded with instructions to maintain service availability for a distributed system. The processing resource 410 may include a microcontroller, a microprocessor, central processing unit core(s), an ASIC, an FPGA, and/or other hardware device suitable for retrieval and/or execution of instructions from the machine readable medium 420 to perform the functions related to various examples described herein. Additionally, or alternatively, the processing resource 410 may include electronic circuitry for performing the functionality of the instructions described herein.” (Para. 0081); “As described further herein below, the machine readable medium 420 may have stored thereon a set of executable instructions 430, 440, and 450. It should be understood that part or all of the executable instructions and/or electronic circuits included within one box may, in alternate implementations, be included in a different box shown in the figures or in a different box not shown. In some implementations, the machine readable medium 420 may include other instructions not shown to perform other functions described herein, such as establishing a write weight or an election timeout.” (Para. 0083); “Instructions 450, upon execution, cause the processing resource 410 to perform leadership election controller processing. Execution of instructions 450 may correspond generally to instructions for performing block 310 of FIG. 3.” (Para. 0086))
at least one processor circuit to be programmed by the machine-readable instructions to: (“node 400 includes a processing resource 410 coupled to a non-transitory, machine readable medium 420 encoded with instructions” (Para. 0081); “the machine readable medium 420 may have stored thereon a set of executable instructions 430, 440, and 450.” (Para. 0083); “Instructions 450, upon execution, cause the processing resource 410 to perform leadership election controller processing.” (Para. 0086))
execute a first application (“Non-limiting examples of a service include a webservice, cloud management, cloud infrastructure services, a distributed application, a managed service, and transaction processing.” (Para. 0016); “node 500 hosts a number n of guest virtual machines (VM) 502, 504 and 506 (n being a natural number) and can be configured to produce local and remote backups and snapshots of the virtual machines. . . Depending upon the particular implementation, one or more services supported by the distributed system may be related to VMs 502, 504 and 506 or may be unrelated.” (Para. 0088); “Virtual appliance 508 can include a virtual file system 512 in communication with a control plane 514 and a data path 516. Control plane 514 can handle data flow between applications and resources within node 500.” (Para. 0089))
at the first node, wherein the first application is redundant of a second application executed at the second node, the first application to provide redundancy and failover operation to tolerate unavailability of the second application at the second node cause storing of metadata (“Kubernetes includes a distributed key value store called ETCD, which is an open-source implementation of the Raft protocol used for storing and replicating the state of the cluster.” (Para. 0032); “ETCD serves as the backbone of many distributed systems and provides a reliable way for storing data across a cluster of servers.” (Para. 0032); “once a new command by a client is submitted to one of the nodes in the computing system and before the command is executed the command has to be replicated to logs in all nodes (e.g., each node adds this command to the node's log).” (Para. 0055))
in an . . state at the first node, the metadata being a copy of redundant metadata stored in an . . . state at the second node in the second data center and stored in an . . . state at the third node in the cloud system: (“High-availability clusters” (also referred to as failover clusters or HA clusters) improve the availability of the cluster approach. HA clusters have redundant nodes which are then used to maintain the availability of service despite the occurrence of various failure scenarios (e.g., a node failure and/or a network partition) for which the cluster may be designed to tolerate.” (Para. 0018); “Non-limiting examples of a service include a webservice, cloud management, cloud infrastructure services, a distributed application, a managed service, and transaction processing.” (Para. 0016); “continuing service after one or more voting nodes have failed, and dynamically updating the number of voters during runtime.” (Para. 0019))
after unavailability of the second node, accessing votes from the first node in the first availability zone and the third node in the third availability zone; after the votes satisfy a quorum to elect the first node as the leader node, setting a role of the first node as the leader node, (“the server sends a request to vote RPC to all other servers. Other servers upon receiving the request to vote should immediately give their vote to the server who asks for the vote” (Para. 0029); “During the leader election process, each node compares its total number of received votes as biased by the vote weight of this node” (Para. 0048); “the arbiter provides a vote and is implemented in the form of a server for tie-breaking and located in a failure domain separate from the nodes of the distributed system” (Para. 0021))
synchronizing the metadata from the . . . state at the third node to the . . . state at the first node: and reconstructing data at the first availability zone based on the metadata at the first node. (“Raft is a consensus protocol that allows distributed nodes to maintain one common replicated state. Raft decomposes consensus into three sub-problems: (1) leader election, (2) log replication, and (3) safety.” (Para. 0002); “The two RPCs in Raft are: 1) request to vote, which is asked by the candidates and 2) append entries, which is asked by the leader to replicate the logs.” (Para. 0029); “Kubernetes includes a distributed key value store called ETCD, which is an open-source implementation of the Raft protocol used for storing and replicating the state of the cluster. ETCD is managed by the Cloud Native Computing Foundation and available on the Internet at etcd.io. In addition to Kubernetes, ETCD serves as the backbone of many distributed systems and provides a reliable way for storing data across a cluster of servers.” (Para. 0032))
Zad does not disclose:
• “unencrypted” (claim 1).
However, as per Claim 1, Rule in the analogous art of secured digital transactions, teaches: “unencrypted”. (See “Doing so causes the contactless card to generate encrypted data which is transmitted to the computing device. The merchant application may receive the encrypted data generated by the contactless card and transmit the encrypted data to an authentication server for validation. The merchant application may further transmit an indication of a merchant identifier and/or a transaction identifier with the encrypted data. Once validated, the authentication server may instruct a virtual account number server to generate card data for the account associated with the contactless card.” (Col. 1, ln. 63-67 – col. 2, ln. 1-6); “Once received, the authentication application 123 may then authenticate the encrypted data 106. For example, the authentication application 123 may attempt to decrypt the encrypted data 106 using a copy of the private key 104 stored in the memory 122 of the authentication server 120. The private key 104 may be identical to the private key 104 stored in the memory 102 of the contactless card 101, where each contactless card 101 is manufactured to include a unique private key 104 (and the authentication server 120 stores a corresponding copy of each unique private key 104). Therefore, the authentication application 123 may successfully decrypt the encrypted data 106, thereby verifying the encrypted data 106.” (Col. 5, ln. 27-37).
It would have been obvious to one of ordinary skill in the art before the effective filing date to combine the method of Zad with the technique of Rule to include the steps of encrypting and decrypting user or transaction data in an authentication process. Therefore, the incentives of providing increased transaction security provided a reason to make an adaptation, and the invention resulted from application of the prior knowledge in a predictable manner.
Zad does not disclose:
• “encrypted” (claim 1).
However, as per Claim 1, Rule in the analogous art of secured digital transactions, teaches: “encrypted”. (See “Doing so causes the contactless card to generate encrypted data which is transmitted to the computing device. The merchant application may receive the encrypted data generated by the contactless card and transmit the encrypted data to an authentication server for validation. The merchant application may further transmit an indication of a merchant identifier and/or a transaction identifier with the encrypted data. Once validated, the authentication server may instruct a virtual account number server to generate card data for the account associated with the contactless card.” (Col. 1, ln. 63-67 – col. 2, ln. 1-6); “Once received, the authentication application 123 may then authenticate the encrypted data 106. For example, the authentication application 123 may attempt to decrypt the encrypted data 106 using a copy of the private key 104 stored in the memory 122 of the authentication server 120. The private key 104 may be identical to the private key 104 stored in the memory 102 of the contactless card 101, where each contactless card 101 is manufactured to include a unique private key 104 (and the authentication server 120 stores a corresponding copy of each unique private key 104). Therefore, the authentication application 123 may successfully decrypt the encrypted data 106, thereby verifying the encrypted data 106.” (Col. 5, ln. 27-37).
It would have been obvious to one of ordinary skill in the art before the effective filing date to combine the method of Zad with the technique of Rule to include the steps of encrypting and decrypting user or transaction data in an authentication process. Therefore, the incentives of providing increased transaction security provided a reason to make an adaptation, and the invention resulted from application of the prior knowledge in a predictable manner.
As per Claim 4, Zad teaches:
The first node of claim 1, wherein the first data center stores the data corresponding to the first node, the data being a copy of redundant data in the second data center, the redundant data not stored in the cloud system corresponding to the third node. (“In one embodiment, a distributed system may be in the form of a stretched network 100 (also called a stretched cluster system), e.g., a deployment model in which two or more physical or virtual servers are part of the same logical cluster, but are located in separate geographical locations to be able to survive localized disaster events. In other embodiments, network 100 need not be a stretched network. In this simple example, there are three servers (e.g., nodes).” (Para. 0035); “once a new command by a client is submitted to one of the nodes in the computing system and before the command is executed the command has to be replicated to logs in all nodes (e.g., each node adds this command to the node's log). The command is considered committed when the log is durably stored on a quorum of nodes.” (Para. 0055)
As per Claim 5, Zad teaches:
The first node of claim 1, wherein: the interface circuitry is to: (“node 500 can include wireless and/or wired network interface components to enable communication over a network 530 (e.g., with other nodes or with the Internet).” (Para. 0090); “Servers S1 102, S2 104, and S3 106 can now communicate with each other in stretched network 100.” (Para. 0041); “The nodes of a distributed systems may be coupled in communication via a communication link (e.g., a bus, a switch fabric, a wireless or wired network, or a combination thereof) and are typically spread over multiple failure domains to enhance service availability. For example, geographically distributed nodes may be coupled in communication via one or more private and/or public networks (e.g., the Internet).” (Para. 0015))
receive a second advertisement specifying a leader-candidate status for the second node in the second data center; (“The Raft protocol consists of two remote procedure calls (RPCs). An RPC is a protocol that one program can use to request a service from a program located in another computer on the network without having to understand the network's details. The two RPCs in Raft are: 1) request to vote, which is asked by the candidates. . . Other servers upon receiving the request to vote should immediately give their vote.” (Para. 0029); “Each node upon arrival in stretched network 100 broadcasts its identifier (ID) and its leadership priority (e.g., vote weight) to all other nodes in the stretched network.” (Para. 0048); “The Raft consensus protocol includes two commands: etcd and etcdctl. . .. Flags for the etcd command include the cluster flags: : --initial-advertise-peer-urls, --advertise-client-urls.” (Para. 0036))
and transmit, to the second node, a vote for the second node to serve as the leader node; and one or more of the at least one processor circuit is to (“leader election controller 210 biases the node's vote with vote weight 208 before sending the node's vote 212 to other nodes. In an embodiment, the vote 212 is multiplied by the vote weight 208.” (Para. 0070); “Other servers upon receiving the request to vote should immediately give their vote to the server who asks for the vote.” (Para. 0029); “the arbiter provides a vote . . . and located in a failure domain separate from the nodes of the distributed system that respond to requests relating to the service supported by the distributed system.” (Para. 0021))
set the role of the first node as a follower node. (“Each node upon arrival in stretched network 100 broadcasts its identifier (ID) and its leadership priority (e.g., vote weight) to all other nodes in the stretched network. During the leader election process, each node compares its total number of received votes as biased by the vote weight of this node with the number of votes received by other nodes as biased by the maximum vote weight of the other nodes as follows.” (Para. 0048); “In order to get elected, the server who became the candidate increases its term number and votes for itself, then the server sends a request to vote RPC to all other servers. Other servers upon receiving the request to vote should immediately give their vote to the server who asks for the vote if they haven't already voted on the current term.” (Para. 0029); “Raft decomposes consensus into three sub-problems: (1) leader election, (2) log replication, and (3) safety. Each server in Raft exists in one of the three states: leader, follower, or candidate state. The servers in the follower state are passive and expect to get regular heartbeats from the leader. If the servers don't get the heartbeat, the servers go into the candidate state and start an election. If a server wins the election, the server becomes the leader.” (Para. 0028))
As per Claim 6, Zad teaches:
The first node of claim 5, wherein, after the unavailability of the second node at the second data center, one or more of the at least one processor circuit is to change the role of the first node from the follower node to the leader node. (“If the servers don't get the heartbeat, the servers go into the candidate state and start an election.” (Para. 0028); “For example, the heartbeat may be sent at a regular interval on the order of seconds. In one embodiment, if a node does not receive a heartbeat from the leader node for a predetermined or configurable amount of time (which we call election time out)—usually 10 or more heartbeat intervals—the node that should have sent the heartbeat (e.g., the leader node) is assumed to have failed. When the leader node fails, an election is called.” (Para. 0064); role change to a leader, see “If a server wins the election, the server becomes the leader.” (Para. 0028))
As per Claim 7, Zad teaches:
The first node of claim 1, wherein a first network connection between the first node and the second node is a lower latency and higher bandwidth connection than a second network connection between the first node and the third node. (“Servers S1 102, S2 104, and S3 106 can now communicate with each other in stretched network 100. In this example, the distance (and resulting network latency) between S1 102 and S2 104 is distance S1, S2 108, the distance between S1 102 and S3 106 is distance S1, S3 110, and the distance between S2 104 and S3 106 is distance S2, S3 110. However, existing implementations of the Raft protocol may incur inefficiencies when the locations of the servers are not evenly distributed in the network, for example, when distance S1, S3 110 and distance S2, S3 112 is greater than (e.g., >>) distance S1, S2 108. For example, S1 102 and S2 104 may be in one location, and S3 106 may be in a different location.” (Para. 0041); “In an embodiment, each node continuously monitors network performance and/or network latency by sending end-to-end probes to all other nodes in the cluster. Examples of network performance being monitored includes round trip time, one way delay, network bandwidth, jitter, etc. The collected measurements are then used to adaptively and periodically set or reset the leadership priorities for the nodes.” (Para. 0054); “In some embodiments, the distributed system is a stretched network with heterogeneous inter-node latencies. In a distributed cluster of server nodes where the nodes are not in close proximity to each other (e.g., a stretched network), the location of the elected leader node can significantly impact the read/write performance of the consensus protocol.” (Para. 0009))
As per Claim 8, Zad teaches:
The first node of claim 1, wherein the first node and the second node are instantiated on dedicated hardware in corresponding ones of the first data center and the second data center, and the third node is instantiated on cloud resources in the cloud system. (“Kubernetes clusters can span host computers (e.g., servers/nodes) across on premise, public, private, or hybrid clouds. Therefore, it is a good computing platform for hosting cloud native applications that require fast scaling. The Kubernetes master controls Kubernetes nodes and directs the communication across the system. The Kubernetes application programming interface (API) server allows clients to configure the workloads and containers across worker nodes.” (Para. 0031); “Node 500 may be implemented as a physical server (e.g., a server having an x86 or x64 architecture) or other suitable computing device. In the present example, node 500 hosts a number n of guest virtual machines (VM) 502, 504 and 506 (n being a natural number) and can be configured to produce local and remote backups and snapshots of the virtual machines. In some embodiments, multiple of such nodes, each performing reduced performance monitor 202, leadership priority controller 206, and leader election controller 210 processing (such as that described above in connection with FIGS. 2 and 3), may be coupled to a network and configured as part of a cluster. Depending upon the particular implementation, one or more services supported by the distributed system may be related to VMs 502, 504 and 506 or may be unrelated.” (Para. 0088); “Node 500 can also include a number of hardware components below hypervisor 510. For example, node 500 can include storage 520 which can be Redundant Array of Independent Disks (RAID) storage having a number of hard disk drives (HDDs) 522 and/or solid-state drives (SSDs) 524. Node 500 can also include memory 526 (e.g., random-access memory (RAM), read-only memory (ROM), flash, etc.) and one or more processors 528. Lastly, node 500 can include wireless and/or wired network interface components to enable communication over a network 530 (e.g., with other nodes or with the Internet).” (Para. 0090))
As per Claim 10, Zad teaches:
The at least one non-transitory machine-readable medium of claim 9, wherein the first availability zone is a first data center, the second availability zone is a second data center, the third availability zone is a cloud system. (“The nodes of a distributed system interact with one another in order to achieve a common goal, for example, support and/or provision of a particular service. The nodes of a distributed systems may be coupled in communication via a communication link (e.g., a bus, a switch fabric, a wireless or wired network, or a combination thereof) and are typically spread over multiple failure domains to enhance service availability. For example, geographically distributed nodes may be coupled in communication via one or more private and/or public networks (e.g., the Internet).” (Para. 0015); “Kubernetes clusters can span host computers (e.g., servers/nodes) across on premise, public, private, or hybrid clouds. Therefore, it is a good computing platform for hosting cloud native applications that require fast scaling. The Kubernetes master controls Kubernetes nodes and directs the communication across the system. The Kubernetes application programming interface (API) server allows clients to configure the workloads and containers across worker nodes.” (Para. 0031); “FIG. 1 is diagram of an example stretched network 100 according to some embodiments. In one embodiment, a distributed system may be in the form of a stretched network 100 (also called a stretched cluster system), e.g., a deployment model in which two or more physical or virtual servers are part of the same logical cluster, but are located in separate geographical locations to be able to survive localized disaster events. In other embodiments, network 100 need not be a stretched network. In this simple example, there are three servers (e.g., nodes) represented, although in other examples any number of servers may be included in network 100.” (Para. 0035))
As per Claim 11, Zad teaches:
The at least one non-transitory machine-readable medium of claim 9, wherein the first availability zone is a first failure domain in a first data center, the second availability zone is a second failure domain in the first data center, the third availability zone is a third failure domain in a second data center. (“The nodes of a distributed systems may be coupled in communication via a communication link (e.g., a bus, a switch fabric, a wireless or wired network, or a combination thereof) and are typically spread over multiple failure domains to enhance service availability. For example, geographically distributed nodes may be coupled in communication via one or more private and/or public networks (e.g., the Internet).” (Para. 0015); “An “arbiter” generally refers to a process or node that acts as a witness to ensure data availability and data consistency for a distributed system should a node of the distributed system experience downtime or become inaccessible. According to one embodiment, the arbiter provides a vote and is implemented in the form of a server for tie-breaking and located in a failure domain separate from the nodes of the distributed system that respond to requests relating to the service supported by the distributed system. In this manner, should multiple groups of nodes become partitioned from each other, the arbiter allows one group to achieve quorum and form a reconstituted cluster, while the other group is denied quorum and cannot form a reconstituted cluster.” (Para. 0021)).
As per Claim 12, Zad teaches:
The at least one non-transitory machine-readable medium of claim 9, wherein the machine-readable instructions are to cause the first node to synchronize an . . . command log from the third node to the first node. (“storing and replicating the state of the cluster.” (Para. 0032); “once a new command by a client is submitted to one of the nodes in the computing system and before the command is executed the command has to be replicated to logs in all nodes (e.g., each node adds this command to the node's log) The command is considered committed when the log is durably stored on a quorum of nodes.” (Para. 0055)).
Zad does not disclose:
• “encrypted” (claim 12).
However, as per Claim 12, Rule in the analogous art of secured digital transactions, teaches: “encrypted”. (See “Doing so causes the contactless card to generate encrypted data which is transmitted to the computing device. The merchant application may receive the encrypted data generated by the contactless card and transmit the encrypted data to an authentication server for validation. The merchant application may further transmit an indication of a merchant identifier and/or a transaction identifier with the encrypted data. Once validated, the authentication server may instruct a virtual account number server to generate card data for the account associated with the contactless card.” (Col. 1, ln. 63-67 – col. 2, ln. 1-6); “Once received, the authentication application 123 may then authenticate the encrypted data 106. For example, the authentication application 123 may attempt to decrypt the encrypted data 106 using a copy of the private key 104 stored in the memory 122 of the authentication server 120. The private key 104 may be identical to the private key 104 stored in the memory 102 of the contactless card 101, where each contactless card 101 is manufactured to include a unique private key 104 (and the authentication server 120 stores a corresponding copy of each unique private key 104). Therefore, the authentication application 123 may successfully decrypt the encrypted data 106, thereby verifying the encrypted data 106.” (Col. 5, ln. 27-37).
It would have been obvious to one of ordinary skill in the art before the effective filing date to combine the method of Zad with the technique of Rule to include the steps of encrypting and decrypting user or transaction data in an authentication process. Therefore, the incentives of providing increased transaction security provided a reason to make an adaptation, and the invention resulted from application of the prior knowledge in a predictable manner.
As per Claim 13, Zad teaches:
The at least one non-transitory machine-readable medium of claim 9, wherein the machine-readable instructions are to cause the first node to: access a second advertisement specifying a leader-candidate status for the second node in the second availability zone; cause transmission of a vote for the second node to serve as the leader node; and set the role of the first node as a follower node. (“Each node upon arrival in stretched network 100 broadcasts its identifier (ID) and its leadership priority (e.g., vote weight) to all other nodes in the stretched network. During the leader election process, each node compares its total number of received votes as biased by the vote weight of this node with the number of votes received by other nodes as biased by the maximum vote weight of the other nodes as follows.” (Para. 0048); “In order to get elected, the server who became the candidate increases its term number and votes for itself, then the server sends a request to vote RPC to all other servers. Other servers upon receiving the request to vote should immediately give their vote to the server who asks for the vote if they haven't already voted on the current term.” (Para. 0029); “Raft decomposes consensus into three sub-problems: (1) leader election, (2) log replication, and (3) safety. Each server in Raft exists in one of the three states: leader, follower, or candidate state. The servers in the follower state are passive and expect to get regular heartbeats from the leader. If the servers don't get the heartbeat, the servers go into the candidate state and start an election. If a server wins the election, the server becomes the leader.” (Para. 0028))
As per Claim 14, Zad teaches:
The at least one non-transitory machine-readable medium of claim 13, wherein, after the unavailability of the second node at the second availability zone, the machine-readable instructions are to cause the first node to change the role of the first node from the follower node to the leader node. (“If the servers don't get the heartbeat, the servers go into the candidate state and start an election.” (Para. 0028); “For example, the heartbeat may be sent at a regular interval on the order of seconds. In one embodiment, if a node does not receive a heartbeat from the leader node for a predetermined or configurable amount of time (which we call election time out)—usually 10 or more heartbeat intervals—the node that should have sent the heartbeat (e.g., the leader node) is assumed to have failed. When the leader node fails, an election is called.” (Para. 0064); role change to a leader, see “If a server wins the election, the server becomes the leader.” (Para. 0028))
As per Claim 15, Zad teaches:
The at least one non-transitory machine-readable medium of claim 9, wherein a first network connection between the first node and the second node is a lower latency and higher bandwidth connection than a second network connection between the first node and the third node. (“Servers S1 102, S2 104, and S3 106 can now communicate with each other in stretched network 100. In this example, the distance (and resulting network latency) between S1 102 and S2 104 is distance S1, S2 108, the distance between S1 102 and S3 106 is distance S1, S3 110, and the distance between S2 104 and S3 106 is distance S2, S3 110. However, existing implementations of the Raft protocol may incur inefficiencies when the locations of the servers are not evenly distributed in the network, for example, when distance S1, S3 110 and distance S2, S3 112 is greater than (e.g., >>) distance S1, S2 108. For example, S1 102 and S2 104 may be in one location, and S3 106 may be in a different location.” (Para. 0041); “In an embodiment, each node continuously monitors network performance and/or network latency by sending end-to-end probes to all other nodes in the cluster. Examples of network performance being monitored includes round trip time, one way delay, network bandwidth, jitter, etc. The collected measurements are then used to adaptively and periodically set or reset the leadership priorities for the nodes.” (Para. 0054); “In some embodiments, the distributed system is a stretched network with heterogeneous inter-node latencies. In a distributed cluster of server nodes where the nodes are not in close proximity to each other (e.g., a stretched network), the location of the elected leader node can significantly impact the read/write performance of the consensus protocol.” (Para. 0009))
As per Claim 17, Zad teaches:
The method of claim 16, wherein the first availability zone is a first data center, the second availability zone is a second data center, the third availability zone is a cloud system. (“The nodes of a distributed system interact with one another in order to achieve a common goal, for example, support and/or provision of a particular service. The nodes of a distributed systems may be coupled in communication via a communication link (e.g., a bus, a switch fabric, a wireless or wired network, or a combination thereof) and are typically spread over multiple failure domains to enhance service availability. For example, geographically distributed nodes may be coupled in communication via one or more private and/or public networks (e.g., the Internet).” (Para. 0015); “Kubernetes clusters can span host computers (e.g., servers/nodes) across on premise, public, private, or hybrid clouds. Therefore, it is a good computing platform for hosting cloud native applications that require fast scaling. The Kubernetes master controls Kubernetes nodes and directs the communication across the system. The Kubernetes application programming interface (API) server allows clients to configure the workloads and containers across worker nodes.” (Para. 0031); “FIG. 1 is diagram of an example stretched network 100 according to some embodiments. In one embodiment, a distributed system may be in the form of a stretched network 100 (also called a stretched cluster system), e.g., a deployment model in which two or more physical or virtual servers are part of the same logical cluster, but are located in separate geographical locations to be able to survive localized disaster events. In other embodiments, network 100 need not be a stretched network. In this simple example, there are three servers (e.g., nodes) represented, although in other examples any number of servers may be included in network 100.” (Para. 0035)
As per Claim 18, Zad teaches:
The method of claim 16, wherein the first availability zone is a first failure domain in a data center, the second availability zone is a second failure domain in the data center, the third availability zone is a third failure domain in the data center. (“The nodes of a distributed systems may be coupled in communication via a communication link (e.g., a bus, a switch fabric, a wireless or wired network, or a combination thereof) and are typically spread over multiple failure domains to enhance service availability. For example, geographically distributed nodes may be coupled in communication via one or more private and/or public networks (e.g., the Internet).” (Para. 0015); “An “arbiter” generally refers to a process or node that acts as a witness to ensure data availability and data consistency for a distributed system should a node of the distributed system experience downtime or become inaccessible. According to one embodiment, the arbiter provides a vote and is implemented in the form of a server for tie-breaking and located in a failure domain separate from the nodes of the distributed system that respond to requests relating to the service supported by the distributed system. In this manner, should multiple groups of nodes become partitioned from each other, the arbiter allows one group to achieve quorum and form a reconstituted cluster, while the other group is denied quorum and cannot form a reconstituted cluster.” (Para. 0021)).
As per Claim 19, Zad teaches:
The method of claim 16, comprising synchronizing an . . . command log from the third node to the first node. (“storing and replicating the state of the cluster.” (Para. 0032); “once a new command by a client is submitted to one of the nodes in the computing system and before the command is executed the command has to be replicated to logs in all nodes (e.g., each node adds this command to the node's log) The command is considered committed when the log is durably stored on a quorum of nodes.” (Para. 0055)).
Zad does not disclose:
• “encrypted” (claim 19).
However, as per Claim 19, Rule in the analogous art of secured digital transactions, teaches: “encrypted”. (See “Doing so causes the contactless card to generate encrypted data which is transmitted to the computing device. The merchant application may receive the encrypted data generated by the contactless card and transmit the encrypted data to an authentication server for validation. The merchant application may further transmit an indication of a merchant identifier and/or a transaction identifier with the encrypted data. Once validated, the authentication server may instruct a virtual account number server to generate card data for the account associated with the contactless card.” (Col. 1, ln. 63-67 – col. 2, ln. 1-6); “Once received, the authentication application 123 may then authenticate the encrypted data 106. For example, the authentication application 123 may attempt to decrypt the encrypted data 106 using a copy of the private key 104 stored in the memory 122 of the authentication server 120. The private key 104 may be identical to the private key 104 stored in the memory 102 of the contactless card 101, where each contactless card 101 is manufactured to include a unique private key 104 (and the authentication server 120 stores a corresponding copy of each unique private key 104). Therefore, the authentication application 123 may successfully decrypt the encrypted data 106, thereby verifying the encrypted data 106.” (Col. 5, ln. 27-37).
It would have been obvious to one of ordinary skill in the art before the effective filing date to combine the method of Zad with the technique of Rule to include the steps of encrypting and decrypting user or transaction data in an authentication process. Therefore, the incentives of providing increased transaction security provided a reason to make an adaptation, and the invention resulted from application of the prior knowledge in a predictable manner.
As per Claim 20, Zad teaches:
The method of claim 16, comprising: accessing a second advertisement specifying a leader-candidate status for the second node in the second availability zone; transmitting, to the second node, a vote for the second node to serve as the leader node; and setting the role of the first node as a follower node. (“Each node upon arrival in stretched network 100 broadcasts its identifier (ID) and its leadership priority (e.g., vote weight) to all other nodes in the stretched network. During the leader election process, each node compares its total number of received votes as biased by the vote weight of this node with the number of votes received by other nodes as biased by the maximum vote weight of the other nodes as follows.” (Para. 0048); “In order to get elected, the server who became the candidate increases its term number and votes for itself, then the server sends a request to vote RPC to all other servers. Other servers upon receiving the request to vote should immediately give their vote to the server who asks for the vote if they haven't already voted on the current term.” (Para. 0029); “Raft decomposes consensus into three sub-problems: (1) leader election, (2) log replication, and (3) safety. Each server in Raft exists in one of the three states: leader, follower, or candidate state. The servers in the follower state are passive and expect to get regular heartbeats from the leader. If the servers don't get the heartbeat, the servers go into the candidate state and start an election. If a server wins the election, the server becomes the leader.” (Para. 0028)).
Conclusion
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a). A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
The following prior art made of record and not relied upon is considered pertinent to applicant's disclosure: US20170032007A1 (Merriman), discussing “In other embodiments, implementing enhanced arbiter nodes reduces the need for expensive hardware. For example, an enhanced arbiter node can replace a secondary node in a replica set. The hardware requirements for an enhanced arbiter is significantly less than the hardware required for a true secondary node (e.g., by virtue of hosting database date). Thus, the system requirements, computational complexity, and expense of implementing a distributed database supported by replica sets is reduced. In one example, the enhanced arbiters are configured to support the ordinary functions of the replica set (e.g., replication, data commitment, and primary election), and do so without the need of hosting additional database copies. In other aspects, enhanced arbiters enable a minimal replica set environment of one primary, one secondary, and one arbiter while still implementing majority based protocols (e.g., primary election and data commitment, among other options).” (Para. 0006).
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Justin A. Jimenez whose telephone number is (571) 270-3080. The examiner can normally be reached on 8:30 AM - 5:00 PM.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, John W. Hayes can be reached on 571-272-6708. 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.
/Justin Jimenez/
Patent Examiner, Art Unit 3697
/ARI SHAHABI/Primary Examiner, Art Unit 3697