Thomas Millett et al.Download PDFPatent Trials and Appeals BoardSep 7, 20212020002587 (P.T.A.B. Sep. 7, 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. 13/282,802 10/27/2011 Thomas W. Millett 14917.1918US01/333774USNP 7599 27488 7590 09/07/2021 MERCHANT & GOULD (MICROSOFT) P.O. BOX 2903 MINNEAPOLIS, MN 55402-0903 EXAMINER MINA, FATIMA P ART UNIT PAPER NUMBER 2159 NOTIFICATION DATE DELIVERY MODE 09/07/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): USPTO27488@merchantgould.com usdocket@microsoft.com PTOL-90A (Rev. 04/07) UNITED STATES PATENT AND TRADEMARK OFFICE BEFORE THE PATENT TRIAL AND APPEAL BOARD Ex parte THOMAS W. MILLETT and JOSEPH T. FLINT Appeal 2020-002587 Application 13/282,802 Technology Center 2100 Before MARC S. HOFF, LARRY J. HUME, and JUSTIN BUSCH, Administrative Patent Judges. BUSCH, Administrative Patent Judge. DECISION ON APPEAL Appellant1 appeals under 35 U.S.C. § 134(a) from the Examiner’s decision to reject claims 1–8 and 10–20. We have jurisdiction over the pending claims under 35 U.S.C. § 6. We AFFIRM. 1 We use the word “Appellant” to refer to “applicant” as defined in 37 C.F.R. § 1.42(a). Appellant identifies the real party in interest as Microsoft Technology Licensing, LLC. Appeal Br. 3. Appeal 2020-002587 Application 13/282,802 2 STATEMENT OF THE CASE INTRODUCTION The invention relates generally to a database adaptor that intercepts and processes database commands issued by an application on a database other than the browser-hosted database targeted by the application. Spec. ¶ 3. Figure 2 is reproduced below: Figure 2 depicts “an exemplary system that shows intercepting database calls before they are executed against a database.” Spec. ¶ 5. Claims 1 (method), 10 (computer-readable storage device), and 16 (system) are Appeal 2020-002587 Application 13/282,802 3 independent claims. Claim 1, which is illustrative of the claimed subject matter, is reproduced below: 1. A method for intercepting and processing database commands, comprising: detecting, by a device, a database command from a caller that requests an operation to be performed on a database, on a server, that follows an Application Programming Interface (API) that is defined using a first specification; intercepting, by the device, the database command before executing the database command against the database, thereby preventing attempts to execute the database command against the database according to the first specification; in response to intercepting the database command and preventing attempts to execute the database command against the database, identifying a different database, stored on the device, to perform the database command according to a different specification; passing the processed intercepted database command to a database engine to perform the requested operation defined by the database command on the different database according to the different specification; receiving a result from performing the requested operation defined by the database command on the different database according to the different specification; processing the result, from the different database, to emulate a second result that would have been returned from the database according to the first specification; and providing the second return to the caller. REFERENCES Name Patent or Application # Date Balin US 2005/0149537 A1 July 7, 2005 Estrada US 7,237,002 B1 June 26, 2007 Kryukov US 8,407,196 B1 Mar. 26, 2013 Appeal 2020-002587 Application 13/282,802 4 THE PENDING REJECTIONS Claims 1, 4–6, 10, 12, and 13 stand rejected under 35 U.S.C. § 103 as obvious over Balin and Kryukov. Final Act. 2–7. Claims 2, 3, 7, 8, 11, and 14–202 stand rejected under 35 U.S.C. § 103 as obvious over Balin, Kryukov, and Estrada. Final Act. 8–11. ANALYSIS We have reviewed the Examiner’s § 103 rejections in light of Appellant’s arguments that the Examiner erred. In reaching this decision, we have considered all evidence presented and all arguments Appellant made. Arguments Appellant could have made, but chose not to make in the Briefs, are deemed waived. See 37 C.F.R. § 41.37(c)(1)(iv). CLAIMS 1, 4–6, 10, 12, AND 13 The Examiner finds that Balin teaches or suggests nearly every element of independent claim 1. Final Act. 2–4. In part, the Examiner finds Balin teaches “receiving a result from performing the requested operation 2 We note that, in the Final Rejection, the Examiner does not expressly reject claim 17. See Final Act. 2–11. However, in the Non-Final Rejection, mailed May 29, 2018, we note the Examiner rejects claim 17 on the same basis as claim 3. See Non-Final Act. 9. Appellant treats claim 17 as rejected and does not argue claims 3 and/or 17 separately with particularity. See Appeal Br. 9. The Examiner rejects claim 18 as obvious over only Balin and Kryukov as well as obvious over Balin, Kryukov, and Estrada. See Final Act. 2–11. Claim 18 depends from claim 16, which stands rejected over Balin, Kryukov, and Estrada. Therefore, claim 18 is not properly rejected as obvious over Balin and Kryukov (without Estrada). Appellant, however was not prejudiced due to either the error by the Examiner in accidentally omitting the rejection of claim 17 when copying claims to the new obviousness rejection introducing Estrada in the Final Action or the error in including claim 18 as rejected as obvious over only Balin and Kryukov. Accordingly, we treat the Examiner’s typographical error as a harmless. Appeal 2020-002587 Application 13/282,802 5 defined by the database command on the different database according to the different specification” and “processing the result, from the different database, to [generate] a second result that would have been returned from the database according to the first specification.” Final Act. 4 (citing Balin ¶¶ 66, 67, 70, 94). The Examiner finds “Balin does not explicitly teach emulating a result,” but then finds “Kryukov teaches emulating a result.” Final Act. 4 (citing Kryukov 6:1–5). The Examiner determines it would have been obvious to modify Balin’s teaching of redirecting database commands to a different database and returning the results to the user to include Kryukov’s feature of emulating results because it provides predictable results such as performing changes in a different database and returning those results to “save space of the original database.” Ans. 6; Final Act. 4–5 (finding incorporating Kryukov’s teachings also adds scalability). Accordingly, and of particular relevance to this Appeal, the Examiner finds the combination of Balin and Kryukov teaches or suggests the disputed limitation: “processing the result, from the different database, to emulate a second result that would have been returned from the database according to the first specification”. See Final Act. 4–5. We begin with a brief overview of the prior art. Balin generally relates to database migration from one platform to another. Balin, Abstract. “The target and source databases can be any relational databases including, without limitation, Oracle, SQL Server (Microsoft), DB2 UDE (IBM), Sybase, MySQL, PostgreSQL, and the like.” Balin, Abstract. “A feature of the invention is the provision of a virtual engine enabling the running of an original application on a migrated database.” Balin, Abstract. Figure 12, Appeal 2020-002587 Application 13/282,802 6 which shows how an application accesses a different database than the application was written for without changing the application code, is reproduced below. Figure 12 of Balin “is a block diagram of a database conversion with source application running on a target database according to an embodiment of the invention.” Balin ¶ 33; see also Balin¶¶ 66–79 (describing Figure 12). As shown in Figure 12, Balin creates Target Database on Platform Y, Appeal 2020-002587 Application 13/282,802 7 which uses SQL dialect Y, having equivalent or translated semantics, schema, and migrated data. Balin ¶ 66, Fig. 12. Once Balin migrates the database to Target Database, the system enables “a source application to run on a target database.” Balin ¶ 66. Thus, when application 1225 makes a SQL dialect X call to the Source Database (on Platform X), SQL Converter Wrapper 1280 intercepts and translates the database command to a command using SQL dialect Y for ultimate execution on Target Database. Balin ¶ 67, Fig. 12; see also Balin ¶¶ 70 (“The wrapper intercepts a database connection call which was suppose[d] to open connection to the database on Platform X. Seamlessly to the application, the wrapper redirects the call to the target database on Platform Y.”), 73 (“The wrapper uses the translated target SQL statement to run on the target database platform.”). “In this manner, a user can use source application 1225 to run queries on target database without having to migrate to target application 1275.” Balin ¶ 67. Balin’s Figures 16–17 depict additional examples with further abstraction of the converter functions in order “to implement a middleware layer that provides a full abstraction above databases of different vendors.” Balin ¶ 84; see Balin ¶¶ 85–89. The middleware “emulates the database relative to client applications” in order to receive “incoming SQL queries from multiple clients,” query the appropriate physical database, “and return[] the dataset to the original application.” Balin ¶ 88. “The primary benefit of this architecture is that it allows truly consolidating databases of multiple database vendors entirely seamless for a client application.” Balin ¶ 88. Kryukov generally relates to a “database architecture that supports functionality of an emulator” to emulate and test malware components. Appeal 2020-002587 Application 13/282,802 8 Kryukov, Abstract; see also Kryukov 3:26–29 (“The object-oriented database, in accordance with an exemplary embodiment, supports an emulator and provides for effective recovery of a database fragments after multiple modifications of the fragments by a malware component”). Kryukov tests malware components using a system that makes a backup copy of a database, then modifies the emulated database, generates and records emulation results, then restores the database using the backup copy. Kryukov 5:55–6:27. Appellant’s arguments generally assert that neither Balin nor Kryukov teaches “processing the result, from the different database, to emulate a second result that would have been returned from the database according to the first specification” and that there is insufficient rationale to combine Balin and Kryukov. See Appeal Br. 10–15; Reply Br. 2–9. In part, Appellant argues that the Examiner’s construction is inconsistent with the ordinary usage of the term, which Appellant asserts is “imitate” or “imitate by means of an emulator.” Reply Br. 3 (citing MERRIAM WEBSTER’S COLLEGIATE DICTIONARY, 379 (10 ed. 1995). Appellant contends “the Examiner believes the claim term only means ‘return a result.’” Reply Br. 7 (citing Ans. 4). However, as Appellant noted, Reply Br. 3 (citing Ans. 3, the Examiner construes emulate to mean copy, match, or reproduce, Ans. 3, not as “return a result.” The Examiner’s finding that Kryukov returns a result follows the Examiner’s finding that Kryukov teaches using an emulator to emulate actions taken “in a separate database than the actual database.” Ans. 4. We understand the Examiner’s finding regarding Kryukov returning Appeal 2020-002587 Application 13/282,802 9 a result to merely explain that Kryukov emulates and processes a “result that would have been returned,” as recited in claim 1. Regarding the construction of “emulate,” the Examiner finds the Specification’s limited description of emulating results and the lack of clarity in the claim language results in a broadest reasonable interpretation of “emulat[ing] a second result” that encompasses Kryukov’s disclosed emulation. Ans. 3–4 (citing Spec. ¶¶ 26, 35); Kryukov 1:54–58 (describing using the “functionality of an emulator”), 3:25–30 (describing using an emulator to recover database fragments modified by a malware component), 5:65–67 (describing performing the emulation using portions of the original database loaded into memory for use by the emulator)). Thus, the Examiner applies the broadest reasonable interpretation and construes emulating as “copying the results, matching the results or reproducing the results.” Ans. 3. Copying or matching results is effectively synonymous with imitating results. Accordingly, we fail to see how the Examiner’s interpretation of “emulate” as meaning copy, match, or reproduce is materially different than the cited definition of emulate as “imitate” (“by means of an emulator”). Appellant notes the Examiner’s finding that “Balin does not ‘explicitly teach’ the post-processing of the results from the second database to emulate a return from a first database,” and Appellant asserts the cited sections of Balin do not describe processing the results returned from the second database. Appeal Br. 11–12; id. (arguing “Balin describes little about what happens to the result of calls to the target database”). Appellant further argues Kryukov describes a database system with an emulator that generates results emulating a malware infection of the database, but Appeal 2020-002587 Application 13/282,802 10 Kryukov does not relate to returning results that emulate a result from another database. Appeal Br. 13–14. Appellant also asserts the rationale for combining Kryukov’s teachings with Balin’s teachings is “nonsensical” because it is unclear why adding Kryukov’s emulation of a malware-infected database helps with scalability, why a person of ordinary skill in the art would have made the combination, or how the teachings would have been combined because, according to Appellant, there is no reason for Balin (which sends commands to a target database) to send commands to Kryukov’s database that contains malware. Appeal Br. 15. Appellant further contends Kryukov’s emulator uses the same database (i.e., a database having the same specification)—just a version infected with malware—whereas Balin relates to migrating a database to a different type of database. Appeal Br. 15. Appellant correctly summarizes Kryukov’s cited passages as relating to emulating malware infections of a database to emulate and return results from an infected database or portion thereof. Appellant’s definition of emulate is “imitate by means of an emulator.” Reply Br. 3. Kryukov explicitly teaches using an emulator to emulate and return results as if the database were infected with certain malware components. E.g., Kryukov 3:26–29. The Examiner relies on Kryukov merely to demonstrate that it was known to emulate database query results. It is the combination of Balin, which already teaches returning a result from a database having a different specification than the database to which the command was initially directed prior to being intercepted. Thus, we are not persuaded that Kryukov fails to teach “emulating a result.” Appeal 2020-002587 Application 13/282,802 11 We understand the Examiner to determine that it would have been obvious to implement Kryukov’s emulator to perform database queries in Balin’s system because it uses known techniques in known systems that results in predictable results. The Examiner does not propose implementing Kryukov’s emulator to introduce malware in a database but rather to use an emulator to generate and return emulated results. Accordingly, we agree with the Examiner that the combination teaches or suggests the disputed limitation. An obviousness analysis “need not seek out precise teachings directed to the specific subject matter of the challenged claim, for a court can take account of the inferences and creative steps that a person of ordinary skill in the art would employ.” KSR Int’l Co. v. Teleflex Inc., 550 U.S. 398, 418 (2007). “A person of ordinary skill is also a person of ordinary creativity, not an automaton.” KSR, 550 U.S. at 421. “The test for obviousness is not whether the features of a secondary reference may be bodily incorporated into the structure of the primary reference; . . . [r]ather, the test is what the combined teachings of those references would have suggested to those of ordinary skill in the art.” In re Keller, 642 F.2d 413, 425 (CCPA 1981) (citations omitted). The operative question is “whether the improvement is more than the predictable use of prior art elements according to their established functions.” KSR, 550 U.S. at 417. As noted above, the Examiner finds Balin teaches every limitation recited in claim 1, including “processing a result, from the different database” to provide “a second result that would have been returned from the database according to the first specification,” but that “Balin does not explicitly teach emulating a result.” Final Act. 3–4 (emphasis added). The Appeal 2020-002587 Application 13/282,802 12 Examiner’s finding that emulating a result is not explicitly taught appears to be based on an interpretation, consistent with the Examiner’s reliance on Kryukov, that the claim requires an emulator. See, e.g., Final Act. 4. However, we do not interpret the disputed limitation to require that the database commands are executed in an emulator or emulation environment. Rather, consistent with Appellant’s Specification and arguments, we determine that the recited “emulat[ing] a second result that would have been returned from the database according to the first specification” merely requires that the system processes the results from the different database to ensure that the results returned to the calling application are what the application expects and would have received if the database command had not been intercepted. See Reply Br. 3–5 (“Results from the different database must be processed for the application, which expects the results to appear as having come from the database according to the first specification.”); Spec. ¶¶ 26, 35. The point of this is to “allow[] an ‘application to be developed for use across platforms/devices without being limited by the browser/device implementation [of the database].’” Reply Br. 5 (quoting Spec. ¶ 26). Notably, this is the same purpose as Balin’s SQL Converter Wrapper 1280 and middleware components 1660, 1700. See Balin ¶¶ 66–68, 84–89, Figs. 12, 16–17. For example, Balin discloses that a “particular feature of the inventive concept demonstrates how to run a client application that was designed for a database platform A to run against a database platform B without rewriting the application code.” Balin ¶ 17. Moreover, Balin explicitly discloses that “middleware 1700 emulates the database relative to client applications.” Balin ¶ 88. Appellant is correct that Balin does not Appeal 2020-002587 Application 13/282,802 13 explicitly disclose what happens to the results returned from the migrated database. However, given that part of Balin’s purpose is to allow an unmodified client application designed for one database platform to execute queries against a different database platform, these disclosures at least implicitly teach or suggest to a person of ordinary skill in the art that the results are processed in order to return results that emulate (i.e., imitate, copy, or reproduced) the results that would have been returned by the first database platform. Otherwise, Balin’s application would not function properly. The Examiner’s rejection appears to recognize this because the Examiner does not find Balin fails to suggest emulating a result, but instead finds only that Balin does not explicitly teach emulating a result. Final Act. 4. Accordingly, we determine Kryukov is cumulative and we alternatively sustain the rejection because Balin alone teaches or suggests every limitation recited in claim 1. See In re Kronig, 539 F.2d 1300, 1303 (CCPA 1976) (explaining that limiting an affirmance of an obviousness rejection to fewer than all of the references cited by the Examiner does not constitute a new ground of rejection); In re Bush, 296 F.2d 491, 495–96 (CCPA 1961); see also MPEP § 1207.03(a)(II). Appellant also contends the Examiner’s findings that the claim limitations do not include certain argued features fail to properly interpret the claims in light of the Specification. Reply Br. 4–5. Even accepting Appellant’s assertions as true, this is not fatal to the Examiner’s rejection because, as discussed herein, the Examiner finds the combination of Balin and Kryukov teaches or suggests each of the limitations recited in claim 1 when construed in light of the Specification and consistent with Appellant’s Appeal 2020-002587 Application 13/282,802 14 assertions regarding the meaning of those limitations. See, e.g., Final Act. 3–4. Thus, we are not persuaded the Examiner erred in finding the combination of Balin and Kryukov teaches or suggests the subject matter recited in claim 1, including the disputed limitation. For the foregoing reasons, we sustain the Examiner’s rejection of claim 1 under 35 U.S.C. § 103 as obvious over Balin and Kryukov. With respect to independent claim 10, Appellant argues only that claims 1 and 10 recite similar limitations and the rejection of claim 10 should be reversed for the same reasons asserted with respect to claim 1. Regarding dependent claims 2–7 and 11–14, Appellant argues these claims are allowable due to their dependency from one of claims 1 and 10. Therefore, for the same reasons as discussed above, we also sustain the Examiner’s rejection of claims 4–6, 12, and 13 under 35 U.S.C. § 103 as obvious over Balin and Kryukov and the Examiner’s rejection of claim 2, 3, 7, 11, and 14 as obvious over Balin, Kryukov, and Estrada. CLAIMS 16–19 With respect to independent claim 1, Appellant argues only that claims 1 and 16 recite similar limitations and the rejection of claim 1 should be reversed for the same reasons asserted with respect to claim 1. Regarding dependent claims 17–19, Appellant argues these claims are allowable due to their dependency from claim 16. Therefore, for the same reasons as discussed above, we also sustain the Examiner’s rejection of claims 16–19 under 35 U.S.C. § 103 as obvious over Balin, Kryukov, and Estrada. Appeal 2020-002587 Application 13/282,802 15 CLAIMS 8, 15, AND 20 Claims 8, 15, and 20 directly depend from claims 1, 10, and 16, respectively, and additionally recite “loading the different database before the database associated with a database command is identified by a web browser” (claim 8) or a limitation having commensurate scope. Appeal Br. 19, 21–22. Appellant asserts that, in addition to being allowable due to their dependency from claims 1, 10, and 16, Balin does not teach this additional limitation because Balin’s cited passages do not even describe loading the database, let alone loading the database in accordance with the temporal restriction recited in these claims. Appeal Br. 16–17; Reply Br. 8–9. Appellant also contends the Examiner’s finding that the claims are different than the Specification is a conclusion “contrary to the legal precedent provided above that the claim should be interpreted in light of the Specification.” Reply Br. 5–6. Appellant asserts the Examiner, therefore gave the claim limitation no weight. Reply Br. 6. The Examiner’s statement that the claims were not the same as the specific embodiment in the Specification was a finding, not a conclusion. See Ans. 7. Moreover, the Examiner’s never stated that the proper construction need not consider the Specification. Rather, the Examiner merely explains that the broadest reasonable interpretation is not limited to the described embodiment in the Specification. Ans. 7. The Examiner’s implicit construction is consistent with the Specification. Thus, contrary to Appellant’s implication, the Examiner’s finding of differences between the claims and the Specification is not fatal to the Examiner’s rejection. The Examiner finds Balin teaches the additional limitation recited in claims 8, 15, and 20 because Balin discloses loading scripts and libraries to Appeal 2020-002587 Application 13/282,802 16 the target database platform to create the new database before any commands are issued and, therefore, the combination of Balin and Estrada teaches loading the database before a database command associated with a different is identified by a web browser. Ans. 7. As the Examiner finds, Balin teaches loading elements (e.g., scripts and libraries) to the target database when creating the database and Estrada teaches a web browser issuing commands. Balin ¶¶ 46, 56, 116; Estrada 14:35–36. Given the breadth of the limitation, which merely requires loading a second database before a web browser identifies a first database associated with a command, we agree with and adopt the Examiner’s findings and conclusion that Balin, Kryukov, and, Estrada teach or suggest the subject matter recited in claim 8 and commensurately recited in claims 15 and 20. CONCLUSION We affirm the Examiner’s decision to reject claims 1–8 and 10–20 under 35 U.S.C. § 103. DECISION SUMMARY Claims Rejected 35 U.S.C. § Reference(s)/Basis Affirmed Reversed 1, 4–6, 10, 12, 13 103 Balin, Kryukov 1, 4–6, 10, 12, 13 2, 3, 7, 8, 11, 14–20 103 Balin, Kryukov, Estrada 2, 3, 7, 8, 11, 14–20 Overall Outcome 1–8, 10–20 Appeal 2020-002587 Application 13/282,802 17 TIME PERIOD FOR 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). See 37 C.F.R. §§ 1.136(a)(1)(iv), 41.50(f). AFFIRMED Copy with citationCopy as parenthetical citation