Program Invocation Ordering via Dependency Files
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current systems lack effective techniques for managing the order in which programs are started and closed, particularly when invoked programs result in calls to numerous dependent programs, leading to inefficiencies and potential conflicts.
Innovation Solution
A dependency file is maintained and updated to track called programs, with a startup order file generated to determine the correct invocation sequence, ensuring called programs are initiated before calling programs, and the reverse order is used for program closure.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If programs are started and closed without a defined ordering mechanism, then system operation is simpler, but program conflicts and instability increase
Solution Approach 1:
The system performs preliminary action by pre-calculating and storing the execution order of programs in a dependency file before actual program execution. This ordering information is prepared in advance based on program dependencies, ensuring that when programs are launched, they follow the predetermined safe sequence, thereby preventing conflicts and improving stability without adding runtime complexity.
Solution Approach 2:
The dependency file acts as an intermediary mechanism between the program launcher and the programs themselves. It mediates the coordination by storing and providing the execution order information, allowing the launcher to simply read the pre-computed order rather than managing complex real-time scheduling logic, thus improving reliability while keeping the launcher simple.
2Reliability
If called programs are invoked before calling programs, then program execution is more reliable, but startup time increases
Solution Approach 1:
The system performs preliminary action by pre-calculating the execution order based on program dependencies and storing it in the dependency file. This allows the launcher to simply read the pre-determined order rather than performing complex real-time analysis, reducing startup time while ensuring called programs are executed before calling programs.
Solution Approach 2:
The system changes the parameter of execution ordering by using a predefined sequence stored in the dependency file. Instead of dynamically determining execution order, the system uses a static pre-computed order that prioritizes called programs, thereby ensuring reliability while minimizing the time overhead of order determination.
3Reliability
If a dependency file is processed to determine program execution order, then program conflicts are prevented, but system complexity increases
Solution Approach 1:
The dependency file is processed in advance to determine execution order before program execution begins. This preliminary processing of dependency information allows the actual program execution to simply follow the pre-determined sequence, preventing conflicts without requiring complex real-time dependency resolution during execution.
Solution Approach 2:
The dependency file serves as an intermediary that encapsulates the complexity of dependency management. It stores the processed dependency information and execution order, allowing the launcher to access this information directly without needing to implement complex dependency resolution logic, thus preventing conflicts while keeping the launcher simple.
4Reliability
If the reverse order is used for program closure, then resource cleanup is more reliable, but shutdown time increases
Solution Approach 1:
The system applies inversion by using the reverse of the execution order for program closure. Since programs were started in a specific sequence based on dependencies, closing them in reverse order ensures that called programs are terminated before calling programs, guaranteeing proper resource cleanup. This inverted approach maintains reliability while minimizing shutdown time by avoiding unnecessary waiting.
Data Source
AI summary
Provided are a computer program product, system, and method for determining an ordering to use to open and close programs that call other programs. A dependency file indicates for each calling program at least one called program called by the calling program, wherein a called program that calls another program also comprises a calling program. The dependency file is processed to determine an order in which the called programs are called by the calling programs. A determination is made from the order the called programs called by an invoked calling program. The determined called programs are invoked according to the order. The calling program is invoked in response to invoking the determined called programs. The order indicates the order in which the calling programs and the called programs are invoked so the called programs are invoked before invoking the calling programs that invoke the called programs.


