WO2011118048A1 - プログラム実行方法、計算機システム及びプログラム実行制御プログラム - Google Patents
プログラム実行方法、計算機システム及びプログラム実行制御プログラム Download PDFInfo
- Publication number
- WO2011118048A1 WO2011118048A1 PCT/JP2010/055985 JP2010055985W WO2011118048A1 WO 2011118048 A1 WO2011118048 A1 WO 2011118048A1 JP 2010055985 W JP2010055985 W JP 2010055985W WO 2011118048 A1 WO2011118048 A1 WO 2011118048A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- processing module
- executed
- identification number
- processing
- procedure
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
Definitions
- the present invention relates to a computer system that executes an application program, and relates to a technique for changing an application program even while the application program is being executed.
- the correction part is a part of the application (such as a change in input confirmation processing due to the addition of a check box to the screen), or when a defect in an existing function is corrected immediately, the application can be changed immediately.
- processing could not be performed or inconsistent processing due to forced termination of processing. Therefore, the application cannot be changed until the next scheduled maintenance even if the user seems to be able to correct it immediately, the defect needs to be corrected immediately, or even if the change range is small.
- the quality of the product deteriorates. Therefore, it is required to change the application quickly. For this reason, the following techniques have been proposed as conventional techniques for changing applications.
- Patent Document 1 in a computer system having a load distribution function that distributes loads due to processing requests from a plurality of servers and clients among active servers, the operation rate is low when there is an application update instruction.
- Patent Document 2 describes a technology for distributing new software according to a preset schedule and changing to new software when there is an old version of software corresponding to the distributed new software. .
- An object of the present invention is to alleviate restrictions on the timing of application changes and to change applications quickly.
- a typical example of the present invention is as follows.
- a program execution method in a computer that executes an application program composed of one or a plurality of processing modules, the processing module including one or a plurality of processing, and the processing module is managed by an identification number
- the computer includes an AP update determining unit that determines the timing of changing the processing module to be executed, and a processing module calling unit that calls the processing module, and the method includes:
- Each of the procedures included in the application program includes a procedure for determining whether the processing module to be executed needs to be changed by comparing the identification number of the processing module with the identification number of the deployed processing module, and the AP update determination unit.
- History information indicating whether the process has been executed and the processing module being executed A procedure for determining an identification number of a processing module to be executed based on information indicating processing different from a deployed processing module, and a processing module in which the processing module calling unit is determined by the AP update determination unit And a procedure for calling a processing module by designating an identification number. According to the embodiment of the present invention, it is possible to change an application not at a predetermined timing but at a timing at which inconsistency of processing does not occur even during processing of the application.
- FIG. 1 is an overall configuration diagram of a computer system according to the first embodiment of this invention.
- FIG. 2 is a diagram illustrating a functional configuration example of an application according to the first embodiment of the present invention.
- FIG. 3 is a configuration diagram of each processing module stored in the processing module storage unit according to the first embodiment of the present invention.
- FIG. 4A is a hardware configuration diagram of the computer according to the first embodiment of this invention.
- FIG. 4B is a hardware configuration diagram of the client terminal according to the first embodiment of the present invention.
- FIG. 5A is a diagram illustrating an example of the configuration of the latest version information according to the first embodiment of the present invention.
- FIG. 5B is a diagram illustrating an example of a configuration of processing module information according to the first embodiment of the present invention.
- FIG. 5A is a diagram illustrating an example of the configuration of the latest version information according to the first embodiment of the present invention.
- FIG. 5B is a diagram illustrating an example of a configuration of processing module information according to the first
- FIG. 5C is a diagram illustrating an example of a configuration of a work group definition according to the first embodiment of this invention.
- FIG. 6A is a diagram illustrating an example of a configuration of execution version information according to the first embodiment of the present invention.
- FIG. 6B is a diagram illustrating an example of a configuration of an execution history according to the first embodiment of this invention.
- FIG. 7 is a flowchart of processing module information update processing according to the first embodiment of the present invention.
- FIG. 8 is a flowchart showing the procedure of the execution process interrupt process according to the first embodiment of the present invention.
- FIG. 9 is a flowchart illustrating a procedure of AP update determination processing according to the first embodiment of this invention.
- FIG. 10 is a flowchart showing the procedure of the processing module call processing in the first embodiment of the present invention.
- FIG. 11A is a diagram illustrating an example of application change timing according to the first embodiment of this invention.
- FIG. 11B is a diagram showing the configuration of the execution history in the case shown in FIG. 11A.
- FIG. 11C is a diagram illustrating an example of application change timing according to the first embodiment of this invention.
- FIG. 12 is an overall configuration diagram of a computer system according to the second embodiment of this invention.
- FIG. 13 is a diagram illustrating an example of the configuration of the work group definition in the second exemplary embodiment of the present invention.
- FIG. 14 is a flowchart illustrating a procedure of AP update determination processing according to the second embodiment of the present invention.
- FIG. 11A is a diagram illustrating an example of application change timing according to the first embodiment of this invention.
- FIG. 11B is a diagram showing the configuration of the execution history in the case shown in FIG. 11A.
- FIG. 15 is a flowchart showing a procedure of execution history initialization processing in the second embodiment of the present invention.
- FIG. 16 is an overall configuration diagram of a computer system according to the third embodiment of this invention.
- FIG. 17 is a configuration diagram of each processing module stored in the processing module storage unit according to the third embodiment of the present invention.
- FIG. 18A is a diagram showing an example of the configuration of the latest version information in the third embodiment of the present invention.
- FIG. 18B is a diagram illustrating an example of a configuration of processing module information according to the third exemplary embodiment of the present invention.
- 19 is a diagram illustrating an example of execution version information according to the third embodiment of the present invention, and
- FIG. 20 is a flowchart illustrating a procedure of processing module information update processing according to the third embodiment of the present invention. These are the flowcharts which show the procedure of AP update judgment processing in the 3rd Embodiment of this invention.
- FIG. 22 is a flowchart showing a procedure of processing module call
- the application change timing (i.e., called) is determined based on the result of determining whether or not there is the same process between the executed process and the changed process according to the timing of the application change instruction.
- Identification information of the processing module to be determined is designated and called according to the determination result. Whether or not there is the same processing may be determined for each group of processing (work group) included in the processing module.
- the identification information used in the present invention is information for specifying a processing module to be called. When a processing module included in an application is changed, the processing module before the change is distinguished from the processing module after the change. It is a number to do.
- processing module information update unit for changing processing module information and changed identification information based on deployed modules
- An execution process interrupt unit that acquires the name of the process currently being executed by the application and interrupts the execution of that process
- AP update determination unit that determines the processing module change timing using the processing module information indicating the changed processing for each processing module identification information and the execution history of each processing.
- FIG. 1 is an overall configuration diagram of a computer system according to the first embodiment of this invention.
- the computer system according to the first embodiment includes an application execution device 100 and a client terminal 200, and the application execution device 100 and the client terminal 200 are connected by a network 350.
- the application execution apparatus 100 is a computer including a processor, a memory, and an interface, and details of the hardware configuration will be described with reference to FIG.
- the application execution apparatus 100 includes an application 110, an application execution processing unit 120, an application operation processing unit 130, a processing module storage unit 140, session information 150, and application execution information 160.
- the application execution processing unit 120 and the application operation processing unit 130 function when the processor executes the installed program.
- the application 110 is a program for processing a processing request from the client terminal 200 in the application execution apparatus 100, and is executed by the processor.
- the application execution processing unit 120 includes an execution processing interrupt unit 121, an AP update determination unit 122, and a processing module call unit 123.
- the execution process interrupt unit 121 acquires the name of the process being executed.
- the AP update determination unit 122 determines the version of the process module that can be changed.
- the processing module calling unit 123 calls the version of the processing module after the change.
- the operations of the execution processing interrupt unit 121, the AP update determination unit 122, and the processing module call unit 123 will be described later with reference to FIGS. 8, 9, and 10, respectively.
- the application operation processing unit 130 includes a work group definition editing tool 131, a processing module information update unit 132, and a processing module deployment tool 133.
- the work group definition editing tool 131 is used by the user to edit the work group definition 163 included in the application execution information 160.
- the processing module deployment tool 133 calls the processing module information update unit 132 to store the new processing module in the processing module storage unit 140 and update the processing module information 162.
- the processing module information update unit 132 updates the processing module information 162 regarding the added processing module.
- the operation of the processing module information update unit 132 will be described later with reference to FIG.
- the processing module storage unit 140 stores processing modules 141, 142, and 143 of each version.
- a processing module exists for each work group.
- a single processing module may include a plurality of work groups.
- the session information 150 is information generated for each session of a user who uses the application, and includes execution version information 151 and an execution history 152.
- the execution version information 151 is information indicating the version of the processing module currently being executed (see FIG. 6A).
- the execution history 152 is information indicating whether each process has been executed (see FIG. 6B).
- the application execution information 160 includes latest version information 161, processing module information 162, and work group definition 163.
- the latest version information 161 is information indicating the latest version of the processing module (see FIG. 5A).
- the processing module information 162 is information defining a processing module to be called for each version of the processing module (see FIG. 5B).
- the work group definition 163 is information indicating a work group including each process (see FIG. 5C).
- a work group is a group of processes provided for each group of processes.
- the client terminal 200 is a computer including a processor, a memory, and an interface, and a browser 210 is executed.
- the browser 210 is a program having a function of transmitting an HTTP request to the application execution apparatus 100 in response to a user processing request. Although only one client terminal 200 is illustrated, a plurality of client terminals 200 may be provided. FIG.
- the application 111 includes a plurality of processes executed in response to a request from the client terminal 200, and each process is sequentially executed by the processor of the application execution apparatus 100.
- the ticket reservation application 111 shown in FIG. 2 includes a login processing module 112, a ticket search processing module 113, a vacant seat inquiry processing module 114, and a reservation processing module 115.
- Each of these modules is configured by one or a plurality of processes (see FIG. 3), and corresponds to the work group 402 in the work group definition 163.
- FIG. 3 is a configuration diagram of each processing module stored in the processing module storage unit 140 according to the first embodiment.
- Each processing module is provided for each work group, and further provided for each version of the processing module. Further, when the version of a processing module corresponding to a certain work group is increased, only the process changed (upgraded) in that work group is included in the next version of the processing module. Therefore, a specific version of the processing module may not exist depending on the work group.
- one work group may be included in the application.
- the reservation processing module version 1 (170) shown in FIG. 3 corresponds to the processing included in the work group, the selection content confirmation screen display processing 171, customer information input screen display processing 172, fee calculation processing 173, application content.
- a confirmation screen display process 174, a check box input confirmation process 175, and a reservation completion screen display process 176 are included.
- the reservation processing module version 2 (180) whose version has been increased includes an application content confirmation screen display processing 181 and a check box input confirmation processing 182 in which the processing content has been changed.
- the reservation processing module version 1 (170) is included in the processing module version 1 (141), and the reservation processing module version 2 (180) is included in the processing module version 2 (142).
- FIG. 4A is a hardware configuration diagram of the computer system according to the first embodiment
- FIG. 4B is a hardware configuration diagram of the client terminal.
- the client terminal 200 is a computer that includes a processor 300, a main storage device 310, a secondary storage device (for example, a hard disk device) 320, and a network interface 340, and these devices are connected by a system bus 330.
- the main storage device 310 is, for example, a semiconductor memory, and stores a program (for example, a browser program 210) executed by the processor 300.
- the network interface 340 is connected to the network 350, and transmits / receives data to / from an apparatus (for example, the application execution apparatus 100) connected to the network 350 according to a predetermined protocol.
- the application execution apparatus 100 includes a processor 360, a network interface 370, a main storage device 390, and a secondary storage device (for example, a hard disk device) 400, and these devices are computers connected by a system bus 380.
- the network interface 370 is connected to the network 350 and transmits / receives data to / from a device (for example, the client terminal 200) connected to the network 350 according to a predetermined protocol.
- the main storage device 390 is, for example, a semiconductor memory, and various programs executed by the processor 360, specifically, an application 110, that is, a processing module included in the processing module storage unit 140, and an application execution processing unit 120 and a program for causing the application operation processing unit 130 to function are stored.
- the secondary storage device 400 is a large-capacity storage device such as a hard disk device, for example, and stores session information 150 and application information 160.
- 5A to 5C are diagrams showing examples of the configuration of the application execution information 160 in the first embodiment.
- FIG. 5A shows the latest version information 161
- FIG. 5B shows the processing module information 162
- FIG. 5C shows the work group. Definition 163 is shown. As illustrated in FIG.
- the latest version information 161 includes a latest version 411 representing the latest version among the processing modules stored in the processing module storage unit 140.
- the processing module information 162 includes a processing module version 421, a work group 422, a processing name 423, and a processing module name 424.
- the processing module version 421 is a version of the processing module.
- the work group 422 is a name of the work group.
- the process name 423 is a name of a process included in each work group.
- the processing module name 424 is a name of a processing module used for the processing module calling unit 123 to call the module.
- the work group definition 163 includes a process name 401 and a work group 402.
- the process name 401 is a name of a process included in each work group, and a name common to the process name 423 of the process module information 162 is used.
- the work group 402 is a name of a group that is a group of processes, and a name common to the work group 422 of the processing module information 162 is used.
- 6A and 6B are diagrams illustrating an example of the configuration of the session information 150 according to the first embodiment.
- FIG. 6A illustrates the execution version information 151
- FIG. 6B illustrates the execution history 152.
- the execution version information 151 includes an execution version 501 representing the version of the processing module of each process currently being executed.
- the execution version 501 acquires the value of the latest version 411 of the latest version information 161 at the start of the user session, and stores the acquired version value.
- the execution history 152 includes a process name 511, a work group 512, and an execution state 513.
- the process name 511 is a name of a process included in each work group, and a name common to the process name 423 of the process module information 162 is used.
- the work group 512 is a name of a group that is a group of processes, and a name common to the work group 422 of the processing module information 162 is used.
- the execution state 513 indicates whether each process has been executed, and stores either “executed” or “not executed”.
- the execution history 152 is initialized when a session with the client terminal 200 is established in the login process 112. Note that the execution history 152 may be initialized at the end of the session.
- the execution processing interrupt unit 121, the AP update determination unit 122, and the processing module call unit 123 that constitute the application execution processing unit 120 are executed when the application 110 processes a request from the browser 210 of the client terminal 200.
- the processing units constituting the application execution processing unit 120 are executed in the order of the execution processing interrupt unit 121, the AP update determination unit 122, and the processing module call unit 123 for each process of the application.
- the processing module information update unit 132 of the application operation unit 130 updates the processing module information 162 when a new processing module is stored in the processing module storage unit 140.
- FIG. 7 is a flowchart illustrating processing executed by the processing module information update unit 132 according to the first embodiment.
- the operator uses the processing module deployment tool 133 to store a new processing module in the processing module storage unit 140.
- the processing module deployment tool 133 calls the processing module information update unit 132, and the processing module information update processing 600 is executed.
- the processing module information update unit 132 updates the value stored in the latest version 411 of the latest version information 161 to a value incremented by 1, and sets the value to the variable V (step 601).
- step 604 the steps 603 to 604 are repeated for all the processes (S) included in the newly deployed processing module (step 602).
- Data for which the value of the process name 410 is the same as that of the process S is retrieved from the work group definition 163, the work group 402 of the retrieved data is acquired, and set to the variable G (step 603).
- data including the following items is added to the processing module information 162 (step 604).
- Process name 423 S
- Processing module name 424 S + “module” + V
- the loop is terminated (step 605).
- the execution process interrupt unit 121 interrupts the process of the application currently being executed, acquires the name of the process being executed, and sets it in the variable exe (step 701).
- exe For example, in Java (Java is a registered trademark, the same applies hereinafter), an interruption of execution processing can be realized by class file conversion (byte code operation), processing trapping on Java Virtual Machine, or the like.
- the acquired name (exe) of the process being executed is set as a parameter of the AP update determination unit 122 (step 702), and the AP update determination unit 122 is called.
- the AP update determination process 800 (FIG. 9) starts.
- FIG. 9) starts.
- FIG. 9 is a flowchart illustrating a procedure of processing executed by the AP update determination unit 122 according to the first embodiment.
- the execution process name exe is input as an argument.
- the AP update determination unit 122 determines whether or not the latest version 411 of the latest version information 161 matches the execution version 501 of the execution version information 151 (step 801). As a result, when the two match, the processing module call processing 900 is called using the executing process name exe as an argument.
- step 802 search the work group definition 163 for data having the same process name 401 value as the executing process name exe, obtain the value of the work group 402 of the retrieved data, and obtain the obtained work group 402 Is set to G (step 802). Thereafter, the process name 511 having the same value as the work group 512 and the execution state 513 of “executed” is extracted from the execution history 152, and the list L1 is acquired (step 803). Then, the latest version 411 of the latest version information 161 is set as the initial value of the version V compared with the processing module version 421 of the processing module information 162 (step 804).
- a process name 423 having the same value for the work group 422 as that for the work group G and the same value for the process module version 421 as that of the version V is extracted from the process module information 162 to obtain the list L2 (step 805). Thereafter, whether the version V is larger than the execution version 501 of the execution version information 151, the version V is equal to or less than the latest version 411 of the latest version information 161, and the same processing name exists in the list L1 and the list L2 Is determined (step 806). It is determined whether there is an executed process included in the list L1 and the same process as the version V process included in the list L2, that is, whether the process to be changed has been executed.
- FIG. 10 is a flowchart illustrating a procedure of processing executed by the processing module calling unit 123 according to the first embodiment.
- the processing module call processing 900 receives the executing process name exe as an argument. First, the value of the execution version 501 of the execution version information 151 is acquired and set to the variable V (step 901).
- FIG. 11A to FIG. 11C are diagrams for explaining examples of application change timings in the first embodiment. 11A and 11C show an example in which the timing of application change differs depending on the timing of AP change instructions 1001 and 1002, and FIG.
- the AP change instructions 1001 and 1002 are timings when a new module is deployed in the processing module storage unit 140 and the processing module update unit 132 updates the latest version information 161 and the processing module information 162. Further, in FIGS. 11A and 11C, the version processing specified in the execution version 501 is executed in accordance with the time axes 1004 and 1005. As shown in FIG. 11A, when an AP change instruction 1001 is issued between the application content confirmation screen display processing 174 and the check box input confirmation processing 175, the execution history 152 is displayed in the selected content confirmation as shown in FIG. 11B. The execution state 513 from the screen display process 171 to the application content confirmation screen display process 174 is “executed”.
- the AP update determination unit 122 compares the process name 511 whose execution state 513 is “executed” in the execution history 152 with the process name 423 of the process module information 162 (steps 803 to 806 in FIG. 9). ) Since the “application contents confirmation screen display” process exists in the lists L1 and L2, the execution version 1006 after the check box input confirmation process 175 remains 1 and remains unchanged. That is, in the case shown in FIG. 11A, since the application content confirmation screen display 184, which is a changed portion in the reservation processing module version 2 (180) larger than the value of the execution version 501, has been executed, The modified processing module is not executed. On the other hand, as shown in FIG.
- the execution history 152 displays the selected content confirmation as shown in FIG. 6B.
- the execution state 513 from the screen display process 171 to the charge calculation process 173 is “executed”, and the execution state 513 after the application content confirmation screen display process 174 is “not executed”. Therefore, the AP update determination unit 122 compares the process name 511 whose execution state 513 is “executed” in the execution history 153 with the process name 423 of the process module information 162 (steps 803 to 806 in FIG. 9).
- the list L2 has an “application content confirmation screen display” process, but the list L1 does not have an “application content confirmation screen display” process, so the execution version 1006 after the application content confirmation screen display process 174 is 2 Changed to That is, in the case shown in FIG. 11C, since the application content confirmation screen display 184 that is a changed portion in the reservation processing module version 2 (180) larger than the value of the execution version 501 has not been executed, the version of the processing module at this timing Since the consistency of the process can be maintained even if the value is increased, the changed processing module is immediately executed.
- the processing module can be called for each user session while distinguishing the version.
- the application can be changed according to the update timing of the latest version information 161 and the processing module information 162. That is, based on the result of comparing the execution history 152 and the processing module information 162, it is determined whether the value of the execution version 501 can be increased to the value of the latest version 411 in the currently executing process, and whether the application can be changed is determined. be able to.
- FIG. 12 is an overall configuration diagram of a computer system according to the second embodiment.
- the computer system according to the second embodiment includes an application execution device 100 and a client terminal 200, and the application execution device 100 and the client terminal 200 are connected by a network 350.
- symbol is attached
- the application execution apparatus 100 according to the second embodiment includes an application analysis unit 1100 in addition to the same configuration as that of the first embodiment described above.
- the application analysis unit 1100 functions by the processor executing the installed program.
- the application analysis unit 1100 analyzes the source code of the application 110 and performs application analysis to determine which process is the start process or the end process in the work group. The result of this analysis is recorded in the processing order 1201 of the work group definition 263 (FIG.
- FIG. 13 is a diagram illustrating an example of the configuration of the work group definition 263 in the second embodiment.
- the work group definition 263 includes a process name 401, a work group 402, and a process order 1201.
- the process name 401 and the work group 402 are the same as the work group definition 163 (FIG. 5C) of the first embodiment described above.
- the process order 1201 is information indicating whether each process is a start process or an end process.
- FIG. 14 is a flowchart illustrating a procedure of processing executed by the AP update determination unit 222 according to the second embodiment.
- steps 1411 and 1412 are newly added to the AP update determination process 800 (FIG. 9) of the first embodiment.
- Steps 801 to 808 of the AP update determination process 1400 of the second embodiment are the same as steps 801 to 808 of the AP update determination process 800 of the first embodiment, and thus description thereof is omitted.
- an execution history initialization process 1401 is executed.
- the character string (“start” or “end”) and the process name exe being executed are specified as arguments.
- start is input in step 1411 and “end” is input in step 1412. Details of the execution history initialization processing 1401 will be described later with reference to FIG.
- FIG. 15 is a flowchart illustrating a procedure of an execution history initialization process 1401 according to the second embodiment.
- a character string Str and an executing process name exe are input as arguments.
- data having the same process name 401 value as the process name exe being executed is searched from the work group definition 263, the processing order 1201 of the searched data and the value of the work group 402 are acquired, and the acquired value of the work group 402 is acquired.
- step 1402 it is determined whether or not the processing order 1201 acquired in step 1402 matches the character string Str (step 1403). As a result, when the two do not match, it is not the timing to initialize the execution history, so this processing 1401 is terminated. On the other hand, when the two match, it is the timing for starting or ending the work group, and the timing for initializing the execution history of the work group. For this reason, the procedure of step 1405 is repeated for data whose work group 512 value is the same as that of the work group G (step 1404). In step 1405, the value of the execution state 513 of the execution history 152 is set to “not executed” (step 1405).
- step 1405 the procedure of step 1405 is finished for all the processes, the loop is finished (step 1406).
- the application analysis unit 1100 adds the processing order 1201 to the work group definition 163.
- the AP update determination unit 222 uses the processing order 1201 to execute an execution history initialization process. By initializing the execution history, the application can be changed again when the user executes the process after changing the application once and then executes the process of the work group again without logging in again. Further, as in the first embodiment of the present invention, the application can be quickly changed without any process inconsistency even when the application process is being executed, regardless of a predetermined timing. ⁇ Embodiment 3> Next, a third embodiment will be described.
- FIG. 16 is an overall configuration diagram of a computer system according to the third embodiment.
- the computer system according to the third embodiment includes an application execution device 100 and a client terminal 200, and the application execution device 100 and the client terminal 200 are connected by a network 350.
- the application execution apparatus 100 includes an organization identification processing unit 1500 in addition to the same configuration as that of the first embodiment described above.
- the organization identification processing unit 1500 functions by the processor executing the installed program.
- the organization identification processing unit 1500 identifies organization information of a user who has accessed from the browser 210 of the client terminal 200.
- the application execution apparatus 100 manages data that associates user identifiers with organization information.
- execution version information 351 is recorded for each identified organization information (see FIG. 19).
- the latest version information 361 stores the latest version 411 for each organization name 1701 (see FIG.
- FIG. 17 is a configuration diagram of each processing module stored in the processing module storage unit 140 according to the third embodiment.
- Each processing module is classified for each organization and each work group, and further provided for each version of the processing module. Further, when the version of a processing module corresponding to a certain work group of a certain organization is increased, only the processing changed (upgraded) in that work group is included in the next version of the processing module. For example, the organization A reservation processing module version 1 (1600) shown in FIG.
- a reservation processing module version 2 (1610) whose version has been increased includes an application content confirmation screen display processing 1614 and a check box input confirmation processing 1612 whose processing content has been changed.
- the organization B reservation processing module version 1 (1620) corresponds to the processing included in the work group, selection content confirmation screen display processing 1621, customer information input screen display processing 1622, fee calculation processing 1623, application content confirmation.
- a screen display process 1624, a check box input confirmation process 1625, and a reservation completion screen display process 1626 are included.
- the organization B reservation processing module version 1 (1620) has the same configuration as the organization A reservation processing module version 1 (1600), but the content of each processing may be the same or different.
- the organization A reservation processing module version 1 (1600) and the organization B reservation processing module version 1 (1620) are included in the processing module version 1 (141), and the organization A reservation processing module version 2 (1610) is included. , Included in processing module version 2 (142).
- FIG. 18A is a diagram illustrating an example of the configuration of the latest version information 361 according to the third embodiment.
- the latest version information 361 includes an organization name 1701 and a latest version 411.
- the organization name 1701 represents the organization to which the user belongs.
- the latest version 411 represents the latest version for each organization among the processing modules stored in the processing module storage unit 140.
- FIG. 18A is a diagram illustrating an example of the configuration of the latest version information 361 according to the third embodiment.
- the latest version information 361 includes an organization name 1701 and a latest version 411.
- the organization name 1701
- the processing module information 362 includes an organization name 1711, a processing module version 421, a work group 422, a processing name 423, and a processing module name 424.
- the organization name 1701 represents the organization to which the user belongs.
- the processing module version 421, the work group 422, the processing name 423, and the processing module name 424 each represent information for each organization. That is, the processing module information 362 of the third embodiment represents a processing module that is called for each organization, work group, and processing module version.
- FIG. 19 is a diagram illustrating an example of the execution version information 351 according to the third embodiment.
- the execution version information 351 includes an organization name 1801 and an execution version 501.
- FIG. 20 is a flowchart illustrating a procedure of processing executed by the processing module information update unit 132 according to the third embodiment.
- step 1901 is added to the processing module information update processing 600 (FIG. 7) of the first embodiment, and step 1902 is replaced with step 604 instead of step 601. Instead, step 1903 is executed.
- Steps 602, 603, and 605 of the processing module information update processing 1900 of the third embodiment are the same as steps 602, 603, and 605 of the processing module information update processing 600 of the first embodiment. Omitted.
- the operator uses the processing module deployment tool 133 to store a new processing module in the processing module storage unit 140.
- the organization information Org corresponding to the newly deployed processing module is input to the processing module deployment tool 133.
- the processing module deployment tool 133 calls the processing module information update unit 132, and the processing module information update processing 1900 is executed.
- the input organization information Org is acquired from the processing module deployment tool 133 (step 1901).
- Data with the same organization name 1701 value as the organization information Org is retrieved from the latest version information 361, the value of the latest version 411 of the retrieved data is updated to a value incremented by 1, and set to the variable V (step 1902). .
- step 602 a loop is started for all the processes (S) included in the newly deployed processing module (step 602).
- the procedure of step 603 is executed.
- data including the following items is added to the processing module information 362 (step 1903).
- the loop is terminated (step 605).
- FIG. 21 is a flowchart illustrating a procedure of processing executed by the AP update determination unit 322 according to the third embodiment.
- step 2001 is added to the AP update determination process 800 (FIG. 9) of the first embodiment, and step 2002 is executed instead of step 805. Since steps 801 to 804 and 806 to 808 of the AP update determination process 2000 of the third embodiment are the same as steps 801 to 804 and 806 to 808 of the AP update determination process 800 of the first embodiment, Description is omitted.
- the execution process name exe is input as an argument. First, the value of the organization name 1801 and the value of the execution version 501 are acquired from the execution version information 351, and the acquired value of the organization name 1801 is set in Org.
- the value of the latest version 411 of data having the same organization name 1701 as the organization name Org is acquired (step 2001). Thereafter, steps 801 to 804 are executed. Thereafter, a process name 423 in which the value of the organization name 1711 is the same as the organization name Org, the value of the work group 422 is the same as that of the work group G, and the value of the process module version 421 is the same as the version V is processed.
- the list L2 is obtained by extracting from 162 (step 2002). Thereafter, the procedure from Step 806 to 807 is executed, and when the condition of Step 806 is satisfied, the value of the execution version 501 of the execution version information 351 is updated to V (Step 808), and the processing module calling unit 123 is called.
- FIG. 22 is a flowchart illustrating a procedure of processing executed by the processing module calling unit 123 according to the third embodiment.
- steps 2101 and 2102 are executed instead of steps 901 and 902 in the processing module call processing 900 (FIG. 10) of the first embodiment.
- Steps 903 to 905 of the processing module call processing 2100 of the third embodiment are the same as steps 903 to 905 of the processing module call processing 900 of the first embodiment, and a description thereof will be omitted.
- the value of the organization name 1801 and the value of the execution version 501 of the execution version information 351 are acquired, the acquired organization name value is set in the variable Org, and the acquired execution version value is set in the variable V (step 2101). ).
- step 2102 data (row L) in which the organization name 1711 is the same as the organization name Org, the value of the processing module version 421 is the same as the version V, and the value of the processing name 423 is the same as the processing name exe being executed is processed.
- Search is performed from the information 362 (step 2102). Thereafter, it is determined whether or not the row L exists (step 903). If the row L does not exist, the version V is decremented by 1 (step 904), and the process returns to step 2102. On the other hand, if the row L exists, the module of the processing module name 424 in the row L is called (step 905).
- the organization identification processing unit 1500 adds the organization name to the execution version information 151.
- the processing module calling unit 123 executes application processing.
- application processing By identifying organization information, one application execution device can be shared by users of multiple organizations, and the timing of application changes can be changed for each organization, and the contents of processing by applications can be changed. . Further, as in the first embodiment of the present invention, the application can be quickly changed without any process inconsistency even when the application process is being executed, regardless of a predetermined timing.
- the present invention is applied to a computer system that executes an application program, relaxes restrictions on the timing of changing the application, and changes the application quickly.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
Description
一般に、システムを変更する場合、アプリケーション全体を入れ替えた後、システムを再起動する必要がある。また、変更すべきアプリケーションが実行中であった場合、アプリケーションの実行が終了するまで変更を待つか、実行されているアプリケーションを強制的に終了させる必要があった。そのため、修正箇所がアプリケーションの一部(画面へのチェックボックス追加に伴う入力確認処理の変更など)である場合や、既存機能の不具合をすぐに修正する場合でも、アプリケーションをすぐに変更することができなかったり、処理の強制終了による処理の不整合が生じる可能性があった。
従って、ユーザからは、すぐに修正できるように見える場合、すぐに不具合を修正する必要がある場合、又は、変更範囲が小さい場合でも、次回の定期メンテナンスまでアプリケーションを変更することができず、サービスの質が低下する問題がある。そこで、アプリケーションを迅速に変更することが求められている。
このため、アプリケーションを変更するための従来技術として、以下の技術が提案されている。
例えば、特許文献1には、複数のサーバとクライアントからの処理要求による負荷を稼動中のサーバ間で分散させる負荷分散機能を有する計算機システムにおいて、アプリケーションの更新指示があった場合、稼働率が低いサーバから停止し、アプリケーションのバージョンアップすることによって、システムを停止させることなく、アプリケーションを変更する技術が記載されている。
また、例えば、特許文献2には、予め設定されたスケジュールに従って、新しいソフトウェアを配信し、配布された新しいソフトウェアに対応する旧版のソフトウェアが存在する場合、新しいソフトウェアに変更する技術が記載されている。
本発明では、アプリケーションの変更のタイミングの制約を緩和し、アプリケーションを迅速に変更することを目的とする。
本発明の代表的な一例を示せば以下の通りである。すなわち、1又は複数の処理モジュールによって構成されるアプリケーションプログラムを実行する計算機におけるプログラム実行方法であって、前記処理モジュールは、1又は複数の処理を含み、かつ前記処理モジュールは識別番号で管理されており、前記計算機は、実行する処理モジュールの変更のタイミングを判断するAP更新判断部と、処理モジュールを呼び出す処理モジュール呼出部と、を備え、前記方法は、前記AP更新判断部が、実行中の処理モジュールの識別番号と配備された処理モジュールの識別番号とを比較することによって、実行する処理モジュールの変更が必要かを判断する手順と、前記AP更新判断部が、前記アプリケーションプログラムに含まれる各処理が実行済かを示す履歴情報と、実行中の処理モジュールと配備された処理モジュールとの間で異なる処理を示す情報とに基づいて、実行する処理モジュールの識別番号を決定する手順と、前記処理モジュール呼出部が、前記AP更新判断部によって決定された処理モジュールの識別番号を指定して、処理モジュールを呼び出す手順と、を含む。
本発明の実施の形態によれば、予め決められたタイミングでなく、アプリケーションの処理が実行中でも、処理の不整合が生じないタイミングでアプリケーションを変更することができる。
図2は、本発明の第1の実施形態におけるアプリケーションの機能的な構成例を示す図である。
図3は、本発明の第1の実施形態における処理モジュール格納部に格納されている各処理モジュールの構成図である。
図4Aは、本発明の第1の実施の形態におけるコンピュータのハードウェアの構成図である。
図4Bは、本発明の第1の実施の形態におけるクライアント端末のハードウェアの構成図である。
図5Aは、本発明の第1の実施形態における最新バージョン情報の構成の一例を示す図である。
図5Bは、本発明の第1の実施形態における処理モジュール情報の構成の一例を示す図である。
図5Cは、本発明の第1の実施形態における作業グループ定義の構成の一例を示す図である。
図6Aは、本発明の第1の実施形態における実行バージョン情報の構成の一例を示す図である。
図6Bは、本発明の第1の実施形態における実行履歴の構成の一例を示す図である。
図7は、本発明の第1の実施形態における処理モジュール情報更新処理のフローチャートである。
図8は、本発明の第1の実施形態における実行処理割込処理の手順を示すフローチャートである。
図9は、本発明の第1の実施形態におけるAP更新判断処理の手順を示すフローチャートである。
図10は、本発明の第1の実施形態における処理モジュール呼出処理の手順を示すフローチャートである。
図11Aは、本発明の第1の実施形態におけるアプリケーション変更のタイミングの例を説明する図ある。
図11Bは、図11Aに示す場合における、実行履歴の構成を示す図である。
図11Cは、本発明の第1の実施形態におけるアプリケーション変更のタイミングの例を説明する図ある。
図12は、本発明の第2の実施形態における計算機システムの全体の構成図である。
図13は、本発明の第2の実施形態における作業グループ定義の構成の一例を示す図である。
図14は、本発明の第2の実施形態におけるAP更新判断処理の手順を示すフローチャートである。
図15は、本発明の第2の実施形態における実行履歴の初期化処理の手順を示すフローチャートである。
図16は、本発明の第3の実施形態における計算機システムの全体の構成図である。
図17は、本発明の第3の実施形態における処理モジュール格納部に格納される各処理モジュールの構成図である。
図18Aは、本発明の第3の実施形態における最新バージョン情報の構成の一例を示す図である。
図18Bは、本発明の第3の実施形態における処理モジュール情報の構成の一例を示す図である。
図19は、本発明の第3の実施形態における実行バージョン情報の一例を示す図である
図20は、本発明の第3の実施形態における処理モジュール情報更新処理の手順を示すフローチャートである
図21は、本発明の第3の実施形態におけるAP更新判断処理の手順を示すフローチャートである。
図22は、本発明の第3の実施形態における処理モジュール呼出処理の手順を示すフローチャートである。
本発明では、アプリケーションの変更指示のタイミングに応じて、実行済の処理と変更される処理とで、同じ処理があるか否かを判定した結果に基づいて、アプリケーションの変更のタイミング(すなわち、呼び出される処理モジュールの識別情報)を判定し、その判定結果に従って、処理モジュールを指定して呼び出す。
なお、同じ処理があるか否かは、処理モジュールに含まれる処理のまとまり(作業グループ)毎に判定するとよい。
また、本発明で用いられる識別情報とは、呼び出される処理モジュールを特定するための情報で、アプリケーションに含まれる処理モジュールが変更された場合、変更前の処理モジュールと変更後の処理モジュールとを区別するための番号である。例えば、処理モジュールの変更時に、1ずつ値が増加するバージョン番号(バージョン)を使うことができる。なお、バージョン以外の他の情報であっても、呼び出される処理モジュールを一意に特定できるものであればよい。
本発明の実施の形態では、前述した方法を実現するために、以下の処理部を備える。
(1)配備されたモジュールに基づいて、処理モジュール情報と変更後の識別情報を変更する処理モジュール情報更新部
(2)アプリケーションが現在実行中の処理名を取得し、その処理の実行に割り込む実行処理割込部
(3)変更された処理を処理モジュールの識別情報毎に示した処理モジュール情報、及び、各処理の実行履歴を用いて処理モジュールの変更タイミングを判断するAP更新判断部
(4)処理モジュール情報とAP更新判断部による判断結果を用いて、実行中の識別情報に従って、処理モジュールを特定して呼び出す処理モジュール呼出部
以降では、本発明の実施形態について図面を用いて詳細に説明する。まず、第1の実施形態について説明する。なお、以降の実施形態の説明では、アプリケーションの変更の一例として、アプリケーションの更新(バージョンアップ)について記述しているが,本発明におけるアプリケーションの変更はバージョンアップに限定するものではない。他の例としては,ロールバックや一時的な機能変更などが挙げられる。
<実施形態1>
図1は、本発明の第1の実施形態における計算機システムの全体の構成図である。
第1の実施形態の計算機システムは、アプリケーション実行装置100及びクライアント端末200を備え、アプリケーション実行装置100とクライアント端末200とは、ネットワーク350によって接続される。
アプリケーション実行装置100は、プロセッサ、メモリ及びインターフェースを備える計算機であり、そのハードウェアの構成の詳細は図4を用いて説明する。
アプリケーション実行装置100は、アプリケーション110、アプリケーション実行処理部120、アプリケーション運用処理部130、処理モジュール格納部140、セッション情報150及びアプリケーション実行情報160を備える。アプリケーション実行処理部120及びアプリケーション運用処理部130は、インストールされたプログラムをプロセッサが実行することによって機能する。
アプリケーション110は、アプリケーション実行装置100において、クライアント端末200からの処理要求を処理するプログラムであり、プロセッサによって実行される。
アプリケーション実行処理部120は、実行処理割込部121、AP更新判断部122及び処理モジュール呼出部123を備える。
実行処理割込部121は、実行中の処理名を取得する。AP更新判断部122は、変更可能な処理モジュールのバージョンを判断する。処理モジュール呼出部123は、変更後のバージョンの処理モジュールを呼び出す。なお、実行処理割込部121、AP更新判断部122及び処理モジュール呼出部123の動作については、各々、図8、図9及び図10を用いて後述する。
アプリケーション運用処理部130は、作業グループ定義編集ツール131、処理モジュール情報更新部132及び処理モジュール配備ツール133を備える。作業グループ定義編集ツール131は、ユーザがアプリケーション実行情報160に含まれる作業グループ定義163を編集するために用いられる。処理モジュール配備ツール133は、新しい処理モジュールを処理モジュール格納部140に格納し、処理モジュール情報162を更新するために、処理モジュール情報更新部132を呼び出す。処理モジュール情報更新部132は、追加された処理モジュールに関する処理モジュール情報162を更新する。処理モジュール情報更新部132の動作については、図7を用いて後述する。
処理モジュール格納部140は、各バージョンの処理モジュール141、142及び143を格納している。処理モジュールは作業グループ毎に存在する。なお、一つの処理モジュールに複数の作業グループが含まれてもよい。
セッション情報150は、アプリケーションを利用するユーザのセッション毎に生成される情報で、実行バージョン情報151及び実行履歴152を含む。実行バージョン情報151は、現在実行中の処理モジュールのバージョンを示す情報である(図6A参照)。実行履歴152は、各処理が実行済かを示す情報である(図6B参照)。
アプリケーション実行情報160は、最新バージョン情報161、処理モジュール情報162及び作業グループ定義163を含む。最新バージョン情報161は、処理モジュールの最新バージョンを示す情報である(図5A参照)。処理モジュール情報162は、処理モジュールのバージョン毎に、呼び出される処理モジュールを定義した情報である(図5B参照)。作業グループ定義163は、各処理が含まれる作業グループを示す情報である(図5C参照)。なお、作業グループは、一纏まりの処理の区切り毎に設けられる、処理のグループである。
クライアント端末200は、プロセッサ、メモリ及びインターフェースを備える計算機であり、ブラウザ210が実行される。ブラウザ210は、ユーザの処理要求に応じて、アプリケーション実行装置100に対してHTTPリクエストを送信する機能を有するプログラムである。なお、クライアント端末200は、1台のみ図示するが、複数のクライアント端末200が備わってもよい。
図2は、第1の実施形態におけるアプリケーション111の機能的な構成例を示す図である。
アプリケーション111は、クライアント端末200からの要求に対して実行される複数の処理を含み、アプリケーション実行装置100のプロセッサによって各処理が順次実行される。
例えば、図2に示すチケット予約アプリケーション111は、ログイン処理モジュール112、チケット検索処理モジュール113、空席照会処理モジュール114及び予約処理モジュール115を含む。これらの各モジュールは、一つ又は複数の処理によって構成され(図3参照)、作業グループ定義163における作業グループ402に対応する。
図3は、第1の実施形態における処理モジュール格納部140に格納される各処理モジュールの構成図である。
各処理モジュールは作業グループ毎に従って設けられ、さらに処理モジュールのバージョン毎に設けられる。また、ある作業グループに対応する処理モジュールのバージョンが上がった場合、その作業グループ中で変更(バージョンアップ)された処理だけが、次のバージョンの処理モジュールに含まれる。そのため、作業グループによっては、特定のバージョンの処理モジュールが存在しない場合もある。なお、アプリケーションに含まれる作業グループ(処理モジュール)は一つでもよい。
例えば、図3に示す予約処理モジュールバージョン1(170)は、作業グループに含まれる処理に対応して、選択内容確認画面表示処理171、顧客情報入力画面表示処理172、料金計算処理173、申込内容確認画面表示処理174、チェックボックス入力確認処理175及び予約完了画面表示処理176を含む。バージョンが上がった予約処理モジュールバージョン2(180)は、処理内容に変更があった申込内容確認画面表示処理181及びチェックボックス入力確認処理182を含む。
なお、予約処理モジュールバージョン1(170)は、処理モジュールバージョン1(141)に含まれ、予約処理モジュールバージョン2(180)は、処理モジュールバージョン2(142)に含まれる。
図4Aは、第1の実施形態における計算機システムのハードウェアの構成図であり、図4Bは、クライアント端末のハードウェアの構成図である。
クライアント端末200は、プロセッサ300、主記憶装置310、二次記憶装置(例えば、ハードディスク装置)320及びネットワークインターフェース340を備え、これらのデバイスがシステムバス330によって接続された計算機である。
主記憶装置310は、例えば、半導体メモリであって、プロセッサ300によって実行されるプログラム(例えば、ブラウザプログラム210)を格納する。
ネットワークインターフェース340は、ネットワーク350に接続され、所定のプロトコルに従って、ネットワーク350に接続された装置(例えば、アプリケーション実行装置100)とデータを送受信する。
アプリケーション実行装置100は、プロセッサ360、ネットワークインターフェース370、主記憶装置390及び二次記憶装置(例えば、ハードディスク装置)400を備え、これらのデバイスがシステムバス380によって接続された計算機である。
ネットワークインターフェース370は、ネットワーク350に接続され、所定のプロトコルに従って、ネットワーク350に接続された装置(例えば、クライアント端末200)とデータを送受信する。
主記憶装置390は、例えば、半導体メモリであって、プロセッサ360によって実行される各種プログラム、具体的には、アプリケーション110、すなわち、処理モジュール格納部140に含まれる処理モジュール、及び、アプリケーション実行処理部120及びアプリケーション運用処理部130を機能させるためのプログラムを格納する。
二次記憶装置400は、例えば、ハードディスク装置等の大容量の記憶装置であり、セッション情報150及びアプリケーション情報160を格納する。
図5Aから図5Cは、第1の実施形態におけるアプリケーション実行情報160の構成の一例を示す図であり、図5Aは最新バージョン情報161を、図5Bは処理モジュール情報162を、図5Cは作業グループ定義163を示す。
図5Aに示すように、最新バージョン情報161は、処理モジュール格納部140に格納されている処理モジュールの中で、最新のバージョンを表す最新バージョン411を含む。
図5Bに示すように、処理モジュール情報162は、処理モジュールバージョン421、作業グループ422、処理名423及び処理モジュール名424を含む。処理モジュールバージョン421は、処理モジュールのバージョンである。作業グループ422は、作業グループの名称である。処理名423は、各作業グループに含まれる処理の名称である。処理モジュール名424は、処理モジュール呼出部123がモジュールを呼び出すために利用される処理モジュールの名称である。
図5Cに示すように、作業グループ定義163は、処理名401及び作業グループ402を含む。処理名401は、各作業グループに含まれる処理の名称であり、処理モジュール情報162の処理名423と共通の名称が使用される。作業グループ402は、処理の纏まりであるグループの名称であり、処理モジュール情報162の作業グループ422と共通の名称が使用される。
図6A及び図6Bは、第1の実施形態におけるセッション情報150の構成の一例を示す図であり、図6Aは実行バージョン情報151を、図6Bは実行履歴152を示す。
図6Aに示すように、実行バージョン情報151は、現在実行中の各処理の処理モジュールのバージョンを表す実行バージョン501を含む。この実行バージョン501は、ユーザセッションの開始時に、最新バージョン情報161の最新バージョン411の値を取得し、取得したバージョンの値が格納される。
図6Bに示すように、実行履歴152は、処理名511、作業グループ512及び実行状態513を含む。処理名511は、各作業グループに含まれる処理の名称であり、処理モジュール情報162の処理名423と共通の名称が使用される。作業グループ512は、処理の纏まりであるグループの名称であり、処理モジュール情報162の作業グループ422と共通の名称が使用される。実行状態513は、各処理が実行されたかを表し、「実行済み」、「未実行」のいずれかが格納される。
なお、第1の実施形態において、実行履歴152は、ログイン処理112においてクライアント端末200とのセッションが確立した際に初期化される。なお、セッションの終了時に実行履歴152を初期化してもよい。
次に、アプリケーション実行装置100によって実行される処理について説明する。
アプリケーション実行処理部120を構成する実行処理割込部121、AP更新判断部122及び処理モジュール呼出部123は、クライアント端末200のブラウザ210からの要求をアプリケーション110で処理する際に、実行される。アプリケーション実行処理部120を構成する各処理部は、アプリケーションの各処理毎に、実行処理割込部121、AP更新判断部122、処理モジュール呼出部123の順に実行される。
アプリケーション運用部130の処理モジュール情報更新部132は、新しく処理モジュールが処理モジュール格納部140に格納された際に、処理モジュール情報162を更新する。
図7は、第1の実施形態における処理モジュール情報更新部132によって実行される処理を示すフローチャートである。
まず、運用者が処理モジュール配備ツール133を使用して、新しい処理モジュールを処理モジュール格納部140に格納する。その後、処理モジュール配備ツール133は、処理モジュール情報更新部132を呼び出し、処理モジュール情報更新処理600が実行される。
処理モジュール情報更新部132は、最新バージョン情報161の最新バージョン411に格納されている値を1だけインクリメントした値に更新し、変数Vに設定する(ステップ601)。
ここで、新たに配備された処理モジュールに含まれる全ての処理(S)について、ステップ603から604の手順を繰り返す(ステップ602)。
処理名410の値が処理Sと同じデータを作業グループ定義163から検索し、検索されたデータの作業グループ402を取得し、変数Gに設定する(ステップ603)。
そして、処理モジュール情報162に以下の項目を含むデータを追加する(ステップ604)。
処理モジュールバージョン421=V
作業グループ422 =G
処理名423 =S
処理モジュール名424 =S+「モジュール」+V
その後、全ての処理Sについて、ステップ603から604の手順が終了したら、ループを終了する(ステップ605)。
図8は、第1の実施形態における実行処理割込部121によって実行される処理の手順を示すフローチャートである。
まず、実行処理割込部121は、現在実行中のアプリケーションの処理に割り込み、実行中の処理の名称を取得し、変数exeに設定する(ステップ701)。例えば、Java(Javaは登録商標、以下同じ)では、実行処理の割り込みは、クラスファイルの変換(バイトコードの操作)や、Java Virtual Machine上での処理のトラップなどによって実現することができる。
その後、取得した実行中の処理の名称(exe)をAP更新判断部122のパラメータに設定し(ステップ702)、AP更新判断部122を呼び出す。これによって、AP更新判断処理800(図9)が開始する。
図9は、第1の実施形態におけるAP更新判断部122によって実行される処理の手順を示すフローチャートである。
AP更新判断処理800には、引数として実行中処理名exeが入力される。
まず、AP更新判断部122は、最新バージョン情報161の最新バージョン411と、実行バージョン情報151の実行バージョン501とが一致するか否かを判定する(ステップ801)。その結果、両者が一致した場合、実行中処理名exeを引数として、処理モジュール呼出処理900を呼び出す。
一方、両者が一致しない場合、処理名401の値が実行中処理名exeと同じデータを作業グループ定義163から検索し、検索されたデータの作業グループ402の値を取得し、取得した作業グループ402の値をGに設定する(ステップ802)。
その後、作業グループ512の値が作業グループGと同じで、かつ、実行状態513が「実行済み」である処理名511を実行履歴152から抽出し、リストL1を取得する(ステップ803)。
そして、処理モジュール情報162の処理モジュールバージョン421と比較されるバージョンVの初期値として、最新バージョン情報161の最新バージョン411を設定する(ステップ804)。
作業グループ422の値が作業グループGと同じで、かつ、処理モジュールバージョン421の値がバージョンVと同じである処理名423を処理モジュール情報162から抽出し、リストL2を取得する(ステップ805)。
その後、バージョンVが実行バージョン情報151の実行バージョン501より大きく、バージョンVが最新バージョン情報161の最新バージョン411以下であり、かつ、リストL1とリストL2との中に同じ処理名が存在するか否かを判定する(ステップ806)。リストL1に含まれる実行済の処理と、リストL2に含まれるバージョンVの処理と同じ処理があるか、すなわち、変更されるべき処理が実行済であるかを判定する。
この条件が成立しない場合、Vを1だけデクリメントして(ステップ807)、ステップ805へ戻る。
一方、ステップ806の条件が成立する場合、実行バージョン情報151の実行バージョン501の値をVに更新し(ステップ808)、処理モジュール呼出部123を呼び出す。これによって、処理モジュール呼出処理900(図10)が開始する。
図10は、第1の実施形態における処理モジュール呼出部123によって実行される処理の手順を示すフローチャートである。
処理モジュール呼出処理900には、引数として実行中処理名exeが入力される。
まず、実行バージョン情報151の実行バージョン501の値を取得し、変数Vに設定する(ステップ901)。
次に、処理モジュールバージョン421の値がバージョンVと同じで、かつ、処理名423の値が実行中処理名exeと同じデータ(行L)を処理モジュール情報162から検索し(ステップ902)、行Lが存在するか否かを判定する(ステップ903)。
行Lが存在しない場合、バージョンVを1だけデクリメントし(ステップ904)、ステップ902へ戻る。一方、行Lが存在する場合、行Lの処理モジュール名424のモジュールを呼び出す(ステップ905)。
図11Aから図11Cは、第1の実施形態におけるアプリケーション変更のタイミングの例を説明する図ある。
図11A及び図11Cは、AP変更指示1001及び1002のタイミングが異なることによって、アプリケーション変更のタイミングが異なる例を示し、図11Bは図11Aに示す場合における、実行履歴152を示す。
AP変更指示1001及び1002は、新たなモジュールが処理モジュール格納部140に配備され、処理モジュール更新部132が最新バージョン情報161及び処理モジュール情報162を更新したタイミングである。また、図11A及び図11Cにおいて、時間軸1004、1005に従って、実行バージョン501に規定されるバージョンの処理が実行される。
図11Aに示すように、申込内容確認画面表示処理174とチェックボックス入力確認処理175との間で、AP変更指示1001がされた場合、実行履歴152は、図11Bに示すように、選択内容確認画面表示処理171から申込内容確認画面表示処理174までの実行状態513が「実行済み」となっている。このため、AP更新判断部122は、実行履歴152中で実行状態513が「実行済み」である処理名511と、処理モジュール情報162の処理名423とを比較し(図9のステップ803~806)、リストL1及びL2に「申込内容確認画面表示」処理が存在するので、チェックボックス入力確認処理175以後の実行バージョン1006は1のまま変更されない。
すなわち、図11Aに示す場合は、実行バージョン501の値より大きい予約処理モジュールバージョン2(180)での変更箇所である申込内容確認画面表示184が実行済みなので、処理の整合性を保つために、変更した処理モジュールが実行されない。
一方、図11Cに示すように、料金計算処理173と申込内容確認画面表示処理174との間で、AP変更指示1002がされた場合、実行履歴152は、図6Bに示すように、選択内容確認画面表示処理171から料金計算処理173までの実行状態513が「実行済み」となっており、申込内容確認画面表示処理174以後の実行状態513が「未実行」となっている。このため、AP更新判断部122は、実行履歴153中で実行状態513が「実行済み」である処理名511と、処理モジュール情報162の処理名423とを比較し(図9のステップ803~806)、リストL2には「申込内容確認画面表示」処理が存在するが、リストL1には「申込内容確認画面表示」処理が存在しないので、申込内容確認画面表示処理174以後の実行バージョン1006は2に変更される。
すなわち、図11Cに示す場合は、実行バージョン501の値より大きい予約処理モジュールバージョン2(180)での変更箇所である申込内容確認画面表示184が実行済みではないので、このタイミングで処理モジュールのバージョンを上げても処理の整合性を保つことができるので、すぐに変更した処理モジュールが実行される。
以上説明したように、第1の実施形態によれば、クライアント端末200のブラウザ210からの要求をアプリケーション110で処理する際に、実行処理割込部121、AP更新判断部122及び処理モジュール呼出部123によって、ユーザのセッション毎に処理モジュールを、そのバージョンを区別して呼び出すことができる。
また、最新バージョン情報161及び処理モジュール情報162の更新のタイミングに応じて、アプリケーションを変更することができる。すなわち、実行履歴152と処理モジュール情報162とを比較した結果によって、現在実行中の処理で実行バージョン501の値を最新バージョン411の値へ上げてよいかを判定し、アプリケーションの変更可否を判断することができる。
そのため、予め決められたタイミングによらず、アプリケーションの処理が実行中であっても処理の不整合なく、かつ迅速にアプリケーションを変更することができる。
<実施形態2>
次に、第2の実施形態について説明する。
本発明の第2の実施形態では、アプリケーションのソースコードを解析することによって、作業グループ中の処理が開始処理か又は終了処理かを判定し、いずれか又は両方の処理のタイミングで、実行履歴を初期化する。これによって、アプリケーションの処理が実行中であっても処理間で不整合なくアプリケーションを変更することができ、さらに、アプリケーションが一度変更箇所の処理を実行した後でも、アプリケーションを変更することができる。
図12は、第2の実施形態における計算機システムの全体の構成図である。
第2の実施形態の計算機システムは、アプリケーション実行装置100及びクライアント端末200を備え、アプリケーション実行装置100とクライアント端末200とは、ネットワーク350によって接続される。なお、前述した第1の実施の形態と同じ構成には同じ符号を付し、その説明は省略する。
第2の実施形態のアプリケーション実行装置100は、前述した第1の実施の形態と同じ構成の他、アプリケーション解析部1100を備える。アプリケーション解析部1100は、インストールされたプログラムをプロセッサが実行することによって機能する。
アプリケーション解析部1100は、アプリケーション110のソースコードを解析し、作業グループの中で、どの処理が開始処理か又は終了処理かを判定するためのアプリケーション解析を行う。この解析の結果は、作業グループ定義263(図13)の処理順番1201に記録される。
このため、作業グループ定義263の構成、及び、AP更新判断部222による処理が、前述した第1の実施の形態と異なる。
図13は、第2の実施形態における作業グループ定義263の構成の一例を示す図である。
作業グループ定義263は、処理名401、作業グループ402及び処理順番1201を含む。処理名401及び作業グループ402は、前述した第1の実施形態の作業グループ定義163(図5C)と同じである。処理順番1201は、各処理が開始処理であるか、終了処理であるかを示す情報である。
図14は、第2の実施形態におけるAP更新判断部222によって実行される処理の手順を示すフローチャートである。
第2の実施形態のAP更新判断処理1400は、第1の実施形態のAP更新判断処理800(図9)に、ステップ1411及び1412が新たに追加されている。第2の実施形態のAP更新判断処理1400のステップ801から808は、第1の実施形態のAP更新判断処理800のステップ801から808と同じであるため、それらの説明は省略する。
ステップ1411及び1412では、実行履歴の初期化処理1401を実行する。このとき、文字列(「開始」又は「終了」)、及び、実行中処理名exeが引数として指定される。この引数となる文字列は、ステップ1411では「開始」が、ステップ1412では「終了」が入力される。実行履歴の初期化処理1401の詳細については、図15を用いて後述する。
なお、図14に示すAP更新判断処理1400では、処理の開始時(ステップ1411)及び処理の終了時(ステップ1412)に実行履歴を初期化したが、開始時又は終了時のいずれか一方で実行履歴を初期化すればよい。
図15は、第2の実施形態における実行履歴の初期化処理1401の手順を示すフローチャートである。
実行履歴の初期化処理1401には、引数として文字列Str及び実行中処理名exeが入力される。
まず、処理名401の値が実行中処理名exeと同じデータを作業グループ定義263から検索し、検索されたデータの処理順番1201及び作業グループ402の値を取得し、取得した作業グループ402の値をGに設定する(ステップ1402)。
次に、ステップ1402で取得した処理順番1201と文字列Strとが一致するか否かを判定する(ステップ1403)。その結果、両者が一致しない場合、実行履歴を初期化するタイミングではないので、この処理1401を終了する。
一方、両者が一致した場合、作業グループの開始又は終了のタイミングであり、当該作業グループの実行履歴を初期化するタイミングである。このため、作業グループ512の値が作業グループGと同じであるデータについて、ステップ1405の手順を繰り返す(ステップ1404)。
ステップ1405では、実行履歴152の実行状態513の値を「未実行」に設定する(ステップ1405)。
その後、全ての処理について、ステップ1405の手順が終了したら、ループを終了する(ステップ1406)。
以上説明したように、第2の実施形態によれば、アプリケーション解析部1100が、作業グループ定義163に処理順番1201を追加する。AP更新判断部222は、この処理順番1201を用いて、実行履歴の初期化処理を実行する。実行履歴を初期化することによって、アプリケーション変更後の処理をユーザが一度実行した後に、再度ログインすることなく、その作業グループの処理を再び実行する場合、再度アプリケーションを変更することができる。
また、本発明の第1の実施形態と同様に、予め決められたタイミングによらず、アプリケーションの処理が実行中であっても処理の不整合なく、かつ迅速にアプリケーションを変更することができる。
<実施形態3>
次に、第3の実施形態について説明する。
本発明の第3の実施形態では、アプリケーション実行装置100にアクセスしたユーザの組織を識別することによって、組織毎にアプリケーションの変更可否を判定し、処理モジュールを呼び出す。これによって、アプリケーションの処理が実行中であっても処理の不整合なくアプリケーションを変更でき、さらに、組織毎にアプリケーションを変更できる。
なお、ユーザの組織の他、任意の属性情報(例えば、役職)について、第3の実施形態を適用することができる。
図16は、第3の実施形態における計算機システムの全体の構成図である。
第3の実施形態の計算機システムは、アプリケーション実行装置100及びクライアント端末200を備え、アプリケーション実行装置100とクライアント端末200とは、ネットワーク350によって接続される。なお、前述した第1の実施の形態と同じ構成には同じ符号を付し、その説明は省略する。
第3の実施形態のアプリケーション実行装置100は、前述した第1の実施の形態と同じ構成の他、組織識別処理部1500を備える。組織識別処理部1500は、インストールされたプログラムをプロセッサが実行することによって機能する。
組織識別処理部1500は、クライアント端末200のブラウザ210からアクセスしてきたユーザの組織情報を識別する。なお、アプリケーション実行装置100は、ユーザの識別子と組織情報とを対応付けるデータを管理している。そして、識別された組織情報毎に実行バージョン情報351が記録される(図19参照)。
また、最新バージョン情報361には、組織名1701毎に最新バージョン411が格納され(図18A参照)、処理モジュール情報362には、組織名1711毎に処理の情報421~424が格納される(図18B参照)。
このため、AP更新判断部322による処理が、前述した第1の実施の形態と異なる。
図17は、第3の実施形態における処理モジュール格納部140に格納される各処理モジュールの構成図である。
各処理モジュールは組織毎、及び作業グループ毎に区分され、さらに処理モジュールのバージョン毎に設けられる。また、ある組織の、ある作業グループに対応する処理モジュールのバージョンが上がった場合、その作業グループ中で変更(バージョンアップ)された処理だけが、次のバージョンの処理モジュールに含まれる。
例えば、図17に示す組織A用予約処理モジュールバージョン1(1600)は、作業グループに含まれる処理に対応して、選択内容確認画面表示処理1601、顧客情報入力画面表示処理1602、料金計算処理1603、申込内容確認画面表示処理1604、チェックボックス入力確認処理1605及び予約完了画面表示処理1606を含む。バージョンが上がった組織A用予約処理モジュールバージョン2(1610)は、処理内容に変更があった申込内容確認画面表示処理1614及びチェックボックス入力確認処理1612を含む。また、組織B用予約処理モジュールバージョン1(1620)は、作業グループに含まれる処理に対応して、選択内容確認画面表示処理1621、顧客情報入力画面表示処理1622、料金計算処理1623、申込内容確認画面表示処理1624、チェックボックス入力確認処理1625及び予約完了画面表示処理1626を含む。組織B用予約処理モジュールバージョン1(1620)は、組織A用予約処理モジュールバージョン1(1600)と同じ構成になっているが、各処理の内容は同じでも、異なってもよい。
なお、組織A用予約処理モジュールバージョン1(1600)及び組織B用予約処理モジュールバージョン1(1620)は、処理モジュールバージョン1(141)に含まれ、組織A用予約処理モジュールバージョン2(1610)は、処理モジュールバージョン2(142)に含まれる。
図18Aは、第3の実施形態における最新バージョン情報361の構成の一例を示す図である。
最新バージョン情報361は、組織名1701及び最新バージョン411を含む。組織名1701は、ユーザが属する組織を表す。最新バージョン411は、処理モジュール格納部140に格納されている処理モジュールの中で、組織毎の最新のバージョンを表す。
図18Bは、第3の実施形態における処理モジュール情報362の構成の一例を示す図である。
処理モジュール情報362は、組織名1711、処理モジュールバージョン421、作業グループ422、処理名423及び処理モジュール名424を含む。組織名1701は、ユーザが属する組織を表す。処理モジュールバージョン421、作業グループ422、処理名423及び処理モジュール名424は、各々、組織毎の情報を表す。すなわち、第3の実施形態の処理モジュール情報362は、組織、作業グループ及び処理モジュールバージョン毎に呼び出される処理モジュールを表す。
図19は、第3の実施形態における実行バージョン情報351の一例を示す図である。
実行バージョン情報351は、組織名1801及び実行バージョン501を含む。組織名1801は、アクセスしているユーザが属する組織を表す。実行バージョン501は、現在実行中の各処理の処理モジュールの組織毎のバージョンを表す。
図20は、第3の実施形態における処理モジュール情報更新部132によって実行される処理の手順を示すフローチャートである。
第3の実施形態の処理モジュール情報更新処理1900は、第1の実施形態の処理モジュール情報更新処理600(図7)に、ステップ1901が追加され、ステップ601の代わりにステップ1902が、ステップ604の代わりにステップ1903が実行される。第3の実施形態の処理モジュール情報更新処理1900のステップ602、603、605は、第1の実施形態の処理モジュール情報更新処理600のステップ602、603、605と同様であるため、それらの説明は省略する。
まず、運用者が処理モジュール配備ツール133を使用して、新しい処理モジュールを処理モジュール格納部140に格納する。このとき、処理モジュール配備ツール133には、新たに配備された処理モジュールが対応する組織の情報Orgが入力される。その後、処理モジュール配備ツール133は、処理モジュール情報更新部132を呼び出し、処理モジュール情報更新処理1900が実行される。
まず、入力された組織情報Orgを処理モジュール配備ツール133から取得する(ステップ1901)。
組織名1701の値が組織情報Orgと同じデータを最新バージョン情報361から検索し、検索されたデータの最新バージョン411の値を1だけインクリメントした値に更新し、変数Vに設定する(ステップ1902)。
その後、ステップ602によって、新たに配備された処理モジュールに含まれる全ての処理(S)についてループが開始し(ステップ602)。ステップ603の手順が実行される。
そして、処理モジュール情報362に以下の項目を含むデータを追加する(ステップ1903)。
組織名1711 =Org
処理モジュールバージョン421=V
作業グループ422 =G
処理名423 =S
処理モジュール名424 =「組織」+Org+「用」+S+「モジュール」+V
その後、全ての処理Sについて、ステップ603及び1903の手順が終了したら、ループを終了する(ステップ605)。
図21は、第3の実施形態におけるAP更新判断部322によって実行される処理の手順を示すフローチャートである。
第3の実施形態のAP更新判断処理2000は、第1の実施形態のAP更新判断処理800(図9)に、ステップ2001が追加され、ステップ805の代わりにステップ2002が実行される。第3の実施形態のAP更新判断処理2000のステップ801~804及び806~808は、第1の実施形態のAP更新判断処理800のステップ801~804及び806~808と同様であるため、それらの説明は省略する。
AP更新判断処理2000には、引数として実行中処理名exeが入力される。
まず、実行バージョン情報351から、組織名1801の値及び実行バージョン501の値を取得し、取得した組織名1801の値をOrgに設定する。また、組織名1701の値が組織名Orgと同じデータの最新バージョン411の値を取得する(ステップ2001)。
その後、ステップ801から804の手順が実行される。
その後、組織名1711の値が組織名Orgと同じで、作業グループ422の値が作業グループGと同じで、かつ、処理モジュールバージョン421の値がバージョンVと同じである処理名423を処理モジュール情報162から抽出し、リストL2を取得する(ステップ2002)。
その後、ステップ806から807の手順が実行され、ステップ806の条件が成立する場合、実行バージョン情報351の実行バージョン501の値をVに更新し(ステップ808)、処理モジュール呼出部123を呼び出す。
図22は、第3の実施形態における処理モジュール呼出部123によって実行される処理の手順を示すフローチャートである。
第3の実施形態の処理モジュール呼出処理2100は、第1の実施形態の処理モジュール呼出処理900(図10)において、ステップ901、902の代わりにステップ2101、2102が実行される。第3の実施形態の処理モジュール呼出処理2100のステップ903~905は、第1の実施形態の処理モジュール呼出処理900のステップ903~905と同様であるため、それらの説明は省略する。
まず、実行バージョン情報351の組織名1801の値及び実行バージョン501の値を取得し、取得した組織名の値を変数Orgに設定し、取得した実行バージョンの値を変数Vに設定する(ステップ2101)。
次に、組織名1711が組織名Orgと同じで、処理モジュールバージョン421の値がバージョンVと同じで、かつ、処理名423の値が実行中処理名exeと同じデータ(行L)を処理モジュール情報362から検索する(ステップ2102)。
その後、行Lが存在するか否かを判定する(ステップ903)。行Lが存在しない場合、バージョンVを1だけデクリメントし(ステップ904)、ステップ2102へ戻る。一方、行Lが存在する場合、行Lの処理モジュール名424のモジュールを呼び出す(ステップ905)。
以上説明したように、第3の実施形態によれば、組織識別処理部1500が実行バージョン情報151に組織名を追加する。処理モジュール呼出部123がアプリケーションの処理を実行する。組織情報を識別することによって、一つのアプリケーション実行装置を複数の組織のユーザで共用することができ、組織毎にアプリケーションの変更のタイミングを変えたり、アプリケーションによる処理の内容を変えたりすることができる。
また、本発明の第1の実施形態と同様に、予め決められたタイミングによらず、アプリケーションの処理が実行中であっても処理の不整合なく、かつ迅速にアプリケーションを変更することができる。
Claims (15)
- 1又は複数の処理モジュールによって構成されるアプリケーションプログラムを実行する計算機におけるプログラム実行方法であって、
前記処理モジュールは、1又は複数の処理を含み、かつ前記処理モジュールは識別番号で管理されており、
前記計算機は、実行する処理モジュールの変更のタイミングを判断するAP更新判断部と、処理モジュールを呼び出す処理モジュール呼出部と、を備え、
前記方法は、
前記AP更新判断部が、実行中の処理モジュールの識別番号と配備された処理モジュールの識別番号とを比較することによって、実行する処理モジュールの変更が必要かを判断する手順と、
前記AP更新判断部が、前記処理モジュールに含まれる各処理が実行済かを示す履歴情報と、実行中の処理モジュールと配備された処理モジュールとの間で異なる処理を示す情報とに基づいて、実行する処理モジュールの識別番号を決定する手順と、
前記処理モジュール呼出部が、前記AP更新判断部によって決定された処理モジュールの識別番号を指定して、処理モジュールを呼び出す手順と、を含むことを特徴とするプログラム実行方法。 - 請求項1に記載のプログラム実行方法であって、
前記識別番号を決定する手順では、
前記処理モジュールに含まれる各処理が実行済かを示す第1のリストを取得し、
各識別番号の処理モジュールに含まれる変更された処理を示す第2のリストを取得し、
前記第1のリストと前記第2のリストとを比較して、実行済の処理と変更が必要な処理とが重複するか否かを判定し、
実行済の処理と変更が必要な処理とが重複しない最新の識別番号に、実行する処理モジュールの識別番号を決定することを特徴とするプログラム実行方法。 - 請求項2に記載のプログラム実行方法であって、
前記処理は、1又は複数の作業グループにグループ化されており、
前記識別番号を決定する手順では、
前記作業グループに含まれる処理の中で、前記第1のリストと前記第2のリストとを比較して、実行済の処理と変更が必要な処理とが重複するか否かを判定し、
前記作業グループ内で、実行済の処理と変更が必要な処理とが重複しない最新の識別番号に、実行する処理モジュールの識別番号を決定することを特徴とするプログラム実行方法。 - 請求項3に記載のプログラム実行方法であって、
前記計算機は、前記アプリケーションプログラムを解析し、前記処理モジュールの開始処理及び終了処理の少なくとも一方を識別するアプリケーション解析部を備え、
前記方法は、実行される処理が開始処理又は終了処理である場合、前記履歴情報を初期化する手順を含むことを特徴とするプログラム実行方法。 - 請求項1に記載のプログラム実行方法であって、
前記計算機は、前記計算機にアクセスしたユーザの組織情報を識別する組織識別処理部を備え、
前記識別番号を決定する手順では、前記識別された組織情報を参照して、組織毎に、処理モジュールの識別番号を決定することを特徴とするプログラム実行方法。 - 1又は複数の処理モジュールによって構成されるアプリケーションプログラムを実行する計算機を備える計算機システムであって、かつ前記処理モジュールは識別番号で管理されており、
前記処理モジュールは、1又は複数の処理を含み、
前記計算機は、実行する処理モジュールの変更のタイミングを判断するAP更新判断部と、処理モジュールを呼び出す処理モジュール呼出部と、を備え、
前記AP更新判断部は、
実行中の処理モジュールの識別番号と配備された処理モジュールの識別番号とを比較することによって、実行する処理モジュールの変更が必要かを判断し、
前記アプリケーションプログラムに含まれる各処理が実行済かを示す履歴情報と、実行中の処理モジュールと配備された処理モジュールとの間で異なる処理を示す情報とに基づいて、実行する処理モジュールの識別番号を決定し、
前記処理モジュール呼出部は、前記AP更新判断部によって決定された処理モジュールの識別番号を指定して、処理モジュールを呼び出すことを特徴とする計算機システム。 - 請求項6に記載の計算機システムであって、
前記AP更新判断部は、
前記処理モジュールに含まれる各処理が実行済かを示す第1のリストを取得し、
各識別番号の処理モジュールに含まれる変更された処理を示す第2のリストを取得し、
前記第1のリストと前記第2のリストとを比較して、実行済の処理と変更が必要な処理とが重複するか否かを判定し、
実行済の処理と変更が必要な処理とが重複しない最新の識別番号に、実行する処理モジュールの識別番号を決定することを特徴とする計算機システム。 - 請求項7に記載の計算機システムであって、
前記処理は、1又は複数の作業グループにグループ化されており、
前記AP更新判断部は、
前記作業グループに含まれる処理の中で、前記第1のリストと前記第2のリストとを比較して、実行済の処理と変更が必要な処理とが重複するか否かを判定し、
前記作業グループ内で、実行済の処理と変更が必要な処理とが重複しない最新の識別番号に、実行する処理モジュールの識別番号を決定することを特徴とする計算機システム。 - 請求項8に記載の計算機システムであって、
前記計算機は、前記アプリケーションプログラムを解析し、前記処理モジュールの開始処理及び終了処理の少なくとも一方を識別するアプリケーション解析部を備え、
前記AP更新判断部は、実行される処理が開始処理又は終了処理である場合、前記履歴情報を初期化することを特徴とする計算機システム。 - 請求項6に記載の計算機システムであって、
前記計算機は、前記計算機にアクセスしたユーザの組織情報を識別する組織識別処理部を備え、
前記AP更新判断部は、前記識別された組織情報を参照して、組織毎に、実行する処理モジュールの識別番号を決定することを特徴とする計算機システム。 - 1又は複数の処理モジュールによって構成されるアプリケーションプログラムを実行する計算機におけるプログラムの実行を制御するプログラムであって、
前記処理モジュールは、1又は複数の処理を含み、かつ前記処理モジュールは識別番号で管理されており、
前記計算機は、実行する処理モジュールの変更のタイミングを判断するAP更新判断部と、処理モジュールを識別して呼び出す処理モジュール呼出部と、を備え、
前記プログラムは、
前記AP更新判断部が、実行中の処理モジュールの識別番号と配備された処理モジュールの識別番号とを比較することによって、実行する処理モジュールの変更が必要かを判断する手順と、
前記AP更新判断部が、前記処理モジュールに含まれる各処理が実行済かを示す履歴情報と、実行中の処理モジュールと配備された処理モジュールとの間で異なる処理を示す情報とに基づいて、実行する処理モジュールの識別番号を決定する手順と、
前記処理モジュール呼出部が、前記AP更新判断部によって決定された処理モジュールの識別番号を指定して、処理モジュールを呼び出す手順と、を前記計算機に実行させることを特徴とするプログラム。 - 請求項11に記載のプログラムであって、
前記識別番号を決定する手順では、
前記処理モジュールに含まれる各処理が実行済かを示す第1のリストを取得する手順と
各識別番号の処理モジュールに含まれる変更された処理を示す第2のリストを取得する手順と、
前記第1のリストと前記第2のリストとを比較して、実行済の処理と変更が必要な処理とが重複するか否かを判定する手順と、
実行済の処理と変更が必要な処理とが重複しない最新の識別番号に、実行する処理モジュールの識別番号を決定する手順と、を前記計算機に実行させることを特徴とするプログラム。 - 請求項12に記載のプログラムであって、
前記処理は、1又は複数の作業グループにグループ化されており、
前記識別番号を決定する手順では、
前記作業グループに含まれる処理の中で、前記第1のリストと前記第2のリストとを比較して、実行済の処理と変更が必要な処理とが重複するか否かを判定する手順と、
前記作業グループ内で、実行済の処理と変更が必要な処理とが重複しない最新の識別番号に、実行する処理モジュールの識別番号を決定する手順と、を前記計算機に実行させることを特徴とするプログラム。 - 請求項13に記載のプログラムであって、
前記計算機は、前記アプリケーションプログラムを解析し、前記処理モジュールの開始処理及び終了処理の少なくとも一方を識別するアプリケーション解析部を備え、
前記プログラムは、実行される処理が開始処理又は終了処理である場合、前記履歴情報を初期化する手順を前記計算機に実行させることを特徴とするプログラム。 - 請求項11に記載のプログラムであって、
前記計算機は、前記計算機にアクセスしたユーザの組織情報を識別する組織識別処理部を備え、
前記プログラムは、前記識別番号を決定する手順では、前記識別された組織情報を参照して、組織毎に、実行する処理モジュールの識別番号を決定する手順を前記計算機に実行させることを特徴とするプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/390,070 US20120185839A1 (en) | 2010-03-25 | 2010-03-25 | Program execution method, computer system, and program execution control program |
PCT/JP2010/055985 WO2011118048A1 (ja) | 2010-03-25 | 2010-03-25 | プログラム実行方法、計算機システム及びプログラム実行制御プログラム |
JP2012506755A JPWO2011118048A1 (ja) | 2010-03-25 | 2010-03-25 | プログラム実行方法、計算機システム及びプログラム実行制御プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/055985 WO2011118048A1 (ja) | 2010-03-25 | 2010-03-25 | プログラム実行方法、計算機システム及びプログラム実行制御プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2011118048A1 true WO2011118048A1 (ja) | 2011-09-29 |
Family
ID=44672637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2010/055985 WO2011118048A1 (ja) | 2010-03-25 | 2010-03-25 | プログラム実行方法、計算機システム及びプログラム実行制御プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20120185839A1 (ja) |
JP (1) | JPWO2011118048A1 (ja) |
WO (1) | WO2011118048A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020013305A (ja) * | 2018-07-18 | 2020-01-23 | 株式会社東芝 | サーバ装置、方法及びプログラム |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9792197B2 (en) * | 2013-08-01 | 2017-10-17 | Shinichi Ishida | Apparatus and program |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05307478A (ja) * | 1992-04-30 | 1993-11-19 | Nippon Telegr & Teleph Corp <Ntt> | データベース管理システムの構成法 |
JPH0683598A (ja) * | 1992-09-03 | 1994-03-25 | Hitachi Ltd | ジョブフロー仕様書自動作成方法 |
JP2003202990A (ja) * | 2002-01-08 | 2003-07-18 | Hitachi Information Systems Ltd | プログラム管理起動システムとプログラム管理起動方法およびプログラムと記録媒体 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6112300A (en) * | 1998-06-03 | 2000-08-29 | International Business Machines Corporation | Method and apparatus for performing multi-way branching using a hardware relational table |
-
2010
- 2010-03-25 JP JP2012506755A patent/JPWO2011118048A1/ja active Pending
- 2010-03-25 US US13/390,070 patent/US20120185839A1/en not_active Abandoned
- 2010-03-25 WO PCT/JP2010/055985 patent/WO2011118048A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05307478A (ja) * | 1992-04-30 | 1993-11-19 | Nippon Telegr & Teleph Corp <Ntt> | データベース管理システムの構成法 |
JPH0683598A (ja) * | 1992-09-03 | 1994-03-25 | Hitachi Ltd | ジョブフロー仕様書自動作成方法 |
JP2003202990A (ja) * | 2002-01-08 | 2003-07-18 | Hitachi Information Systems Ltd | プログラム管理起動システムとプログラム管理起動方法およびプログラムと記録媒体 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020013305A (ja) * | 2018-07-18 | 2020-01-23 | 株式会社東芝 | サーバ装置、方法及びプログラム |
JP7005447B2 (ja) | 2018-07-18 | 2022-01-21 | 株式会社東芝 | サーバ装置、方法及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
JPWO2011118048A1 (ja) | 2013-07-04 |
US20120185839A1 (en) | 2012-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8438559B2 (en) | Method and system for platform-agnostic software installation | |
US8332845B2 (en) | Compile timing based on execution frequency of a procedure | |
US8370802B2 (en) | Specifying an order for changing an operational state of software application components | |
JP4974749B2 (ja) | 情報処理装置、配信方法、その方法を実行する制御プログラム | |
US8225292B2 (en) | Method and system for validating a knowledge package | |
US20050195390A1 (en) | Method of testing open services gateway initiative service platform and test tool using the method | |
AU2011200588B2 (en) | Multiple simultaneous session support by a remote technician | |
US20040268345A1 (en) | Software image creation in a distributed build environment | |
CN110149409B (zh) | 云主机元数据服务管理方法、***、设备及存储介质 | |
US20070240150A1 (en) | Simplifying installation of a suite of software products | |
US20080244589A1 (en) | Task manager | |
KR20060051932A (ko) | 소프트웨어를 실행 동안 업데이트하는 시스템, 방법 및컴퓨터-판독가능 매체 | |
KR20160136489A (ko) | 클라우드 서비스를 위한 가상화 기반 자원 관리 방법 | |
WO2003100612A2 (en) | Processing distribution using instant copy | |
US9678814B2 (en) | Implementing a java method | |
CN113835911B (zh) | 内网穿透代理方法、***、主机及计算机可读存储介质 | |
US10430232B2 (en) | Controllable workflow in software configuration automation | |
US20120096453A1 (en) | Software Package Management Mechanism | |
WO2011118048A1 (ja) | プログラム実行方法、計算機システム及びプログラム実行制御プログラム | |
US20080295103A1 (en) | Distributed processing method | |
US10073689B2 (en) | Managing application lifecycles within a federation of distributed software applications | |
US10740085B2 (en) | Webserver interface for deployment management tool | |
US20230224212A1 (en) | Automated Deployment of Control Nodes at Remote Locations | |
US9459914B2 (en) | Processing method for control apparatus involves controlling job subsequent to proceeding job based on execution result acquired by executing the proceeding job | |
US9027018B2 (en) | Display terminal, displaying method, and recording medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10848440 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2012506755 Country of ref document: JP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 13390070 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 10848440 Country of ref document: EP Kind code of ref document: A1 |