Prosecution Insights
Last updated: April 19, 2026
Application No. 18/053,743

APPLICATION DISPOSITION DEFINITION AGENT TO UPDATE APPLICATIONS WITHOUT ACCESS TO SOURCE CODE

Non-Final OA §102§103
Filed
Nov 08, 2022
Examiner
NGUYEN, PHILLIP H
Art Unit
2191
Tech Center
2100 — Computer Architecture & Software
Assignee
International Business Machines Corporation
OA Round
1 (Non-Final)
90%
Grant Probability
Favorable
1-2
OA Rounds
2y 10m
To Grant
99%
With Interview

Examiner Intelligence

Grants 90% — above average
90%
Career Allow Rate
533 granted / 589 resolved
+35.5% vs TC avg
Moderate +12% lift
Without
With
+11.7%
Interview Lift
resolved cases with interview
Typical timeline
2y 10m
Avg Prosecution
16 currently pending
Career history
605
Total Applications
across all art units

Statute-Specific Performance

§101
15.4%
-24.6% vs TC avg
§103
38.3%
-1.7% vs TC avg
§102
30.9%
-9.1% vs TC avg
§112
10.7%
-29.3% vs TC avg
Black line = Tech Center average estimate • Based on career data from 589 resolved cases

Office Action

§102 §103
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 . This Office Action is in response to the filing date of 11/08/2022. Claims 1-20 are pending and have been considered below. Claim Rejections - 35 USC § 102 The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action: A person shall be entitled to a patent unless – (a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention. Claims 1-10, 13, 14, and 17-20 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by U.S. Pub. No. 20080300851 to Chakrabarti. Per claim 1, Chakrabarti teaches a computer-implemented method comprising: intercepting runtime data generated by resources of a first platform when an application is executing in the first platform (see at least paragraph [0034] “…collects the runtime information of the legacy application program code…”); discovering components of the application based on the intercepted runtime data (see at least paragraph [0036] “…Memory profiler 216 is called when there is a dependency relation between two blocks of program code…A measure of data exchanged between two blocks of the program code may be obtained by determining the memory allocated to the variables in the program code…The measure of data exchanged between two blocks of the program code is used by the Dynamic Analyzer 204 to obtain edge weights of the DAG corresponding to the program code…”); generating an application architecture comprising the discovered components of the application (see at least paragraph [0042] “A virtual block is defined as an application task and the directed acyclic graph (DAG) is created corresponding to the obtained virtual blocks of the legacy application program code…”); and deploying the application in a second platform according to the application architecture (see at least paragraph [0048] “…each of the obtained clusters is fed to a plurality of computing platforms defined within a simulated grid infrastructure in order to obtain performance data of the legacy application on the grid infrastructure…”). Per claim 2, Chakrabarti further teaches: wherein the intercepted runtime data comprises records of application events occurring in the first platform (see at least paragraph [0025] “…dynamic analyzer 110 performs dynamic analysis of the input legacy application for obtaining a measure of data transferred between one or more application tasks during run-time…”). Per claim 3, Chakrabarti further teaches: wherein the intercepted runtime data comprises communications between processes executing in the resources of the first platform (see at least paragraph [0025] “…dynamic analyzer 110 performs dynamic analysis of the input legacy application for obtaining a measure of data transferred between one or more application tasks during run-time…”). Per claim 4, Chakrabarti further teaches: wherein discovering the components comprises discovering transactional behaviors of the application (see at least paragraph [0036] “…Memory profiler 216 is called when there is a dependency relation between two blocks of program code…A measure of data exchanged between two blocks of the program code may be obtained by determining the memory allocated to the variables in the program code…The measure of data exchanged between two blocks of the program code is used by the Dynamic Analyzer 204 to obtain edge weights of the DAG corresponding to the program code…”). Per claim 5, Chakrabarti further teaches: wherein discovering the components comprise identifying processes of the application (see at least paragraph [0024] “…Legacy applications comprise one or more application tasks. In order to migrate a legacy application to a grid computing environment, the application tasks corresponding to the legacy application are required to be scheduled for parallel execution on a plurality of the available computing platforms in the grid…”). Per claim 6, Chakrabarti further teaches: wherein the application architecture comprises one or more atomic deployable units of the application (see at least paragraph [0047] “…clusters of nodes of the reduced DAG are obtained, each cluster representing a set of legacy application tasks that may be executed parallelly…”). Per claim 7, Chakrabarti further teaches: labeling each discovered components as one of a database component, a web component, and an application component, wherein the application architecture includes the labels of the discovered components (see at least paragraph [0030] “…A legacy application program code is partitioned into virtual blocks in order to obtain a DAG with a manageable number of nodes while maintaining the acyclic nature of DAG…where the legacy application code comprises one or more functions and each function is defined as a task and is represented as a DAG node, the resultant DAG would have a manageable number of nodes…”). Per claim 8, Chakrabarti further teaches: identifying transactional behaviors of the components based on the intercepted runtime data and providing the transactional behaviors of the components with the application architecture (see at least paragraph [0025] “…dynamic analyzer 110 performs dynamic analysis of the input legacy application for obtaining a measure of data transferred between one or more application tasks during run-time, in order to complete the preliminary DAG structure generated by Static Analyzer 108…”). Per claim 9, Chakrabarti further teaches: determining scalability and performance parameters of each discovered component based on the intercepted runtime data and providing the scalability and performance parameters of the components with the application architecture (see at least paragraph [0043] “…a check for different classes of dependency relations that may exist corresponding to each variable being used in the program code is also performed. Examples of the types of dependencies checked for comprise hierarchical dependency, argument level dependency, global value dependency and return value dependency. Hierarchical dependency is a representation of the call hierarchy from a caller application task to a called application task. Argument level dependency is exhibited if an application task A calls another application task B, and passes an argument variable v to application task B, making application task B dependent on application task A for variable v…”). Per claim 10, Chakrabarti further teaches: wherein identifying the transactional behavior of a component comprises discovering one or more databases used by the application (see at least paragraph [0008] “The grid code analyzer further comprises a symbol table for storing information regarding symbols such as types, constants, functions and variables declared in the software application. The symbol table is created during static analysis of the software application and is used for dynamic analysis…”). Per claim 13, Chakrabarti further teaches: wherein identifying the transactional behavior of a component comprises discovering the component's dependency upon remote files (see at least paragraph [0043] “…a check for different classes of dependency relations that may exist corresponding to each variable being used in the program code is also performed. Examples of the types of dependencies checked for comprise hierarchical dependency, argument level dependency, global value dependency and return value dependency. Hierarchical dependency is a representation of the call hierarchy from a caller application task to a called application task. Argument level dependency is exhibited if an application task A calls another application task B, and passes an argument variable v to application task B, making application task B dependent on application task A for variable v…”). Per claim 14, Chakrabarti further teaches wherein identifying the transactional behavior of a component comprises determining a reliability measure of one or more communications protocols based on the intercepted runtime data (see at least paragraph [0024] “…wherein a node represents an application task and an edge represents the transfer of data between two application tasks. Each node and edge is associated with a weight where a node weight represents running time of an application task and an edge weight represents a measure of data exchanged between the two nodes or the two tasks connected by the edge”). Per claim 17, a computer program product comprising: one or more non-transitory computer-readable storage devices and program instructions stored on at least one of the one or more non-transitory storage devices, the program instructions executable by a processor, the program instructions comprising sets of instructions for: intercepting runtime data generated by resources of a first platform when an application is executing in the first platform (see at least paragraph [0034] “…collects the runtime information of the legacy application program code…”); discovering components of the application based on the intercepted runtime data (see at least paragraph [0036] “…Memory profiler 216 is called when there is a dependency relation between two blocks of program code…A measure of data exchanged between two blocks of the program code may be obtained by determining the memory allocated to the variables in the program code…The measure of data exchanged between two blocks of the program code is used by the Dynamic Analyzer 204 to obtain edge weights of the DAG corresponding to the program code…”); and providing an application architecture comprising the discovered components of the application (see at least paragraph [0042] “A virtual block is defined as an application task and the directed acyclic graph (DAG) is created corresponding to the obtained virtual blocks of the legacy application program code…”). Per claim 18, Chakrabarti further teaches: wherein the application architecture is operative to install the application in a second, different platform (see at least paragraph [0047] “…clusters of nodes of the reduced DAG are obtained, each cluster representing a set of legacy application tasks that may be executed parallelly…”). Per claim 19, a computing device comprising: a processor; and a storage device storing a set of instructions, wherein an execution of the set of instructions by the processor configures the computing device to perform acts comprising: intercepting runtime data generated by resources of a first platform when an application is executing in the first platform (see at least paragraph [0034] “…collects the runtime information of the legacy application program code…”); discovering components of the application based on the intercepted runtime data (see at least paragraph [0036] “…Memory profiler 216 is called when there is a dependency relation between two blocks of program code…A measure of data exchanged between two blocks of the program code may be obtained by determining the memory allocated to the variables in the program code…The measure of data exchanged between two blocks of the program code is used by the Dynamic Analyzer 204 to obtain edge weights of the DAG corresponding to the program code…”); generating an application architecture comprising the discovered components of the application (see at least paragraph [0042] “A virtual block is defined as an application task and the directed acyclic graph (DAG) is created corresponding to the obtained virtual blocks of the legacy application program code…”); and deploying the application in a second platform according to the application architecture (see at least paragraph [0048] “…each of the obtained clusters is fed to a plurality of computing platforms defined within a simulated grid infrastructure in order to obtain performance data of the legacy application on the grid infrastructure…”). Per claim 20, Chakrabarti further teaches: wherein the intercepted runtime data comprises records of application events (see at least paragraph [0025] “…dynamic analyzer 110 performs dynamic analysis of the input legacy application for obtaining a measure of data transferred between one or more application tasks during run-time…”). Claim Rejections - 35 USC § 103 The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action: A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made. Claims 11, 12, and 16 are rejected under 35 U.S.C. 103 as being unpatentable over U.S. Pub. No. 20080300851 to Chakrabarti in view of U.S. Pub. No. 20200089515 to Hari. Per claim 11, Chakrabarti does not explicitly teach: applying machine learning on the intercepted runtime data to match a discovered database with a known database technology. Hari teaches an analogous art relates to migrating software application, comprises: applying machine learning on runtime data to match a discovered database with a known database technology (see at least paragraphs [0057-0058] “…the budget information, pricing information, and performance information is stored as historical information. In one or more embodiments, the migration service stores the budget information, pricing information, and performance information to a database that is accessible by the machine learning service…”). It would have been obvious for a person of an ordinary skilled in the art as of the effective filing date of the claimed invention to modify the teaching of Chakrabarti to incorporate the teaching of Hari to use machine learning for migrating the software application. One would have been motivated to train the machine learning for optimizing the migrating process. Per claim 12, Chakrabarti does not explicitly teach: wherein identifying the transactional behavior of a component comprises discovering a relationship with an endpoint of an application program interface (API). However, Hari teaches an analogous art relates to migrating software application, comprises: discovering a relationship with an endpoint of an application program interface (API) (see at least paragraph [0108] “Based on the client-server networking model, sockets may serve as interfaces or communication channel end-points enabling bidirectional data transfer between processes on the same device. Foremost, following the client-server networking model, a server process (e.g., a process that provides data) may create a first socket object. Next, the server process binds the first socket object, thereby associating the first socket object with a unique name and/or address. After creating and binding the first socket object, the server process then waits and listens for incoming connection requests from one or more client processes (e.g., processes that seek data). At this point, when a client process wishes to obtain data from a server process, the client process starts by creating a second socket object. The client process then proceeds to generate a connection request that includes at least the second socket object and the unique name and/or address associated with the first socket object. The client process then transmits the connection request to the server process. Depending on availability, the server process may accept the connection request, establishing a communication channel with the client process, or the server process, busy in handling other operations, may queue the connection request in a buffer until server process is ready…”). Therefore, it would have been obvious for a person of an ordinary skilled in the art as of the effective filing date of the claimed invention to modify the teaching of Chakrabarti to incorporate the teaching of Hari to discover the data transferring between the processes. One would have been motivated to do so in order to discover the directions of the data transferring between processes. Per claim 16, Chakrabarti does not explicitly teach: wherein the discovered components comprise communications channels used by the application Hari teaches an analogous art relates to migrating software application, comprises: communications channels used by the application (see at least paragraph [0108] “Based on the client-server networking model, sockets may serve as interfaces or communication channel end-points enabling bidirectional data transfer between processes on the same device…”). It would have been obvious for a person of an ordinary skilled in the art as of the effective filing date of the claimed invention to modify the teaching of Chakrabarti to incorporate the teaching of Hari to discover communication channels used by the software application. One would have been motivated to do so in order to establishing a communication channel for transferring data. Claim 15 is rejected under 35 U.S.C. 103 as being unpatentable over U.S. Pub. No. 20080300851 to Chakrabarti in view of U.S. Pub. No. 20150178263 to Meschkat. Per claim 15, Chakrabarti does not explicitly teach: wherein the discovered components comprise web presentation template components that are identified based on file events in the runtime data. Meschkat teaches an analogous art relates to migrating software application, comprises: comprise web presentation template components that are identified based on file events in the runtime data (see at least paragraph [0034] “It certain instances, it can be desirable to change a web application from one type of template processing system to another type of template processing system. For instance, an improved template processing system for a web application can be developed and it can be desirable to migrate the web application from the old template processing system to the new template processing system. The migration from a first template processing system to a second template processing system requires the development of a new template for the web application as well as a new corresponding input data structure for the template processing system…”). It would be obvious for a person of an ordinary in the art as of the effective filing date of the claimed invention to modify the teaching of Chakrabarti to incorporate the teaching of Meschkat to discover web presentation template. One would have been motivated to do in order to migrate a web application from old template to a new template. Conclusion The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. US20190205106 relates to migrating software application. US20160378450 relates to migrating application. Any inquiry concerning this communication or earlier communications from the examiner should be directed to PHILLIP H NGUYEN whose telephone number is (571)270-1070. The examiner can normally be reached Monday-Friday 9:00AM-5:00PM. 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, Wei Zhen can be reached at (571) 272-3708. 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. /PHILLIP H NGUYEN/Primary Examiner, Art Unit 2191
Read full office action

Prosecution Timeline

Nov 08, 2022
Application Filed
Nov 09, 2023
Response after Non-Final Action
Jan 09, 2026
Non-Final Rejection — §102, §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12602206
SYSTEMS AND METHODS FOR CODE GENERATION
2y 5m to grant Granted Apr 14, 2026
Patent 12572353
SYSTEM AND METHOD FOR GENERATING A MODERNIZATION SEQUENCE FOR APPLICATION MODERNIZATION
2y 5m to grant Granted Mar 10, 2026
Patent 12554470
INTEGRATED DEVELOPMENT SYSTEM AND METHOD, FOR USER INTERFACE PLATFORM, HAVING SOURCE COMPILER
2y 5m to grant Granted Feb 17, 2026
Patent 12554469
PROGRAM CREATION DEVICE
2y 5m to grant Granted Feb 17, 2026
Patent 12547387
DETECTING CODE ANOMALIES IN SOURCE CODE USING MACHINE LEARNING TECHNIQUES
2y 5m to grant Granted Feb 10, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

AI Strategy Recommendation

Get an AI-powered prosecution strategy using examiner precedents, rejection analysis, and claim mapping.
Powered by AI — typically takes 5-10 seconds

Prosecution Projections

1-2
Expected OA Rounds
90%
Grant Probability
99%
With Interview (+11.7%)
2y 10m
Median Time to Grant
Low
PTA Risk
Based on 589 resolved cases by this examiner. Grant probability derived from career allow rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month