Computer-Implemented Method and System for the Dynamically Executing an Application Program by a Platform

20230325206 · 2023-10-12

    Inventors

    Cpc classification

    International classification

    Abstract

    A computer-implemented method for dynamically executing an application program by a platform including a processor with a program memory and a programmable logic unit, wherein a first application program having a first module is loaded from an application database into the program memory and/or the programmable logic unit during a programming mode and executed as first program code during an execution mode, where a processor or the programmable logic unit performs a check during the execution mode based on a predefined criterion to determine whether a second application program having a second module should be loaded from the application database and, if so, the system switches to the programming mode and the second module is loaded into the program memory and/or the programmable logic unit and executed as second program code, where the system switches to the execution mode in which the second program code is executed.

    Claims

    1.-11. (canceled)

    12. A computer-implemented method for dynamically executing at least one application program by a platform including a processor comprising a program memory including a programmable logic unit, the processor and programmable logic unit supporting a programming mode and an execution mode, during the programming mode, a first application program comprising at least one first module being loaded into at least one of the program memory and the programmable logic unit so as to be executable as at least one first program code from an application database and being programmed and, during the execution mode, the at least one first program code is executed, the method comprising: checking during the execution mode, one of the processor or the programmable logic unit on which the at least one first program code is executed, based on at least one predefined criterion, whether a second application program comprising at least one second module should be loaded from the application database; performing a change to the programming mode, and loading at least the at least one second module into at least one of the program memory and the programmable logic unit so as to be executable as at least one second program code, if the second application program comprising at least one second module should be loaded from the application database; and implementing a change to the execution mode, in which the at least one second program code is executed, if the second application program comprising at least one second module should be loaded from the application database.

    13. The method as claimed in claim 12, wherein a usage level of one of (i) the processor, (ii) the working memory and the program memory of the processor and (ii) the programmable logic unit are determined and accordingly taken into consideration during the execution of the first application program during the check to determine whether the second application program should be loaded.

    14. The method as claimed in claim 12, wherein a usage level of one of (i) the processor, (ii) the working memory and program memory of the processor and (iii) the programmable logic unit is calculated, estimated and accordingly taken into consideration during the execution of the second application program during the check to determine whether the second application program should be loaded.

    15. The method as claimed in claim 13, wherein at least one of the processor and the programmable logic unit is utilized to define whether at least one of the first and second module should be stored in one of the program memory and the programmable logic unit during the execution mode.

    16. The method as claimed in claim 14, wherein at least one of the processor and the programmable logic unit is utilized to define whether at least one of the first and second module should be stored in one of the program memory and the programmable logic unit during the execution mode.

    17. The method as claimed in claim 12, wherein an application management module, which is executed by a management system contained in the platform and which is incorporated into a connection between the application database and the processor and the programmable logic unit, defines whether at least one of (i) the first and (ii) the at least one second module is stored in one of the program memory and the programmable logic unit during the execution mode.

    18. The method as claimed in claim 12, wherein the at least one second module loaded so as to be executable comprises a corresponding second processor program code for execution by the processor in the program memory, and a corresponding second logic program code for execution by the programmable logic unit in the programmable logic unit.

    19. The method as claimed in claim 12, wherein the predefined criterion comprises one of an exceedance of an operative limit value of the platform, reaching a predefined state for the first application program, triggering an alarm or a fault notification on the platform and reaching a predefined time.

    20. The method as claimed in claim 12, wherein at least two application programs are executed dynamically.

    21. The method as claimed in claim 20, wherein at least three application programs.

    22. The method as claimed in claim 21, wherein one of at least five and at least ten application programs are executed dynamically.

    23. The method as claimed in claim 12, wherein the first and the second application program are identical; and wherein the at least one first and at least one second program code are different.

    24. A system for dynamically executing at least one application program by a platform including a processor comprising a program memory and including a programmable logic unit, the processor and the programmable logic unit supporting a programming mode and an execution mode; wherein the system is configured to: load a first application program comprising at least one first module into at least one of the program memory and the programmable logic unit during the programming mode so as to be executable as at least one first program code from an application database to program the first application program and, during the execution mode, to execute the first application program; wherein the system is configured to: check during the execution mode, one of the processor or the programmable logic unit on which the at least one first program code is executed, based on at least one predefined criterion, whether a second application program comprising at least one second module should be loaded from the application database; perform a change to the programming mode, and load at least the at least one second module into at least one of the program memory and the programmable logic unit so as to be executable as at least one second program code, if the second application program comprising at least one second module should be loaded from the application database; and implement a change to the execution mode, in which the at least one second program code is executed, if the second application program comprising at least one second module should be loaded from the application database.

    25. The system as claimed in claim 12, further comprising: an application management system comprising an execution memory and an application database, wherein the application management system is configured to execute an application management module and to provide an application program to the platform.

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0075] The invention is explained in more detail below with reference to an exemplary embodiment illustrated in the accompanying drawings, in which:

    [0076] FIG. 1 schematically shows a supply process for platform software in accordance with the invention;

    [0077] FIG. 2 schematically shows a system for dynamically executing an application program in accordance with the invention; and

    [0078] FIG. 3-5 show exemplary configurations for dynamically supplying the application program in accordance with the invention.

    DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS

    [0079] FIG. 1 schematically shows a supply process for platform software from an application program 10 via a “delivery pipeline” 20, i.e., the supply of the software from a database to the platform 30.

    [0080] FIG. 2 shows a system S in accordance with the invention for dynamically executing an application program 11 of an application 10 by a platform 30.

    [0081] The platform 30 has a processor comprising a program memory 31 and has a programmable logic unit 32, and is configured to execute the application program 10 in the form of at least one program code via the processor 31 and the programmable logic unit 32.

    [0082] The system S furthermore comprises an application management system AADM-S comprising an execution memory and an application database ADB, such as an app store.

    [0083] The application management system AADM-S is configured to execute an application management module AADM.

    [0084] By way of example, the application management module AADM may make a configuration query CONFIG to the platform 30 to ascertain a current usage level brought about by the operation of an application program on the platform 30.

    [0085] Should it be desired to change the current programming of the processor 31 or logic unit 32, then a corresponding query may be made by the application management module AADM to the application database ADB via a corresponding load request LOAD to modify the program code on the platform and to provide the application program 10, which corresponds to a desired configuration.

    [0086] A configuration may be understood in the present context to mean a distribution of functional modules of an application program in the form of corresponding program codes M-P for execution by the processor 31 and/or of program codes M-L for execution by the programmable logic unit 32.

    [0087] The application program is ascertained from the database ADB, and the modules of the application program 11 are composed and compiled or formed so as to create program codes, by way of what is known as a “delivery pipeline” 20, which is part of the application management system AADM-S.

    [0088] The generation of the program code may, for example, include frameworks or other libraries 21, and FPGA region drivers 22, FPGA manager drivers 23, FPGA bridge drivers 24 or vendor FPGA drivers 25.

    [0089] FIG. 3 to FIG. 5 schematically show the dynamic supply of an application 10 to a platform 30 via the “delivery pipeline” 20.

    [0090] What is illustrated is an application program 11 comprising multiple software modules 12, 13, 14, 15, which cover, for example, different technical functionalities of the application program 11.

    [0091] A request to reconfigure an application program 11 may then be generated, such as depending on the current performance of the application program that is executed by the platform.

    [0092] FIG. 3 shows a first exemplary configuration in which the application program 11 is prepared in modules for execution by the processor 31, i.e., by incorporating the required libraries, drivers are compiled for execution by the processor and the interfaces thereof and program codes 112-114 are formed and stored in the program memory of the processor 31.

    [0093] A module is, however, prepared for execution by the programmable logic unit 32, i.e., by incorporating the required libraries, drivers are compiled for execution by the logic unit and the interfaces thereof and a program code 215 is formed and the logic unit is programmed accordingly.

    [0094] FIG. 4 shows a second exemplary configuration in which the application program 11 is prepared in modules for execution by the processor 31, i.e., by incorporating the required libraries, drivers are compiled for execution by the processor and the interfaces thereof and program codes 112-113 are formed and stored in the program memory of the processor 31.

    [0095] A module is, however, prepared for execution by the programmable logic unit 32, i.e., by incorporating the required libraries, drivers are compiled for execution by the logic unit and the interfaces thereof and program codes 214-215 are formed and the logic unit is programmed accordingly.

    [0096] FIG. 5 shows a third exemplary configuration in which the application program 11 is prepared in modules for execution by the processor 31, i.e., by incorporating the required libraries, drivers are compiled for execution by the processor and the interfaces thereof and program codes 112-115 are formed and stored in the program memory of the processor 31.

    [0097] A module is, however, prepared for execution by the programmable logic unit 32, i.e., by incorporating the required libraries, drivers are compiled for execution by the logic unit and the interfaces thereof and a program code 215 is formed and the logic unit is programmed accordingly.

    [0098] In this configuration, the program code 115 and also the program code 215 corresponds to the corresponding module of the application program 11. The same functionality for the module is consequently available both for execution by the processor 31 and for execution by the logic unit 32 and these are called dynamically in accordance with the respective situation.

    [0099] Thus, while there have been shown, described and pointed out fundamental novel features of the invention as applied to a preferred embodiment thereof, it will be understood that various omissions and substitutions and changes in the form and details of the methods described and the devices illustrated, and in their operation, may be made by those skilled in the art without departing from the spirit of the invention. For example, it is expressly intended that all combinations of those elements and/or method steps which perform substantially the same function in substantially the same way to achieve the same results are within the scope of the invention. Moreover, it should be recognized that structures and/or elements and/or method steps shown and/or described in connection with any disclosed form or embodiment of the invention may be incorporated in any other disclosed or described or suggested form or embodiment as a general matter of design choice. It is the intention, therefore, to be limited only as indicated by the scope of the claims appended hereto.