Fastly, Inc.Download PDFPatent Trials and Appeals BoardJan 25, 20212019005692 (P.T.A.B. Jan. 25, 2021) Copy Citation UNITED STATES PATENT AND TRADEMARK OFFICE UNITED STATES DEPARTMENT OF COMMERCE United States Patent and Trademark Office Address: COMMISSIONER FOR PATENTS P.O. Box 1450 Alexandria, Virginia 22313-1450 www.uspto.gov APPLICATION NO. FILING DATE FIRST NAMED INVENTOR ATTORNEY DOCKET NO. CONFIRMATION NO. 14/702,057 05/01/2015 Devon O'Dell 683.0046 7779 76444 7590 01/25/2021 Setter Roche LLP 1860 Blake Street Suite 100 Denver, CO 80202 EXAMINER SWIFT, CHARLES M ART UNIT PAPER NUMBER 2196 NOTIFICATION DATE DELIVERY MODE 01/25/2021 ELECTRONIC Please find below and/or attached an Office communication concerning this application or proceeding. The time period for reply, if any, is set in the attached communication. Notice of the Office communication was sent electronically on above-indicated "Notification Date" to the following e-mail address(es): uspto@setterroche.com PTOL-90A (Rev. 04/07) UNITED STATES PATENT AND TRADEMARK OFFICE BEFORE THE PATENT TRIAL AND APPEAL BOARD Ex parte DEVON O’DELL Appeal 2019-005692 Application 14/702,057 Technology Center 2100 Before MAHSHID SAADAT, ST. JOHN COURTENAY III, and JASON CHUNG, Administrative Patent Judges. COURTENAY, Administrative Patent Judge. DECISION ON APPEAL Pursuant to 35 U.S.C. § 134(a), Appellant1 appeals from the Examiner’s decision rejecting claims 1–20, which are all claims pending in the application. We have jurisdiction under 35 U.S.C. § 6(b). We affirm. 1 We use the term “Appellant” to refer to “applicant” as defined in 37 C.F.R. § 1.42. Appellant identifies the real party in interest as Fastly, Inc. Appeal Br. 2. Appeal 2019-005692 Application 14/702,057 2 STATEMENT OF THE CASE2 The claims are directed to a method and apparatus for enhancing “how race conditions are tested in a target program.” See Spec. ¶ 3. Representative Claim 1 Claim 1, reproduced below, is representative of the subject matter on Appeal: 1. A method of operating a computing system to test one or more race conditions in a target program, wherein the target program comprises a plurality of concurrent processes, the method comprising: executing a scheduler program, the scheduler program comprising order of operation rules to produce the one or more race conditions in the target program; initiating execution of the target program; and executing each concurrent process in the plurality of concurrent processes based on the order of operation rules for the target program, wherein the order of operation rules control operation of the plurality of concurrent processes to produce the one or more race conditions in the target program. Appeal Br. 13 (emphasis added regarding disputed “executing” limitation). 2 Our decision refers to Appellant’s Appeal Brief (“Appeal Br.,” filed April 2, 2018); Reply Brief (“Reply Br.,” filed August 15, 2018); Examiner’s Answer (“Ans.,” mailed June 15, 2018); Final Office Action (“Final Act.,” mailed September 22, 2017); and the original Specification (“Spec.,” filed May 1, 2015). Appeal 2019-005692 Application 14/702,057 3 REFERENCES The prior art relied upon by the Examiner as evidence is: Name Reference Date Ur et al. (“Ur”) US 2003/0131283 Al Jul. 10, 2003 Laksberg et al. (“Laksberg”) US 2011/0161962 Al Jun. 30, 2011 Arnold et al. (“Arnold”) US 2012/0054756 Al Mar. 1, 2012 REJECTIONS 3 A. Claims 1, 6, 7, 10, 15, 16, and 19 are rejected under 35 U.S.C. § 102(a)(1) as being anticipated by Ur. See Final Act. 3. B. Claims 2–4, 11–13, and 20 are rejected under 35 U.S.C. § 103 as being unpatentable over the combination of Ur and Laksberg. See Final Act. 6. C. Claims 5, 8, 9, 14, 17, and 18 are rejected under 35 U.S.C. § 103 as being unpatentable over the combination of Ur and Arnold. See Final Act. 9. CLAIM GROUPING Based on Appellant’s arguments (Appeal Br. 7–9), and our discretion under 37 C.F.R. § 41.37(c)(1)(iv), we decide the appeal of anticipation Rejection A of claims 1, 6, 7, 10, 15, 16, and 19 on the basis of representative claim 1. We address Rejection B of separately argued 3 The Examiner withdrew the written description rejection under 35 U.S.C. § 112(b), of claims 19 and 20. See Ans. 4. Therefore, this rejection is not before us on appeal. Appeal 2019-005692 Application 14/702,057 4 dependent claim 3, infra. Dependent claims 5, 8, 9, 14, 17, and 18 are rejected under obviousness Rejection C, and are not argued separately, and thus stand or fall with the independent claim from which they respectively depend. ISSUES AND ANALYSIS Throughout this opinion, we give the claim limitations the broadest reasonable interpretation (BRI) consistent with the Specification. See In re Morris, 127 F.3d 1048, 1054 (Fed. Cir. 1997). In reaching this decision, we consider all evidence presented and all arguments actually made by Appellant. To the extent Appellant has not advanced separate, substantive arguments for particular claims, or other issues, such arguments are forfeited.4 See 37 C.F.R. § 41.37(c)(1)(iv). We disagree with Appellant’s arguments with respect to anticipation Rejection A of representative claim 1 and, unless otherwise noted, we incorporate by reference herein and adopt as our own: (1) the findings and 4 See In re Google Technology Holdings LLC, 2020 WL 6685948, slip op. at * 3 (Fed. Cir. 2020): It is well established that “[w]aiver is different from forfeiture.” United States v. Olano, 507 U.S. 725, 733 (1993).[] “Whereas forfeiture is the failure to make the timely assertion of a right, waiver is the ‘intentional relinquishment or abandonment of a known right.’” Id. (quoting Johnson v. Zerbst, 304 U.S. 458, 464 (1938)) (additional citations omitted). The two scenarios can have different consequences for challenges raised on appeal, id. at 733–34, and for that reason, it is worth attending to which label is the right one in a particular case. Appeal 2019-005692 Application 14/702,057 5 reasons set forth by the Examiner in the action from which this appeal is taken, and (2) the reasons and rebuttals set forth in the Examiner’s Answer in response to Appellant’s arguments. We highlight and address specific findings and arguments regarding claim 1 for emphasis as follows. Anticipation Rejection A of Claims 1, 6, 7, 10, 15, 16, and 19 Appellant argues (Appeal Br. 7–9; Reply Br. 2–4) that the Examiner’s rejection of claim 1 under 35 U.S.C. § 102(a)(1) as being anticipated over the Ur reference is in error. Appellant’s contentions present us with the following issue: Issue: Did the Examiner err in finding that Ur expressly or inherently discloses: “executing a scheduler program, the scheduler program comprising order of operation rules to produce the one or more race conditions in the target program,” as recited in claim 1? Appellant notes that Ur: teaches a first execution of software under test, during which race detection and execution recording are performed, and if a race condition is detected in the first execution, a second execution is performed, wherein the second execution comprises a replay of the first execution using the identical interleaving and halts at the start point of the race condition, and an alternative interleaving is forced and the second execution continues to completion (Ur, paragraphs 0020 and 0023). Furthermore, in some preferred embodiments, a test suite “comprises a plurality of tests using identical input data but compelling alternative interleavings through the use of irritators. Such a plurality of tests increases the probability of reaching race conditions.” (Ur, paragraph 0106). Appeal Br. 7. Appeal 2019-005692 Application 14/702,057 6 Appellant contends: Increasing the probability of a race condition by executing multiple instances of an application is neither equivalent nor suggestive to executing a target program with order of operation rules dictated by a scheduler program to produce one or more race conditions, as required by claim 1. In fact, Ur fails to teach that a race condition must occur in the execution of the application. Rather, Ur teaches “if a race condition is detected in the first execution ...” and “a plurality of tests increases the probability of reaching race conditions” (Ur, paragraphs 0020, and 0106). Increasing the probability of a race condition is neither equivalent nor suggestive to order of operations rules that force the production of a race condition. Appeal Br. 8. Appellant similarly argues: Ur teaches that the execution controller, replay tool, and thread- enabled debugger are only active components during the second execution of the target program (Ur, Fig. 7 and paragraph 0021). In particular, Ur teaches that during the second execution, the execution controller forces an alternative interleaving (Ur, paragraph 0021). However, while Ur teaches the use of an alternative interleaving, an alternative interleaving is neither equivalent nor suggestive to the operations of claim 1. Specifically, an “interleaving is assumed to be a set of information which describes a sequence in which a parallel program executed in a given execution, and the set of all possible interleavings for a parallel program is termed the “interleaving space” for the parallel program” (Ur, paragraph 0006). In other words, Ur teaches that if a race condition is identified during a first execution of a program, an execution controller, during a second execution, may implement a second interleaving or change the parallel processes. Thus, Ur teaches that changes are made in the sequence of program execution only when a race condition is detected is detected in a first execution. Ur fails to teach that the execution controller or any program executes in Ur Appeal 2019-005692 Application 14/702,057 7 in conjunction with the target program to force one or more race conditions to occur. Id. The Examiner disagrees with Appellant, and concludes that Appellant has merely claimed an intended use. Ans. 5. Claim Construction We begin our analysis with claim construction. “An intended use or purpose usually will not limit the scope of the claim because such statements usually do no more than define a context in which the invention operates.” Boehringer Ingelheim Vetmedica, Inc. v. Schering-Plough Corp., 320 F.3d 1339, 1345 (Fed. Cir. 2003). Although “[s]uch statements often . . . appear in the claim’s preamble,” In re Stencel, 828 F.2d 751, 754 (Fed. Cir. 1987), a statement of intended use or purpose can appear elsewhere in a claim. Id. We identify the statements of intended purpose in method claim 1 with italics: 1. A method of operating a computing system to test one or more race conditions in a target program, wherein the target program comprises a plurality of concurrent processes, the method comprising: executing a scheduler program, the scheduler program comprising order of operation rules to produce the one or more race conditions in the target program; initiating execution of the target program; and executing each concurrent process in the plurality of concurrent processes based on the order of operation rules for the target program, wherein the order of operation rules control Appeal 2019-005692 Application 14/702,057 8 operation of the plurality of concurrent processes to produce the one or more race conditions in the target program. Appeal Br. 13 (emphasis added). Although Appellant argues that “Ur fails to teach that the execution controller or any program executes in Ur in conjunction with the target program to force one or more race conditions to occur” (Appeal Br. 8), we conclude that the aforementioned italicized intended purpose language of claim 1 does not positively require that “the one or more race conditions” must occur. (emphasis added). Although Appellant urges that “[i]ncreasing the probability of a race condition [(referring to Ur, paragraph 106)] is neither equivalent nor suggestive to order of operations rules that force the production of a race condition” (Appeal Br. 8, emphasis added), we note that claims 1–20 are silent regarding any mention of the argued word “force.” Moreover, we find paragraph 21 of the Specification describes an embodiment in which the argued “forcing” of a race condition “may be defined” only in some implementations: In addition to executing the scheduler program, the method also initiates execution of the target program, wherein the target program comprises one or more concurrent processes (202). Once the target program and the scheduler program are initiated, each concurrent process of the target program is executed based on the order of operation rules for the target program (203). In some implementations, states of interest may be defined to ensure that the concurrent processes are executed in a manner that forces a race condition to occur. Spec. ¶ 21 (emphasis added). Appeal 2019-005692 Application 14/702,057 9 Thus, we find the exemplary, non-limiting language of paragraph 21 supports our conclusion that a broad but reasonable interpretation of claim 1 does not require the “one or more race conditions” to actually occur, because: (1) the statements of intended purpose recited in claim 1, and (2) in light of the supporting descriptions found in the Specification (e.g., see Spec. ¶ 21). We reach the same conclusion regarding the similar language of intended purpose or use that is recited in remaining independent claims 10 and 19. We emphasize that, because “applicants may amend claims to narrow their scope, a broad construction during prosecution creates no unfairness to the applicant or patentee.” In re ICON Health and Fitness, Inc., 496 F.3d 1374, 1379 (Fed. Cir. 2007) (citation omitted). To the extent that our reviewing court may adopt a more narrow claim interpretation similar to that argued by Appellant (Appeal Br. 7–8), and to the extent that paragraph 106 of Ur merely discloses increasing the probability of reaching a race condition, we find Ur discloses an alternative embodiment that realizes a race condition in a manner that we find anticipates the disputed limitation of claim 1. See, for example, paragraph 20 of Ur, which we reproduce in pertinent part below: 5 5 We note that Ur ¶ 6 defines “interleaving” as follows: “In the context of the present patent application and in the claims, an ‘interleaving’ is assumed to be a set of information which describes a sequence in which a parallel program executed in a given execution, and the set of all possible interleavings for a parallel program is termed the ‘interleaving space’ for the parallel program.” Ur ¶ 10 further describes: “Race conditions occur when two or more simultaneously executing threads or processes access the same shared memory location without proper synchronization, and at least one access is a write.” Appeal 2019-005692 Application 14/702,057 10 In preferred embodiments of the present invention, a system for race detection in parallel software is defined. The system comprises a method implemented by software and/or hardware components. The method specifies a first execution of software under test (SUT) in a test harness, during which race detection and execution recording are performed. If a race condition is detected in the first execution, a second execution is performed. The second execution comprises a replay of the first execution, making use of recorded execution information to ensure that an identical interleaving occurs in the replay. The second execution halts at the point, herein termed the start-point, at which the race condition was detected. At the start-point, preferably, an alternative interleaving is forced and the second execution continues to completion. Ur ¶ 20 (emphasis added). Ur at paragraph 21 continues: “If a race was detected in the first execution, during the second execution an execution controller forces the alternative interleaving, and the replay continues to completion, generating a second-execution outcome. If the first-execution outcome and the second- execution outcome are both correct, the detected race is not identified as a defect.” Ur further describes: “However, if the one or both of the first- execution outcome and the second-execution outcome is incorrect, the race is a bug and requires developer attention.” Ur ¶ 21. We find these additional portions of Ur buttress the Examiner’s finding of anticipation regarding at least Figure 8, and the supporting description found at paragraphs 95–96 of Ur. See Ans. 6. In particular, we find paragraphs 95–97 essentially mirror the description found in paragraphs 20–21 of Ur. See also Ur, paragraph 101: “Race is detected between statements A and F, since both statements write to a shared memory location X without synchronization.” Appeal 2019-005692 Application 14/702,057 11 Claim 6 recites: “The method of claim 1 wherein executing the scheduler program comprises initiating a thread for the scheduler program.” Although on page 9 of the Appeal Brief Appellant nominally argues dependent claim 6 (also rejected under anticipation Rejection A), we are not persuaded the Examiner erred because Ur expressly discloses a “thread enabled-debugger” in paragraph 27, as cited by the Examiner. Final Act. 4. For at least these reasons, we sustain the Examiner’s Rejection A of representative claim 1 and dependent claim 6 as being anticipated by Ur. Claims 7, 10, 15, 16, and 19, also rejected under anticipation Rejection A, fall with claim 1. See 37 C.F.R. § 41.37(c)(1)(iv); see also supra “CLAIM GROUPING.” Rejection B of Claims 2–4, 11–13, and 20 under 35 U.S.C. § 103 Regarding Rejection B of claims 2–4, 11–13, and 20 under 35 U.S.C. § 103, Appellant focuses on the following limitations recited in dependent claim 3: 3. The method of claim 2, wherein the target program further comprises state identifiers for the plurality of concurrent processes, and wherein executing each concurrent process in the plurality of concurrent processes based on the order of operation rules for the target program comprises executing each concurrent process in the plurality of concurrent processes based on the state rules and the state identifiers. Appeal Br. 13. Based on Appellant’s arguments (id.), we consider claim 3 as the representative claim for the claims rejected under Rejection B. Appeal 2019-005692 Application 14/702,057 12 Appellant contends that the secondary Laksberg reference “only defines mutable and immutable state[s] for the shared memory, and does not include state identifiers or their equivalent for concurrent processes of a program or application, such as those described in claim 3.” Appeal Br. 10. Appellant asserts: “[s]pecifically, Laksberg teaches a configuration wherein tokens are used for controlling writing and reading of data from memory, but fails to teach that the state identifiers are implemented as part of a target program.” Id. Appellant urges: “In fact, Laksberg fails to teach that any state information is maintained for a target program, let alone for concurrent processes in the program that are executed based on order of operation rules from a second program. Id. The Examiner disagrees with Appellant, and further explains the basis for the rejection, relying on Laksberg at paragraphs 25–32. The Examiner finds: “the particular execution order of the plurality of concurrent processes (agents of Laksberg) is based on the state rules (rules governing mutable shared state) and state identifier of the concurrent processes (agent states, such as identifier of the agents as writer agents, general reader agents and immutable reader agents).” Ans. 9. We begin our analysis of the “state identifiers” with claim construction. See claim 3. We find no express definition of “state identifiers” in the claims. Turning to the Specification for context, we find only a non-limiting, exemplary description for the disputed “state identifiers:” For example, to force a race condition in a program, state identifiers may be defined within each of the concurrent processes of the program. These state identifiers may be used to define states, such as state 530, and may comprise function calls, Appeal 2019-005692 Application 14/702,057 13 commands, or some other flag within the processing instructions of the concurrent process. Once defined, state rules with the test process may manage the order of operation of each of the concurrent processes based on the defined state identifiers and the state rules. Spec. ¶ 35, (emphasis added). Given the breadth of state identifiers that “may comprise function calls, commands, or some other flag within the processing instructions of the concurrent process” (id.), on this record, we are not persuaded the Examiner erred. Nor does Appellant point to any evidence of record that shows combining the respective teachings of Ur and Laksberg in the manner found by the Examiner (Final Act. 6–7) would have been “uniquely challenging or difficult for one of ordinary skill in the art” or would have “represented an unobvious step over the prior art.” Leapfrog Enters., Inc. v. Fisher-Price, Inc., 485 F.3d 1157, 1162 (Fed. Cir. 2007) (citing KSR, 550 U.S. at 418). On this record, we find the Examiner has set forth “some articulated reasoning with some rational underpinning to support the legal conclusion of obviousness.” In re Kahn, 441 F.3d 977, 988 (Fed. Cir. 2006) (cited with approval in KSR, 550 U.S. at 418). Therefore, based upon a preponderance of the evidence, we are not persuaded of error regarding the Examiner’s underlying factual findings and ultimate legal conclusion of obviousness regarding Rejection B of dependent claim 3. Accordingly, we sustain the Examiner’s obviousness Rejection B of representative dependent claim 3. The remaining grouped dependent claims 2, 4, 11–13, and 20, also rejected under Rejection B (and not argued separately) fall with representative claim 3. See 37 C.F.R. § 41.37(c)(1)(iv). Appeal 2019-005692 Application 14/702,057 14 Accordingly, we sustain the Examiner’s obviousness Rejection B of claims 2–4, 11–13, and 20. Rejection C of claims 5, 8, 9, 14, 17, and 18 under 35 U.S.C. § 103 Appellant advances no separate arguments for dependent claims 5, 8, 9, 14, 17, and 18 that were rejected by the Examiner under Rejection C. Arguments not made are forfeited. See 37 C.F.R. § 41.37(c)(1)(iv)(2017). CONCLUSIONS The Examiner did not err with respect to anticipation Rejection A of claims 1, 6, 7, 10, 15, 16, and 19 under 35 U.S.C. § 102(a)(1) over the cited Ur reference. The Examiner did not err with respect to obviousness Rejection B of claims 2–4, 11–13, and 20 under 35 U.S.C. § 103 over the cited prior art of record. The Examiner did not err with respect to obviousness Rejection C of claims 5, 8, 9, 14, 17, and 18 under 35 U.S.C. § 103 over the cited prior art of record. Appeal 2019-005692 Application 14/702,057 15 DECISION SUMMARY In summary: Claims Rejected 35 U.S.C. § Basis / References Affirmed Reversed 1, 6, 7, 10, 15, 16, 19 102(a)(1) Ur 1, 6, 7, 10, 15, 16, 19 2–4, 11–13, 20 103 Ur, Laksberg 2–4, 11–13, 20 5, 8, 9, 14, 17, 18 103 Ur, Arnold 5, 8, 9, 14, 17, 18 Overall Outcome 1–20 FINALITY AND RESPONSE No time period for taking any subsequent action in connection with this appeal may be extended under 37 C.F.R. § 1.136(a)(1)(iv). See 37 C.F.R. § 41.50(f). AFFIRMED Copy with citationCopy as parenthetical citation