DETAILED ACTION
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-24 are presented for examination in this application. The application filing date on 10/15/2024. Claims 1 and 13 are independent.
Examiner notes
(A). Drawings submitted on 10/15/2024 comply with the provisions of 37 CFR 1.121(d).
(B). IDS submitted on 10/15/2024 have been fully considered by the Examiner.
(C). Limitations have been provided with the Bold fonts in order to distinguish from the cited part of the reference (Italic).
(D). Examiner has cited particular columns, line numbers, references, or figures in the references applied to the claims above for the convenience of the applicant. Although the specified citations are representative of the teachings of passages and figures may apply as well. It is respectfully requested from the applicant in preparing responses to fully consider the reference in entirety, as potentially teaching all or part of the claimed invention. See MPEP § 2141.02 VI and 2123.
The examiner requests, in response to this Office action, support be shown for language added to any original claims on amendment and any new claims. That is, indicate support for newly added claim language by specifically pointing to page(s) and line number(s) in the specification and/or drawing figure(s). This will assist the examiner in prosecuting the application.
When responding to this office action, Applicant is advised to clearly point out the patentable novelty which he or she thinks the claims present, in view of the state of the art disclosed by the references cited or the objections made. He or she must also show how the amendments avoid such references or objections See 37 CFR 1.111 (c).
Claim 13, as is, requires a system having an electronic control unit having memory and processor without a software application (“is configured to receive a software application”). Thus, it could rejected any device having a memory and processor. For the following rejection, “is configured to receive” will be treated as --having--. Applicant is advised to amend the claim to positively include a software application as a part of the system.
Claim Objections
Claims 4, 8, 9, 11, 12, 16, 20, 21, 23, and 24 are objected to because of the following informalities:
Claim 4:
• Line 4, “the entry and/or exit points” lacks proper antecedent basis.
Claim 8:
• Line 6, “the respective placeholder instruction” lacks proper antecedent basis.
Claim 9:
• Line 5, “the specific placeholders” lacks proper antecedent basis.
Claim 11:
• Line 6, “the respective placeholder instruction” lacks proper antecedent basis.
Claim 16:
• Line 3, “the entry and/or exit points” lacks proper antecedent basis.
Claim 20:
• Line 6, “the respective placeholder instruction” lacks proper antecedent basis.
Claim 21:
• Lines 3-4, “the specific placeholders” lacks proper antecedent basis.
Claim 23:
• Line 5, “the respective placeholder instruction” lacks proper antecedent basis.
Claim 12 and 24 depend on the objected claims and inherit the same issues.
Appropriate correction is required.
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-24 are rejected under 35 U.S.C. 101 because the claimed invention is directed to non-statutory subject matter.
Step 1: Claims 1-12 are directed to method and fall within the statutory category of processes; Claims 13-24 are directed to a system and fall within the statutory category of machines and fall within the statutory category of articles of manufacture. Therefore, “Are the claims to a process, machine, manufacture or composition of matter?” Yes.
In order to evaluate the Step 2A inquiry “Is the claim directed to a law of nature, a natural phenomenon or an abstract idea?” we must determine, at Step 2A Prong 1, whether the claim recites a law of nature, a natural phenomenon or an abstract idea and further whether the claim recites additional elements that integrate the judicial exception into a practical application.
Under Step 2A, Prong 1, the claim 1 recites multiple limitations that recite an abstract idea. The limitations “allocating one or more placeholder code areas within code segments of a software application;” , “identifying a plurality of locations within the code segments of the software application for placement of placeholders, the placeholders including placeholder instructions configured to selectively call code placed in the placeholder code areas;” and “building the software application including the placeholder instructions and the placeholder code areas.” are concept that can be reasonably performed in the human mind (with the aid of pen and paper), which include observation, evaluation, judgement and/or opinion. Steps allocating – building are considered together as a single abstract idea. There is no integration of the judicial exception into a practical application, nor an inventive concept. Thus, claim 1 is ineligible.
Under Step 2A, Prong 1, the claim 13 recites multiple limitations that recite an abstract idea. The limitations “one or more placeholder code areas allocated within code segments of the software application;” , “a plurality of locations within code segments of the software application at which placeholders are placed, the placeholders including placeholder instructions configured to selectively call code placed in the placeholder code areas;” and “wherein the software application is built including the placeholder instructions and the placeholder code areas.” are concept that can be reasonably performed in the human mind (with the aid of pen and paper), which include observation, evaluation, judgement and/or opinion. Steps allocating – building are considered together as a single abstract idea. There is no integration of the judicial exception into a practical application, nor an inventive concept. Thus, claim 1 is ineligible.
Under Step 2A, Prong 2, the additional elements “an electronic control unit (ECU) having a memory and a processor, wherein the ECU is configured to receive a software application, the software application comprising:” is not indicative of integration into a practical application. The limitations ECU having a memory executed by the processor merely recites generic computer system or device to carry out or apply the judicial exception. Moreover, the processor and memory are recited to have a high level of generality and its broadest reasonable interpretation comprises only conventional arrangement performing the generic computer function outlined in the abstract idea. MPEP 2106.05(f).
Under step 2B, the additional elements do not amount to significantly more than the abstract idea. As stated above, the claimed invention merely recites generic computer system for carrying out or applying the abstract idea. Furthermore, applicant’s spec paragraph 0115 discloses “At operation 1102, application of a software update 902 is triggered. In an example, the trigger may be a manual interaction. … “, is well-understood, routine, and convention computer functions which cannot serve as an inventive concept according to MPEP 21.06.05(d).
For the above reasons, the claims of this application are not patentable under 35 USC 101.
Dependent Claims 2-7, 10-19 and 22 are rejected for similar reasons as articulated for claim 1 as “locating placeholder …” , “generating basic block …” , “… choosing the placeholder …” , “modify / replace placeholder …” and “… placeholder instruction …”. Under Prong 1, the limitations in red are functions that can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, opinion, thus it is reasonable to identify these limitation as reciting a mental process.
Further Dependent Claims 8-9, 11-12, 20-21 and 23-24 are rejected for similar reasons as articulated for claim 1 as the additional limitations wherein “… execute a patch” , “… based on a result of the check” and “… hardware security module.” is a generic computing apparatus that does not allude to a practical application of the abstract idea or amount to significantly more.
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 of this title, 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.
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
Claim 1 is rejected under 35 U.S.C. 103 as being obvious over Cohen et al (US 20240291863 A1, hereinafter Cohen) in view of Hennessy et al (US 20240338182 A1, Hennessy).
As to claim 1, Cohen discloses a method for facilitating minimal impact patching, comprising:
allocating one or more placeholder code areas within code segments of a software application (par. 0315, rendering content based on a code may include global and/or local data constructs (e.g., objects, classes, data values, variables, allocated placeholders in memory for use during execution), state data (e.g., for one or more registers, queues, buffers, or stacks), a task schedule, or any other data usable for rendering content based on a code. …);
identifying a plurality of locations within the code segments of the software application for placement of placeholders, the placeholders including placeholder instructions configured to selectively call code placed in the placeholder code areas (par. 0105, … a weather API may define one or more arguments, e.g., as placeholders, to define a specific location and time for a particular API invocation. A map API, for example, may define a location as an argument to use for querying a maps database. An API parameter (e.g., argument) may relate to authorization (e.g., as a header parameter), to formulate a query (e.g., as a query parameter), to serve as a placeholder … determining that the API invocation [i.e. selectively call] is an invocation for a native API configured for subsequent execution in response to a trigger event may include identifying at least one argument as a callback function. Identifying may include recognizing, or otherwise establishing an association with a known entity, for example by performing one or more comparisons, inferences, correlations, or any other operation facilitating derivation of information. A callback function may include a reference to executable code to be invoked at a later stage … );
Cohen does not explicitly disclose the following limitation but,
Hennessy discloses building the software application including the placeholder instructions and the placeholder code areas (par. 0005, a system for creating a software program structure for a project. This system is located [i.e. areas] on computer hardware and includes a project input file, a placeholder database, a structure creation module [i.e. placeholder code], and the software program structure itself …).
Therefore, it would have been obvious to one of the ordinary skill in the art before the effective filing date of the claimed invention to modify the system disclosed by Cohen to include building the software application including the placeholder instructions and the placeholder code areas, as disclosed by Hennessy, for the purpose to replace the at least one code placeholder in software code of the software program structure with second project information dependent upon the plurality of project inputs (see paragraph 0005 and Abstract of Henessy).
Claim 3 is rejected under 35 U.S.C. 103 as being obvious over Cohen et al. and Hennessy et al. as applied to claim 1 in the above and further in view of Cohen et al. (US 20240403413 A1, hereinafter Cohen “413”).
As to claim 3, Cohen as modified by Hennessy does not explicitly disclose the following limitation but,
Cohen “413” discloses the method further comprising locating the placeholder instructions before and/or after security functions to allow the security functions to be augmented or replaced (par. 0107, … API may define one or more arguments, e.g., as placeholders, to define a specific location and time for a particular API invocation. … .Further, par. 0111, … in this context, the toString function may be a callback function because it is not invoked directly, but instead may be invoked via the native API invocation. For example, if the software engine performs dynamic compilation (e.g., just in time compilation) and security checks have been removed, a malicious code may use the toString function to modify (e.g., lengthen) the array length and corrupt the backing store Array object ).
Therefore, it would have been obvious to one of the ordinary skill in the art before the effective filing date of the claimed invention to modify the system disclosed by Cohen to include the method further comprising locating the placeholder instructions before and/or after security functions to allow the security functions to be augmented or replaced, as disclosed by Cohen “413”, for the purpose to store information about the environment of code currently being executed (or code to be executed) (see paragraph 0206 of Cohen “413”).
Claim 13 is rejected under 35 U.S.C. 103 as being obvious over Ishikawa et al. (US 12524218 B2, hereinafter Ishikawa) in view of Cohen et al. and Hennessy et al.
As to claim 13, Ishikawa discloses a system for facilitating minimal impact patching, comprising:
an electronic control unit (ECU) having a memory and a processor (Figs. 6A, 6B), wherein the ECU is configured to receive a software application, the software application comprising (col. 2, ll. 17-23, one or more processors configured to receive, from a center, update data of software of a plurality of electronic control units mounted on a vehicle and information on an update sequence defining a procedure of processing updating the software; and control an update of the software of the electronic control units based on the update data of the software):
Ishikawa does not explicitly disclose the following limitations but,
Cohen discloses one or more placeholder code areas allocated within code segments of the software application (par. 0315, … allocated placeholders in memory for use during execution), state data (e.g., for one or more registers, queues, buffers, or stacks), a task schedule, or any other data usable for rendering content based on a code. For example, the execution data may include a lexical environment for the code, e.g., a stored set of digital data that may include any combination of variable declarations, function declarations, objects, argument mappings for function calls during code execution. Collecting execution data associated with rendering content based on the code may include one or more querying, searching, scanning, monitoring, tracking, recording, receiving, or aggregating operations (e.g., by a software … );
a plurality of locations within code segments of the software application at which placeholders are placed (par. 0133, … An object may be implemented using one or more software instructions (e.g., declarations) for allocating memory according to a specific structure configured to store multiple data values in a manner to reflect one or more associations there between … objects, functions or procedures stored in adjacent memory locations. The size of an object may account for data currently stored in an object as well as subsequently received data (e.g., as a placeholder). Memory may be allocated for an object as a contiguous block … , by a memory management unit of a browser application. The threshold may be predetermined based on an estimated or predicted need to store data in the object, hardware and/or software considerations, such as the amount of available RAM, available disk space, bus size, buffer size, queue size, access time considerations, and/or memory needs of other applications currently running on a computing device … The software agent may detect when the size of an object exceeds a predetermined threshold for the object. The software agent may record the memory (e.g., memory addresses) properly allocated for the object, (e.g., by the software browser when preparing the code for execution) …), the placeholders including placeholder instructions configured to selectively call code placed in the placeholder code areas (par. 0105, … a weather API may define one or more arguments, e.g., as placeholders, to define a specific location and time for a particular API invocation. A map API, for example, may define a location as an argument to use for querying a maps database. An API parameter (e.g., argument) may relate to authorization (e.g., as a header parameter), to formulate a query (e.g., as a query parameter), to serve as a placeholder … determining that the API invocation [i.e. selectively call] is an invocation for a native API configured for subsequent execution in response to a trigger event may include identifying at least one argument as a callback function. Identifying may include recognizing, or otherwise establishing an association with a known entity, for example by performing one or more comparisons, inferences, correlations, or any other operation facilitating derivation of information. A callback function may include a reference to executable code to be invoked at a later stage … );
Therefore, it would have been obvious to one of the ordinary skill in the art before the effective filing date of the claimed invention to modify the system disclosed by Ishikawa to include one or more placeholder code areas allocated within code segments of the software application and a plurality of locations within code segments of the software application at which placeholders are placed, the placeholders including placeholder instructions configured to selectively call code placed in the placeholder code areas, as disclose by Cohen, for the purpose of rendering content based on a code may include global and/or local data constructs (e.g., objects, classes, data values, variables, allocated placeholders in memory for use during execution), state data (see paragraph 0315 of Cohen).
Hennessy discloses wherein the software application is built including the placeholder instructions and the placeholder code areas (par. 0005, a system for creating a software program structure for a project. This system is located [i.e. areas] on computer hardware and includes a project input file, a placeholder database, a structure creation module [i.e. placeholder code], and the software program structure itself …).
Therefore, it would have been obvious to one of the ordinary skill in the art before the effective filing date of the claimed invention to modify the system disclosed by Ishikawa to include wherein the software application is built including the placeholder instructions and the placeholder code areas, as disclose by Henessy for the purpose to replace the at least one code placeholder in software code of the software program structure with second project information dependent upon the plurality of project inputs (see paragraph 0005 and Abstract of Henessy).
Claim 15 is rejected under 35 U.S.C. 103 as being obvious over Ishikawa et al. (US 12524218 B2, hereinafter Ishikawa) in view of Cohen et al. and Hennessy et al. as applied to claim 13 in the above and further in view Cohen “413”.
As to claim 15, Ishikawa as modified by Cohen and Hennessy does not explicitly disclose the following limitation but,
Cohen “413” discloses the system wherein the placeholder instructions are located before and/or after security functions to allow the security functions to be augmented or replaced (par. 0107, … API may define one or more arguments, e.g., as placeholders, to define a specific location and time for a particular API invocation. … .Further, par. 0111, … in this context, the toString function may be a callback function because it is not invoked directly, but instead may be invoked via the native API invocation. For example, if the software engine performs dynamic compilation (e.g., just in time compilation) and security checks have been removed, a malicious code may use the toString function to modify (e.g., lengthen) the array length and corrupt the backing store Array object ).
Therefore, it would have been obvious to one of the ordinary skill in the art before the effective filing date of the claimed invention to modify the system disclosed by Cohen to include the system wherein the placeholder instructions are located before and/or after security functions to allow the security functions to be augmented or replaced, as disclosed by Cohen “413”, for the purpose to store information about the environment of code currently being executed (or code to be executed) (see paragraph 0206 of Cohen “413”).
Conclusion
12. Prior arts made of record are considered pertinent to applicant's disclosure. See MPEP § 707.05 (C) For Examples:
I. Bartolomeo et al. (US 9710355 B2) discloses: “In accordance with certain embodiments described herein, the systems and methods assign a first subset of the code elements to a first group and assign a second subset of the code elements to a second group. Then, only the code elements assigned to the first group are loaded, wherein loading a code element comprises accessing the software entity in which the code element is included. In a further embodiment, the first group includes a first ring and a second ring, and assigning the first subset of the code elements to the first group includes assigning to the first ring all of the code elements included in the target software entity and assigning to the second ring any code element included in the one or more reference software entities upon which a code element included in the target software entity directly depends. In a still further embodiment, the second group includes a third ring and assigning the second subset of the code elements to the second group includes assigning to the third ring any code element included in the one or more reference software entities that has not been assigned to the second ring and upon which a code element assigned to the second ring directly depends. In further accordance with this embodiment, the systems and methods may additionally create a named placeholder for each code element assigned to the third ring. In a still further embodiment, any code element that is not assigned to the first, second or third rings is not loaded or represented by a named placeholder.” (please see col. 3, ll. 3-29).
II. Shah et al. (US 20130247027 A1) discloses: “FIG. 5 is a flow chart illustrating a manufacturing method for producing one or more storage media devices, according to an embodiment of the present invention. The manufacturing method can comprise the steps of receiving input code for storage on a media device, wherein the input code has an original interface, and producing a media device comprising translating the original interface in accordance with a set of placeholders, and copying the translated code to the media device in accordance with predetermined manufacturing criteria. The placeholders indicate that a reference name at a given position in the input code, taken from an interface name space, is to be replaced with a corresponding translated name in a corresponding translated name space. The predetermined manufacturing criteria include criteria relating to how each particular storage media can be different, for example, if each storage media is to have a unique identification number for tracking the license of the software. The storage media device that is produced in this manner includes solidified code. The storage media can be a primary storage device for a processor, where the solidified code is stored in this storage device, such that the computer comprising the processor and the storage device is built with solidified code. The manufacturing method can further include licensing usage of the produced storage media.” (please see [0023]).
III. Ren et al. (US 20250284505 A) discloses: “Re-layout: is to delete a placeholder of a security control on a display interface and re-lay out an interface of an application corresponding to the security control. For example, with reference to a screenshot image shown in FIG. 3F, the barcode control 11, the two-dimensional code control 12, and the payment account control 13 are all displayed in the payment window 1 and a card swiping control 22 is displayed at a lower layer of the payment window 1. The mobile phone 10 may delete placeholders of the barcode control 11, the two-dimensional code control 12, and the payment account control 13 so that the payment window 1 no longer includes any control, a placeholder of the payment window 1 is deleted, all content of the card swiping control 22 is displayed in the screenshot image, and a location of a control 23 is moved upward. This avoids inharmonious layouts of controls in the screenshot image due to placeholders of each security control and helps improve user experience.” (please see [0069]).
IV. Karappa et al. (US 20210192013 A1) discloses: “As presently recognized, problems may arise when the management server lacks a software model for a given identifier that is received from a client instance, where the management server may seek to provide management features based on the software model. Such situations may be caused when the client instance is running a variety or version (e.g., a recent or the latest version) of a software program for which a software publisher has not provided or publicized the identifier and/or the attributes that form a software model. Thus, traditional management systems may be unable to decipher the identifier into a software model to provide the requested management features, thereby generating errors that may contribute to client dissatisfaction. To resolve these issues, the management server may automatically generate placeholder data structures that facilitate asset management in response to determining that a received identifier of a software application is not linked to a software model in the one or more databases. For example, the management server of certain embodiments generates a placeholder map identifier that is associated with the identifier, as well as a new software model that is associated with the placeholder map identifier. The placeholder map identifier may be tracked or flagged within a placeholder identifier database, which operates similar to the identifier database, without associating verified or publisher-derived information with the placeholder map identifier. In other embodiments having the combined, identifier-software model database, the management system may omit the map identifiers and directly associate the new software model with the identifier in a placeholder identifier-software model database of the management system.” (please see [0010]).
Any inquiry concerning this communication or earlier communications from the examiner should be directed to MOHAMMAD H KABIR whose telephone number is (571)270-1341. The examiner can normally be reached M-F, 8:00 am - 5:00 pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Sam Sough can be reached at 571-272-6799. 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.
/Mohammad Kabir/
Examiner, Art Unit 2192
/S. Sough/SPE, Art Unit 2192