International Business Machines CorporationDownload PDFPatent Trials and Appeals BoardJun 2, 20212019005484 (P.T.A.B. Jun. 2, 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/630,001 02/24/2015 Lucas Brutschy YOR920140427US1 1050 48237 7590 06/02/2021 Harrington & Smith, Attorneys At Law, LLC 4 Research Drive Suite 202 Shelton, CT 06484 EXAMINER AMORIN, CARLOS E ART UNIT PAPER NUMBER 2498 NOTIFICATION DATE DELIVERY MODE 06/02/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@hspatent.com PTOL-90A (Rev. 04/07) UNITED STATES PATENT AND TRADEMARK OFFICE BEFORE THE PATENT TRIAL AND APPEAL BOARD Ex parte LUCAS BRUTSCHY, PIETRO FERRARA, MARCO PISTOIA, and OMER TRIPP Appeal 2019-005484 Application 14/630,001 Technology Center 2400 Before JAMES R. HUGHES, ERIC S. FRAHM, and SCOTT E. BAIN, Administrative Patent Judges. BAIN, 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. Claims 9–18 have been canceled. In the Answer, the Examiner withdraws the rejection of claim 5, leaving claims 1– 4 and 6–8 before us on appeal. We have jurisdiction under 35 U.S.C. § 6(b). 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 International Business Machines Corporation. Appeal Br. 4. Appeal 2019-005484 Application 14/630,001 2 BACKGROUND The Claimed Invention The invention relates to maintaining user privacy of data in mobile or cloud computing environments, and specifically, to “analysis of program code accessing sensitive system resources having private data of a user.” Spec. ¶ 1. Claim 1, the sole independent claim, is illustrative of the invention and the subject matter in dispute, and is reproduced below: 1. A method, comprising: accessing a permission that is to be revoked for an application, wherein the permission involves access to private data of a user via an application programming interface of an operating system; determining, in the application, one or more program points involving access to the private data of the user via the application programming interface, wherein the determining comprises performing constraint inference of the code in the application to determine a plurality of constraints on paths through the code; for each selected one of the one or more program points, rewriting code in the application to replace a source statement, at the selected program point, that accesses the private data with another statement that allocates a mock object or value based on a type of an actual value returned by the source statement, wherein the mock object or value does not expose the private data of the user; packaging the application with the rewritten code as an output application able to be subsequently executed by the user; and Appeal 2019-005484 Application 14/630,001 3 outputting the application with the rewritten code for use by the user. Appeal Br. 50 (Claims App.) (emphases added). References The references relied upon by the Examiner are: Name Reference Date Czajkowski et al. (“Czajkowski”) US 2005/0010922 A1 Jan. 13, 2005 Tillmann et al. (“Tillmann”) US 2007/0033442 A1 Feb. 8, 2007 Haik et al. (“Haik”) US 2015/0235043 A1 Aug. 20, 2015 The Rejections on Appeal Claims 1–4, 6, and 7 stand rejected under 35 U.S.C. § 103 as unpatentable over Haik and Tillmann. Final Act. 4–11.2 Claim 8 stands rejected under 35 U.S.C. § 103 as unpatentable over Haik, Tillmann, and Czajkowski. Final Act. 11. DISCUSSION We have reviewed the Examiner’s rejections in light of Appellant’s arguments presented in this appeal. Arguments that Appellant could have made but did not make in the Briefs are deemed to be waived. See 37 C.F.R. § 41.37(c)(1)(iv). For the reasons discussed below, Appellant has not persuaded us of error. We adopt as our own the findings and reasons set 2 As noted above, the Examiner has withdrawn the rejection of claim 5. Ans. 11. Appeal 2019-005484 Application 14/630,001 4 forth in the rejections and in the Examiner’s Answer. We provide the following for highlighting and emphasis. Obviousness Rejection of Claims 1–4, 6, and 7 Appellant argues the Examiner erred in finding the prior art teaches or suggests “rewriting code in the application to replace a source statement . . . wherein the mock object or value does not expose the private data of the user,” as recited in claim 1. Appeal Br. 23–24, 27. Appellant further argues the Examiner erred in finding the prior art teaches or suggests “performing constraint inference of the code in the application to determine a plurality of constraints on paths through the code,” as recited in claim 1. Reply Br. 3; see also Appeal Br. 23–24, 27. Specifically, Appellant argues that “[t]here are two major differences between the currently claimed subject matter and the proposed combination.” Reply Br. 2. First, Appellant contends “Haik does not disclose what is alleged since Haik provides mock data to an app whereas the current invention changes the code of the app for it itself to produce mock data.” Reply Br. 2 (emphasis in original); Appeal Br. 23. Second, Appellant contends “Tillmann does not disclose what is alleged since Tillmann performs symbolic execution to identify path constraints of the implementation rather than performing constraint inference of the code as claimed.” Reply Br. 2 (emphasis in original); Appeal Br. 29. Appellant also argues the Examiner erred in finding a rationale to combine Haik and Tillmann. Reply Br. 2; Appeal Br. 18. Appellant’s arguments, however, do not persuade us of error. We first address the “rewriting code in the application” limitation of claim 1. As the Examiner finds, Haik discloses adding code to an Appeal 2019-005484 Application 14/630,001 5 application. Ans. 12. The Examiner further finds, and we agree, that Haik (at ¶ 19) discloses “deployment mock data configuration interface may be populated with a variety of data types for which the use may selectively . . . specify mock data to substitute for user data.” Ans. 12 (emphasis added). The Examiner finds, and we agree, this description in Haik teaches or suggests that the deployment mock data configuration interface is added to the existing installation interface of the event planner application. Id. By integrating the new deployment mock data configuration interface code, Haik alters the code of the event planner application to incorporate the additional functionality, instead of merely providing fetched user data by default. Ans. 13. As the Examiner finds “[s]tated differently, the rewriting of the event planner app installation code by integrating the new deployment mock data configuration interface code would allow for the effective substitution of user data with mock data.” Ans. 13–14 (emphases added). Accordingly, the Examiner did not err in finding Haik teaches or suggests “rewriting code in the application to replace a source statement,” as recited in claim 1. Turning next to the “constraint interference” limitation of claim 1, the Examiner finds Tillmann teaches or suggests a technique to identify executable code paths that can lead to “exceptions/error.” Ans. 19. As the Examiner finds, Tillmann is directed to identifying any type of constraint associated with a “negative consequence.” Ans. 20, 34; Tillmann ¶¶ 54–56. Tillmann teaches identifying or analyzing relationships between certain execution paths and their respective consequences (e.g., good/bad; no flagged exception/flagged exception). Ans. 20, 34; Tillmann ¶ 135. Specifically, as the Examiner finds, “[f]irst, Tillmann at its abstract . . . Appeal 2019-005484 Application 14/630,001 6 discloses the use of symbolic execution ‘to obtain path constraints for a implementation under test.’” Ans. 34 (emphasis in original); Tillmann ¶¶ 7, 19, 54. Second, as the Examiner finds, the idea of identifying such executable path constraints “is shown at Tillmann, ¶ 56, which teaches how different types of execution paths can be discovered: paths that either terminate successfully (e.g., no assertion of the parameterized unit test is violated, and no exception is thrown) or paths that lead to failure of an assertion (i.e., a violation of an explicit assertion, or a mismatch between the actually thrown exception and the expected exception).” Ans. 20. We are not persuaded of error in the Examiner’s findings. Appellant’s arguments imply some narrower construction of the term “constraint interference,” but that term is not defined in Appellant’s Specification. Appellant’s Specification, rather, describes analyses of execution paths just as in Tillmann. For example, in one embodiment, the Specification describes process steps (including step 510) to infer constraints over values produced by Application Program Interface calls guarded by given permissions. Spec. ¶ 43. The constraints are to avoid throw statements or bad program locations. Id. The Specification further describes (at ¶¶ 44–49) collecting (i.e., identifying) sufficient constraints to avoid “bad executions” when executing undesirable/bad paths in the code. A path is “bad” if the path leads to a bad location, i.e., a program point where (i) an exception is thrown or (ii) a well-known error handling method is involved. Spec. ¶ 49; see also Ans. 19. Giving “constraint inference” its broadest reasonable interpretation, as we must, In re Am. Acad. of Sci. Tech Ctr., 367 F.3d 1359, 1364 (Fed. Cir. 2004), we discern no error in the Examiner’s determination Appeal 2019-005484 Application 14/630,001 7 that the exception/error identification techniques in Tillmann teach or suggest “constraint inference” as recited in claim 1. Finally, we discern no error in the Examiner’s rationale in combining the references. The references (like Appellant’s claimed invention) are directed to analysis of program code accessing sensitive system resources having private data of a user, and the Examiner identifies specific suggestions to combine within the references. Final Act. 7 (citing Haik ¶¶ 6, 21, 28; Tillmann ¶¶ 80, 133); DyStar Textilfarben GmbH & Co. Deutschland KG v. C.H. Patrick Co., 464 F.3d 1356, 1365 (Fed. Cir. 2006) (rationale to combine references may be found within the references themselves). Appellant does not identify any error in the Examiner’s findings regarding the combination. The Examiner finds, and we agree, that it would have been obvious to one of ordinary skill to modify the mock object substitution technique as taught by Haik, by determining various path constraints as taught by Tillmann to determine whether the mock objects to be used will lead to exceptions and maximize the functionality of the application’s execution path [and] . . . modify the mock object substitution technique as taught by Haik as modified by Tillmann, by grouping the constraints based on their weighted values, as taught by Czajkowski. The motivation is to maximize the path utilization by distinguishing the input value applied to the constraint. Final Act. 7, 12. Similarly, the Examiner finds, and we agree, that: Haik teaches the integration of the deployment mock data configuration interface into an installation interface for an Appeal 2019-005484 Application 14/630,001 8 application such that mock data may be allocated as a substitution to actual user data. However, it would be desirable to insert such the deployment mock data configuration interface in a location of executable code that would not cause a crash/ error/exception. For this reason, the Tillmann technique of determining good/bad path constraints at program points is necessitated. Ans. 35–36. For the foregoing reasons, we are unpersuaded of error regarding the Examiner’s rejection of claim 1 as unpatentable over Haik and Tillmann. Appellant’s arguments regarding claims 2–4, 7, and 8 are redundant to those of claim 1, and do not persuade us of error. Accordingly, we sustain the Examiner’s rejection of claims 1–4, 7, and 8. Obviousness Rejection of Claim 8 Dependent claim 8 recites “assigning a good constraint a first weight and assigning a bad constraint a different, second weight, and partitioning the constraints into clusters according to a conflict relation.” Appeal Br. 51. Appellant argues the Examiner relies on Czakowski for assigning different weights to good and bad constraints but, according to Appellant, Czakowski merely “discusses sorting constraints based on weights.” Id. at 47. We disagree. As the Examiner finds, Czakowski’s abstract discloses “sorting a set of constraints based on weights associated with each constraint, the constraints being capable of being satisfied based on values selected for corresponding associated parameters, selecting a constraint that is unsatisfied and that has the greatest weight.” Ans. 46 (emphasis added). We agree with the Examiner’s finding that the foregoing passage suggests Appeal 2019-005484 Application 14/630,001 9 that a differential weighting is made between constraints, and that Tillmann teaches good constraints and bad constraints. Id. Appellant’s argument relying solely on Czakowski, therefore, does not persuade us of error. See In re Keller, 642 F.2d 413, 426 (CCPA 1981) (“one cannot show non- obviousness by attacking references individually where . . . the rejections are based on combinations of references”). Moreover, we agree with the Examiner’s rationale for combining the references for the same reasons discussed above. Accordingly, we are not persuaded the Examiner erred in rejecting claim 8 as unpatentable over Haik, Tillmann, and Czajokowski. We sustain the rejection of claim 8. CONCLUSION For the foregoing reasons, we affirm the Examiner’s decision to reject claims 1–4 and 6–8. DECISION SUMMARY In summary: Claim(s) Rejected 35 U.S.C. § Reference(s)/Basis Affirmed Reversed 1–4, 6–8 103 Haik, Tillmann 1–4, 6, 7 8 103 Haik, Tillmann, Czajkowski 8 Overall Outcome 1–4, 6–8 No time period for taking any subsequent action in connection with this appeal may be extended under 37 C.F.R. § 1.136(a). See 37 C.F.R. § 1.136(a)(1)(iv). AFFIRMED Copy with citationCopy as parenthetical citation