WO2012127635A1 - 情報処理装置、修正適用判定プログラムおよび修正適用判定方法 - Google Patents

情報処理装置、修正適用判定プログラムおよび修正適用判定方法 Download PDF

Info

Publication number
WO2012127635A1
WO2012127635A1 PCT/JP2011/056853 JP2011056853W WO2012127635A1 WO 2012127635 A1 WO2012127635 A1 WO 2012127635A1 JP 2011056853 W JP2011056853 W JP 2011056853W WO 2012127635 A1 WO2012127635 A1 WO 2012127635A1
Authority
WO
WIPO (PCT)
Prior art keywords
patch
data
program
correction
counter
Prior art date
Application number
PCT/JP2011/056853
Other languages
English (en)
French (fr)
Inventor
幸信 大村
徹也 新北
彰利 小澤
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to JP2013505705A priority Critical patent/JP5621914B2/ja
Priority to PCT/JP2011/056853 priority patent/WO2012127635A1/ja
Publication of WO2012127635A1 publication Critical patent/WO2012127635A1/ja
Priority to US14/032,573 priority patent/US20140019950A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Definitions

  • the present invention relates to an information processing apparatus and the like.
  • the conventional technology for applying a patch has a problem that it is difficult to determine whether to apply a patch.
  • a skill when extracting a patch to be applied, if a skill is high, a patch that is not excessive or insufficient can be extracted. However, if a skill is low, it may be impossible to determine whether to apply a patch. Even if the skill is high, it is difficult to extract a patch that is not excessive or insufficient in consideration of the combination of patches.
  • the number of times of running is counted regardless of which part of the program has been operated, so that it is necessary to apply a patch in its own system by this count. It is difficult to determine whether or not.
  • the disclosed technology aims to provide an information processing apparatus and the like that can appropriately determine whether or not to apply a patch.
  • the information processing apparatus disclosed in the present application includes a provisional correction program that incorporates a process for counting the number of times the correction part is executed when the correction part is executed when the program being operated is corrected.
  • a provisional correction program that incorporates a process for counting the number of times the correction part is executed when the correction part is executed when the program being operated is corrected.
  • FIG. 1 is a functional block diagram illustrating a configuration of a system that performs patch application determination according to the embodiment.
  • FIG. 2 is a diagram for explaining a specific example of patch creation by the patch creation unit.
  • FIG. 3 is a diagram illustrating an example of a data structure of the counter DB according to the embodiment.
  • FIG. 4 is a flowchart illustrating a procedure for creating a patch according to the embodiment.
  • FIG. 5 is a flowchart illustrating the procedure of patch release according to the embodiment.
  • FIG. 6 is a flowchart illustrating a procedure of patch application determination according to the embodiment.
  • FIG. 7 is a flowchart illustrating the procedure for creating the counter DB according to the embodiment.
  • FIG. 8 is a flowchart illustrating the procedure of the counter process according to the embodiment.
  • FIG. 9 is a flowchart illustrating a procedure of applying patch data according to the embodiment.
  • FIG. 10 is a diagram illustrating a specific example of the contents of patch data.
  • FIG. 11 is a diagram for explaining the state of the counter DB.
  • FIG. 12 is a diagram for explaining the state of the counter DB when there are two objects that are corrected for one patch ID.
  • FIG. 13 is a diagram illustrating a computer that executes a patch application determination program.
  • FIG. 1 is a functional block diagram illustrating a configuration of a system that performs patch application determination according to the embodiment.
  • the computer system 1 includes an information processing apparatus 10, a network 20, a patch release server 30, and a patch creation server 40.
  • the patch creation server 40 is a server that creates patches. That is, the patch creation server 40 creates patch data in which a failure location of the program is corrected when a failure occurs in any location of the program being operated. Further, the patch creation server 40 creates check data for determining whether or not to apply the patch data in the information processing apparatus 10 to be described later, which is the side to which the patch is applied.
  • the check data refers to data in which a counter process is incorporated at a patch data correction location. This counter process increases a count corresponding to a patch ID (identification) given as identification information of patch data when called.
  • the counter process increases the count corresponding to the patch ID of the patch data delivered as a parameter.
  • the count processing is, for example, partized in a library created in advance.
  • the patch creation server 40 includes a control unit 41 and a storage unit 42.
  • the control unit 41 includes a patch creation unit 411.
  • the storage unit 42 includes source data 421 before correction and source data 422 after correction.
  • the pre-correction source data 421 indicates a source file of an operating program.
  • the corrected source data 422 indicates a patch data source file in which a faulty part of the program is corrected, that is, a corrected program source file.
  • the patch creation unit 411 adds a corrected portion to the failure location of the pre-correction source data 421, and generates post-correction source data 422. Then, the patch creation unit 411 compiles the corrected source data 422, operates a patch creation tool that is a tool for creating patch-related data, and creates patch data.
  • the patch creation unit 411 compares the uncorrected source data 421 and the corrected source data 422, and searches for a corrected portion that becomes a difference. Then, the patch creation unit 411 adds a counter process to the corrected portion searched for in the source data 421 before correction. Then, the patch creation unit 411 compiles the source data to which the counter process has been added, further operates the patch creation tool, and creates check data.
  • FIG. 2 is a diagram for explaining a specific example of patch creation by the patch creation unit.
  • the source code aaa, bbb and ccc are described in the source data 421 before correction.
  • the patch creation unit 411 adds a correction code between bbb and ccc, which is a failure portion of the uncorrected source data 421, and generates corrected source data 422 (s1).
  • the patch creation unit 411 compiles the created modified source data 422, further operates the patch creation tool, and creates patch data (s2). For example, “123456” is written as the patch ID in the patch data.
  • the patch creation unit 411 compares the pre-correction source data 421 and the post-correction source data 422 (s3), and searches for a correction location that is a difference.
  • the patch creation unit 411 sets a correction portion between bbb and ccc as a result of the search.
  • the patch creation unit 411 adds a counter process to the correction part of the source data 421 before correction (s4).
  • the patch creation unit 411 describes the patch ID of the patch data as a parameter for counter processing.
  • the patch creation unit 411 compiles the source data obtained by adding the counter process to the uncorrected source data 421, further operates the patch creation tool, and creates check data (s5).
  • the patch creation unit 411 registers the created patch data and check data in the patch release server 30.
  • the patch release server 30 is a server that releases patches.
  • the patch release server 30 includes a control unit 31 and a storage unit 32.
  • the control unit 31 includes a patch providing unit 311.
  • the storage unit 32 includes check data 321 and patch data 322.
  • Check data 321 indicates check data registered by the patch creation unit 411.
  • the patch data 322 indicates patch data registered by the patch creation unit 411.
  • the patch release server 30 collectively manages the patch data 322 and check data 321 registered by the patch creation server 40. Further, when the patch disclosure server 30 acquires a download request for the patch data 322 from the information processing apparatus 10, the patch release server 30 provides the requested patch data 322 and check data 321 corresponding to the patch data 322 to the request source.
  • the information processing apparatus 10 When the program being operated is modified, the information processing apparatus 10 is normally operated using check data in which counter processing is incorporated instead of applying the patch data, and the corrected portion in the check data is executed Increase the count. Then, the information processing apparatus 10 determines whether or not the count is increased at a predetermined timing, and applies the original patch data to the correction whose count is increased. That is, the information processing apparatus 10 replaces the check data of the corrected location where the count-up is detected with the original patch data when the corrected location is executed even once, for example, when the power is turned off or on.
  • the information processing apparatus 10 is connected to the patch release server 30 via the network 20.
  • the information processing apparatus 10 includes a control unit 11 and a storage unit 12.
  • the control unit 11 includes a check data application unit 111, a count-up determination unit 112 that determines a count-up, and a patch data application unit 113 that applies a patch that is counted up when the information processing apparatus 10 is turned on or off, for example.
  • the function of the control unit 11 can be realized by an integrated circuit such as ASIC (Application Specific Integrated Circuit) or FPGA (Field Programmable Gate Array). Further, it can be realized by causing a predetermined program to function as a CPU (Central Processing Unit).
  • ASIC Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • the storage unit 12 is, for example, a semiconductor memory device such as a RAM (Random Access Memory) or a flash memory, or a storage device such as a hard disk or an optical disk. Further, the storage unit 12 includes a counter DB 121, check data 122, and patch data 123.
  • the counter DB 121 stores, for each patch data, a counter that is used to determine whether or not the patch data has been corrected. Detailed description of the counter DB 121 will be described later.
  • the check data 122 is an object in which counter processing is incorporated in the patch data correction location.
  • the patch data 123 is an object obtained by correcting a faulty part of an operating program.
  • the check data 122 and the patch data 123 are provided from the patch release server 30 based on a download request for the patch data 123.
  • the check data application unit 111 applies a provisional correction program incorporating a counter process for increasing the count when passing through the correction portion, that is, the check data 122 when the program being operated is corrected, to the program being operated. For example, when there is a correction in the program in operation, the check data application unit 111 outputs a download request for the patch data 322 and the check data 321 corresponding to the program with the correction to the patch disclosure server 30. Then, in the check data application unit 111, patch data 322 and check data 321 according to the request are provided from the patch disclosure server 30.
  • the check data application unit 111 arranges the provided check data 321 in an arrangement destination of an object to be originally executed, and arranges the provided patch data 322 in an arrangement destination that can be distinguished for each patch data 322.
  • the check data application unit 111 arranges the patch data 322 in an arrangement destination to which a patch ID is added above the arrangement destination of the object to be originally executed.
  • FIG. 3 is a diagram illustrating an example of a data structure of the counter DB according to the embodiment.
  • the counter DB 121 stores a check data object 121b, a patch data object 121c, and a counter 121d in association with each other for each patch ID 121a.
  • the identifier of the patch data 123 is stored in the patch ID 122a.
  • the check data object 122b the arrangement location of the check data 122 is stored.
  • the location of the patch data 123 is stored in the patch data object 122c.
  • the counter DB 122 stores “/ opt / package name / sbin / aaa” as the location of the check data object.
  • “/ Opt / patch / 123456 / opt / package name / sbin / aaa” is stored as the location of the patch data object. That is, the patch data object placement destination is a placement destination in which the patch ID “123456” is added above the check data object placement destination.
  • the counter DB 122 stores an initial value of 0 as the value of the counter 122d. Note that the check data application unit 111 may create the counter DB 122 in the arrangement destination of the patch data 123, or may create it in a dedicated arrangement destination for creating the counter DB 122.
  • the check data application unit 111 when the check data application unit 111 passes the correction location in the check data 122 when the information processing apparatus 10 executes the program, the check data application unit 111 adds the counter DB 122 to the counter process embedded in the correction location. The counter 122d is incremented. The counter processing procedure will be described later.
  • the count-up determination unit 112 determines whether or not the count is increased at a predetermined timing as a result of the execution of the check data 122 by the check data application unit 111. For example, the count-up determination unit 112 sequentially reads the value of the counter 122d of the counter DB 121 at the power-off or power-on timing of the information processing apparatus 10, and determines whether or not the read value of the counter 122d is not “0”. To do.
  • the patch data application unit 113 replaces the check data 122 with a corrected program in which the correction portion is corrected, that is, the patch data 123. For example, when it is determined that the value of the counter 122 d of the counter DB 121 is not “0”, the patch data application unit 113 reads the patch ID of the row determined not to be “0” from the counter DB 121. Then, the patch data application unit 113 copies the patch data object in the same row as the read patch ID to the check data object placement destination. That is, the patch data application unit 113 replaces the check data object that has been operating with patch data that is a corrected program. Further, the patch data application unit 113 deletes the row of the patch ID to be replaced from the counter DB 122.
  • FIG. 4 is a flowchart illustrating a procedure for creating a patch according to the embodiment.
  • FIG. 5 is a flowchart illustrating the procedure of patch release according to the embodiment.
  • FIG. 6 is a flowchart illustrating a procedure of patch application determination according to the embodiment. As an example, it is assumed that a failure has occurred in any part of the operating program.
  • the patch creation unit 411 corrects the uncorrected source data 421 that is the source file of the program in which the failure has occurred (step S11). Then, the patch creation unit 411 adds the corrected portion to the failure location of the pre-correction source data 421, and generates the post-correction source data 422. Then, the patch creation unit 411 compiles the created modified source data 422, further operates the patch creation tool, and creates patch data (step S12).
  • the patch creation unit 411 compares the pre-correction source data 421 and the post-correction source data 422, and adds a counter process to a correction portion that becomes a difference (step S13). Then, the patch creation unit 411 compiles the source data to which the counter process has been added, operates the patch creation tool, and creates check data (step S14).
  • the patch creation unit 411 registers the created patch data and check data in the patch release server 30 (step S15).
  • the patch release server 30 releases the registered patch data 322 and check data 321 (step S21).
  • the check data application unit 111 downloads patch data 322 and check data 321 relating to the program in which the failure has occurred from the patch disclosure server 30 (step S31). Then, the check data execution unit 111 arranges the downloaded check data 122 in the arrangement destination of the object to be originally executed, and arranges the downloaded patch data 123 in the arrangement destination that can be distinguished for each patch data.
  • the check data application unit 111 creates a counter DB 121 corresponding to the patch ID of the downloaded patch data 123 (step S32).
  • the procedure for creating the counter DB 121 will be described in detail later.
  • step S33 when the correction location in the check data 122 is passed during execution of the program in the information processing apparatus 10, the counter of the correction location in the passed check data counts up (step S33). That is, when the check data execution unit 111 passes the correction location in the check data 122, the check data execution unit 111 increments the value of the counter 121d of the counter DB 121 in the counter process embedded in the correction location.
  • the counter process is given the patch ID of the patch data as a parameter.
  • the counter DB 121 adds 1 to the value of the counter 121d corresponding to the given patch ID.
  • the count-up determination unit 112 reads the value of the counter 122d corresponding to the patch ID from the counter DB 121 at power-off or power-on timing (step S34). Then, the count-up determination unit 112 determines whether or not the read value of the counter 122d is 0 (step S35). When it is determined that the value of the counter 122d is 0 (step S35; Yes), since the count is not increased, it is determined that the correction portion does not operate even when the patch data is applied, and the patch application determination process is terminated. .
  • the patch data application unit 113 automatically applies the patch data 123 because the count is up (step S36). That is, the patch data application unit 113 replaces the check data 122 that has been operating with the patch data 123.
  • the patch data application procedure will be described later in detail.
  • FIG. 7 is a flowchart illustrating the procedure for creating the counter DB according to the embodiment.
  • the counter DB 121 is created based on the patch ID and the object placement destination described in the patch data 123.
  • the check data application unit 111 determines whether or not the counter DB 121 has been created (step S41). When determining that the counter DB 121 has not been created (step S41; No), the check data application unit 111 creates an empty counter DB 121 (step S42), and proceeds to step S43. On the other hand, when it is determined that the counter DB 121 has been created (step S41; Yes), the check data application unit 111 proceeds to step S43.
  • the check data application unit 111 reads the patch ID from the patch data 123 to be applied (step S43). Then, the check data application unit 111 adds the read patch ID to the patch ID column of the counter DB 121 (step S44).
  • the check data application unit 111 first updates the placement destination with “/ opt / patch” from the placement locations of the objects in the patch data 123 to the patch data object column of the counter DB 121 (step S45).
  • the check data application unit 111 reads out other arrangement destinations from the arrangement destinations of the objects in the patch data 123. Then, the check data application unit 111 searches the read placement destination for the same placement destination under “/ opt / patch / XXXXX” within the placement destination of the patch data object. Then, the check data application unit 111 updates the searched arrangement destination to the check data object column of the counter DB 121 (step S46).
  • the check data application unit 111 updates the initial value 0 in the counter field of the counter DB 121 (step S47).
  • FIG. 8 is a flowchart illustrating the procedure of the counter process according to the embodiment. It is assumed that a patch ID is given as a parameter.
  • the counter process reads the patch ID in the counter DB 121 (step S51). Then, the counter process compares the patch ID read from the counter DB 121 with the patch ID given as a parameter (step S52). Then, the counter process determines whether or not the read patch ID matches the patch ID given as a parameter (step S53).
  • step S53 If it is determined that they do not match (step S53; No), the counter process reads the patch ID in the next row of the counter DB 121 (step S54), and proceeds to step S52.
  • step S53 if it is determined that they match (step S53; Yes), the counter process reads the counter value in the same row as the patch ID determined to match (step S55). In the counter process, 1 is added to the read counter value, and the count is increased (step S56). Then, the counter process is updated to a value obtained by adding the counter value of the counter DB 121 (step S57).
  • FIG. 9 is a flowchart illustrating a procedure of applying patch data according to the embodiment.
  • the count-up determination unit 112 determines whether or not the power is off or the power is on (step S61). When it is determined that the power is not turned off or turned on (step S61; No), the count-up determination unit 112 repeats the determination until the power is turned off or the power is turned on.
  • step S61 when it is determined that the power is off or the power is on (step S61; Yes), the count-up determination unit 112 selects the first row of the counter DB 121 (step S62). Then, the count-up determination unit 112 reads the counter value from the selected first row (Step S63).
  • the count-up determination unit 112 determines whether or not the read counter value is 0 (step S64).
  • the patch data application unit 113 reads the patch ID of the selected row (step S65).
  • the patch data application unit 113 copies the patch data object in the same row as the read patch ID to the check data placement destination (step S66). That is, the patch data application unit 113 replaces the check data 122 that has been operating with the patch data 123.
  • the patch data application unit 113 deletes the row having the same patch ID as the patch ID read from the counter DB 121 (step S67). Thereafter, the patch data application unit 113 proceeds to step S69 to select the next row.
  • step S64 determines whether the count-up determination unit 112 determines that the counter value is 0 (step S64; Yes).
  • step S68 determines whether the selected row is the last row (step S68).
  • step S69 the count-up determination unit 112 selects the next row in the counter DB 121 (step S69), and proceeds to step S63. To do.
  • the patch data application unit 113 re-executes the kernel when the patch data 123 is data related to the OS (Operation System).
  • the configuration is implemented (step S70). If the patch data 123 is not data related to the OS, the kernel reconfiguration does not have to be performed.
  • FIG. 10 is a diagram illustrating a specific example of the contents of patch data.
  • FIG. 11 is a diagram for explaining the state of the counter DB. It is assumed that the object in operation is arranged in “/ opt / FJSVabcd / sbin / aaa”.
  • the patch data 123 describes “123456” as the patch ID value and “FJSVabcd” as the package name.
  • the arrangement destination of the object the arrangement destination of the check data 122 and the patch data 123 is described.
  • “/ Opt / FJSVabcd / sbin / aaa” is described in the arrangement location of the check data 122, and “aaa” is the object name of the check data 123.
  • “/ Opt / patch / 123456 / opt / FJSVabcd / sbin / aaa” is described in the arrangement location of the patch data 123, and “aaa” is the object name of the patch data 122. That is, the arrangement destination of the patch data 123 is an arrangement destination in which an arrangement destination of an object to be originally executed is added under “/ opt / 123456 / opt”.
  • the check data application unit 111 creates the counter DB 121 related to the patch ID “123456” described in the patch data 123.
  • the state of the counter DB 121 immediately after creation is that the patch ID value is “123456”, and “/ opt / FJSVabcd / sbin / aaa” is stored as the object placement destination of the check data 122.
  • “/ Opt / patch / 123456 / opt / FJSVabcd / sbin / aaa” is stored as the object placement destination of the patch data 123, and the initial value 0 is stored as the value of the counter 121d.
  • the check data application unit 111 executes the object “aaa”, which is the check data 122, and when the correction data in the object “aaa” is passed, the counter value of the counter DB 121 is incremented by 1 by the counter process. Let Thereafter, the patch data application unit 113 checks the value of the counter corresponding to the patch ID “123456” stored in the counter DB 121 at the power-off or power-on timing.
  • the patch data application unit 113 passes the correction portion even if the patch ID “123456” is corrected. Therefore, the patch data 123 is not applied. However, if the value of the counter corresponding to the patch ID “123456” is a number other than 0, the patch data application unit 113 passes the correction portion when the patch ID “123456” is corrected. 123 is applied. That is, the patch data application unit 113 replaces the object “aaa” of the check data 122 with the object “aaa” of the patch data 123.
  • FIG. 12 is a diagram for explaining the state of the counter DB when there are two objects that are corrected for one patch ID.
  • the state of the counter DB 121 immediately after the creation is that the patch ID value is “123456”, and there are two objects with modifications, “aaa” and “bbb”. Even if there are two objects with corrections to the patch ID “123456”, only one counter is used. Therefore, when either one of “aaa” and “bbb” passes the correction part, the check data application unit 111 adds 1 to one counter value.
  • the patch data application unit 113 since the patch data application unit 113 does not pass the correction portion even if the patch ID “123456” is corrected, the objects “aaa” and “bbb” of the patch data 123 are not applied. However, when the counter value is a number other than 0, the patch data application unit 113 replaces the object “aaa” of the check data 122 with the object “aaa” of the patch data 123. Further, the patch data application unit 113 replaces the object “bbb” of the check data 122 with the object “bbb” of the patch data 123.
  • the check data application unit 111 of the information processing apparatus 10 operates the check data 122 that incorporates the process of increasing the count when passing through the corrected portion when the program being operated is modified. Incorporate into. Then, the count-up determination unit 112 determines whether or not the check data 122 has been executed by executing a program on the information processing apparatus 10 based on whether or not the counter DB has been counted up at a predetermined timing. Further, when the count-up determination unit 112 determines that there is a patch (check data) application part whose count is up, the patch data application unit 113 displays the check data 122 that has been counted up as a correction part.
  • the information processing apparatus 10 executes the check data 122 that incorporates the process of increasing the count when the correction location is passed, so whether or not the correction location has been passed by using the count is determined. Can be judged. For this reason, since the information processing apparatus 10 can apply the patch data 123 when passing through the correction portion, it can appropriately determine whether or not to apply the patch data 123.
  • the patch data application unit 113 does not replace the check data 122 with the patch data 123 when the count-up determination unit 112 determines that the count is not up. According to such a configuration, the patch data application unit 113 does not replace the check data 122 with the patch data 123 when the count is not incremented, that is, when the correction point is not passed. For this reason, the patch data application unit 113 can prevent the occurrence of a level down due to the application even when the patch data 123 does not need to be applied.
  • the count-up determination unit 112 determines whether or not the count is increased at the timing when the information processing apparatus 10 is stopped or the own apparatus is activated. According to such a configuration, the count-up determination unit 112 determines whether or not the count is up at a timing that does not hinder the operation of the program. Therefore, if the count is up, it is efficient.
  • the patch data 123 can be replaced.
  • the check data application unit 111 operates the check data 122 that incorporates a counting process that counts the number of times the correction part is executed when the correction part is executed when the program being operated is corrected. It explained that it applies to the program inside. Then, when the counter process in the check data 122 runs, the counter process increases the count corresponding to the patch ID of the patch data 123 delivered as a parameter.
  • the counter process is not limited to this, and the count corresponding to the patch ID of the patch data 123 delivered as a parameter may be decreased.
  • the patch data application unit 113 may replace the check data 122 with the patch data 123 when the count determination unit 112 determines that the count is down.
  • the information processing apparatus 10 can be realized by mounting each function such as the control unit 11 and the storage unit 12 in an information processing apparatus such as a known personal computer or workstation.
  • each component of each illustrated apparatus does not necessarily need to be physically configured as illustrated. That is, the specific mode of distribution / integration of each device is not limited to that shown in the figure, and all or a part thereof may be functionally or physically distributed or arbitrarily distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured.
  • the count-up determination unit 112 and the patch data application unit 113 may be integrated as one unit.
  • the check data application unit 111 may be distributed to a download unit that downloads the check data 321 and the patch data 322 and a check data application unit 111 that executes the downloaded check data 321.
  • the storage unit 12 such as the counter DB 121 may be connected as an external device of the information processing apparatus 10 via a network.
  • FIG. 13 is a diagram illustrating a computer that executes a patch application determination program.
  • the computer 1000 is the same as the information processing apparatus 10 illustrated in FIG. 1, and includes a RAM 1010, a network interface device 1020, an HDD 1030, a CPU 1040, a medium reading device 1050, and a bus 1060.
  • the RAM 1010, the network interface device 1020, the HDD 1030, the CPU 1040, and the medium reading device 1050 are connected by a bus 1060.
  • the patch creation server 40 and the patch release server 30 in FIG. 1 can also be realized by an information processing apparatus having the same configuration as that in FIG.
  • the HDD 1030 stores a patch application determination program 1031 having the same function as that of the control unit 11 shown in FIG.
  • the HDD 1030 stores patch application determination processing related information 1032 corresponding to the counter DB 121, the check data 122, and the patch data 123 illustrated in FIG.
  • the patch application determination program 1031 functions as the patch application determination process 1011. Then, the patch application determination process 1011 expands the information read from the patch application determination processing related information 1032 to the area allocated to itself on the RAM 1010 as appropriate, and executes various data processing based on the expanded data and the like. .
  • the medium reader 1050 reads the patch application determination program 1031 from a medium or the like that stores the patch application determination program 1031 even when the patch application determination program 1031 is not stored in the HDD 1030.
  • Examples of the medium reading device 1050 include a CD-ROM and an optical disk device.
  • the network interface device 1020 is a device connected to an external device via a network, and may be wired or wireless.
  • the patch application determination program 1031 may be stored in another computer (or server) connected to the computer 1000 via a public line, the Internet, a LAN, a WAN (Wide Area Network), or the like. good.
  • the computer 1000 reads and executes the patch application determination program 1031 from another computer or the like via the network interface device 1020.

Abstract

 情報処理装置(10)が、運用中のプログラムに修正がある場合、修正箇所が実行されると、修正箇所が実行された回数を計数させる処理を組み込んだチェックデータを運用中のプログラムに適用するチェックデータ適用部(111)と、適用されたチェックデータが適用された結果、修正箇所が実行された回数を示すカウントがアップしているか否かを所定のタイミングで判定するカウントアップ判定部(112)と、カウントがアップしていると判定された場合、カウントがアップしていると判定された、修正箇所を含むチェックデータを、当該修正箇所を修正した修正済みのプログラムに置き換えるパッチデータ適用部(113)と、を備えることとしたので、修正済みのプログラムを適用するか否かの判断を適切に行うことができる。

Description

情報処理装置、修正適用判定プログラムおよび修正適用判定方法
 本発明は、情報処理装置等に関する。
 近年、稼動中の計算機システムにおけるプログラムのパッチは、障害の大小を問わず公開されている。公開された全てのパッチを対応するプログラムに適用すると、パッチによるレベルダウンが発生する場合がある。そこで、パッチによるレベルダウンを防止するため、スキルが高い人間が、公開されたパッチの情報から適用するパッチを抽出する。
 また、システムの稼動時に、プログラムの走行回数を制御表に記録し、パッチの受信時に、そのパッチと同一の機能名をもつプログラムの走行回数を制御表から求め、走行回数が所定回数以上のとき、当該パッチを適用するパッチとして抽出する技術がある。
特開2000-10766号公報
 しかしながら、パッチを適用する従来の技術では、パッチを適用するか否かの判断が困難であるという問題があった。一例として、人間が、適用するパッチを抽出する場合、スキルが高いと過不足ないパッチを抽出できるが、スキルが低いとパッチを適用するか否かを判断できかねる場合がある。また、スキルが高い場合であっても、パッチの組み合わせまで考慮して、過不足ないパッチを抽出することは困難である。
 別の一例として、プログラムの走行回数を用いた技術の場合、プログラムのどの部分が動作したかに関係なく走行回数をカウントしているので、このカウントにより自己のシステムでパッチの適用が必要であるか否かを判断することは困難である。
 開示の技術は、パッチを適用するか否かの判断を適切に行うことができる情報処理装置等を提供することを目的とする。
 本願の開示する情報処理装置は、一つの態様において、運用中のプログラムに修正がある場合、修正箇所が実行されると、修正箇所が実行された回数を計数させる処理を組み込んだ暫定修正プログラムを前記運用中のプログラムに適用するプログラム適用部と、前記プログラム適用部によって適用された前記暫定修正プログラムが適用された結果、修正箇所が実行された回数を示すカウントがアップしているか否かを所定のタイミングで判定する判定部と、前記判定部によってカウントがアップしていると判定された場合、カウントがアップしていると判定された、修正箇所を含む暫定修正プログラムを、当該修正箇所を修正した修正済みのプログラムに置き換える置換部とを有する。
 本願の開示する情報処理装置の一つの態様によれば、パッチを適用するか否かの判断を適切に行うことができるという効果を奏する。
図1は、実施例に係るパッチ適用判定を行なうシステムの構成を示す機能ブロック図である。 図2は、パッチ作成部によるパッチ作成の具体例を説明する図である。 図3は、実施例に係るカウンタDBのデータ構造の一例を示す図である。 図4は、実施例に係るパッチ作成の手順を示すフローチャートである。 図5は、実施例に係るパッチ公開の手順を示すフローチャートである。 図6は、実施例に係るパッチ適用判定の手順を示すフローチャートである。 図7は、実施例に係るカウンタDB作成の手順を示すフローチャートである。 図8は、実施例に係るカウンタ処理の手順を示すフローチャートである。 図9は、実施例に係るパッチデータ適用の手順を示すフローチャートである。 図10は、パッチデータの内容の具体例を示す図である。 図11は、カウンタDBの状態を説明する図である。 図12は、1個のパッチIDに対して修正があるオブジェクトが2個ある場合のカウンタDBの状態を説明する図である。 図13は、パッチ適用判定プログラムを実行するコンピュータを示す図である。
 以下に、本願の開示する情報処理装置、修正適用判定プログラムおよび修正適用判定方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例では、問題があったプログラムの修正後のプログラムのことを「パッチ」というものとする。また、実施例によりこの発明が限定されるものではない。
[実施例に係る計算機システムの構成]
 図1は、実施例に係るパッチ適用判定を行うシステムの構成を示す機能ブロック図である。図1に示すように、計算機システム1は、情報処理装置10と、ネットワーク20と、パッチ公開サーバ30と、パッチ作成サーバ40とを有する。
 パッチ作成サーバ40は、パッチを作成するサーバである。すなわち、パッチ作成サーバ40は、運用中のプログラムのいずれかの箇所で障害が発生した場合、プログラムの障害箇所を修正したパッチデータを作成する。また、パッチ作成サーバ40は、パッチを適用する側である後述する情報処理装置10において、パッチデータを適用するか否かを判断するためのチェックデータを作成する。チェックデータは、パッチデータの修正箇所にカウンタ処理を組み込んだデータのことをいう。このカウンタ処理は、呼び出されるとパッチデータの識別情報として与えられるパッチID(identification)に対応するカウントをアップさせる。つまり、情報処理装置10がチェックデータを実行し、チェックデータ内のカウンタ処理が走行すると、カウンタ処理は、パラメータとして引き渡されるパッチデータのパッチIDに対応するカウントをアップさせる。なお、カウント処理は、例えばあらかじめ作成されたライブラリ内に部品化されているものである。
 パッチ作成サーバ40は、制御部41および記憶部42を有する。制御部41は、パッチ作成部411を有する。記憶部42は、修正前ソースデータ421および修正後ソースデータ422を有する。修正前ソースデータ421は、運用中のプログラムのソースファイルを示す。修正後ソースデータ422は、プログラムの障害箇所を修正したパッチデータのソースファイル、すなわち修正後のプログラムのソースファイルを示す。パッチ作成部411は、修正前ソースデータ421の障害箇所に修正部分を追加し、修正後ソースデータ422を作成する。そして、パッチ作成部411は、修正後ソースデータ422をコンパイルし、さらにパッチ関連のデータを作成するツールであるパッチ作成ツールを動作させ、パッチデータを作成する。また、パッチ作成部411は、修正前ソースデータ421と修正後ソースデータ422とを比較し、差分となる修正箇所を探索する。そして、パッチ作成部411は、修正前ソースデータ421の探索した修正箇所にカウンタ処理を追加する。そして、パッチ作成部411は、カウンタ処理を追加したソースデータをコンパイルし、さらにパッチ作成ツールを動作させ、チェックデータを作成する。
 ここで、パッチ作成部411によるパッチ作成の具体例について、図2を参照して説明する。図2は、パッチ作成部によるパッチ作成の具体例を説明する図である。図2に示すように、修正前ソースデータ421には、aaa、bbbおよびcccのソースコードが記述されている。ここで、bbbの箇所で障害が発生したとする。パッチ作成部411は、修正前ソースデータ421の障害箇所であるbbbとcccとの間に修正コードを追加し、修正後ソースデータ422を作成する(s1)。そして、パッチ作成部411は、作成した修正後ソースデータ422をコンパイルし、さらにパッチ作成ツールを動作させ、パッチデータを作成する(s2)。パッチデータには、例えば、パッチIDとして「123456」が書き込まれる。
 次に、パッチ作成部411は、修正前ソースデータ421と修正後ソースデータ422とを比較し(s3)、差分となる修正箇所を探索する。ここでは、パッチ作成部411は、bbbとcccとの間に修正コードが追加されているので、探索の結果、bbbとcccとの間を修正箇所とする。そして、パッチ作成部411は、修正前ソースデータ421の修正箇所にカウンタ処理を追加する(s4)。このとき、パッチ作成部411は、カウンタ処理のパラメータとして、パッチデータのパッチIDを記述する。そして、パッチ作成部411は、修正前ソースデータ421にカウンタ処理を追加したソースデータをコンパイルし、さらにパッチ作成ツールを動作させ、チェックデータを作成する(s5)。
 図1に戻って、パッチ作成部411は、作成したパッチデータおよびチェックデータを、パッチ公開サーバ30へ登録する。
 パッチ公開サーバ30は、パッチを公開するサーバである。パッチ公開サーバ30は、制御部31および記憶部32を有する。制御部31は、パッチ提供部311を有する。記憶部32は、チェックデータ321およびパッチデータ322を有する。チェックデータ321は、パッチ作成部411によって登録されたチェックデータを示す。パッチデータ322は、パッチ作成部411によって登録されたパッチデータを示す。そして、パッチ公開サーバ30は、パッチ作成サーバ40によって登録されたパッチデータ322およびチェックデータ321を一括して管理する。また、パッチ公開サーバ30は、情報処理装置10からパッチデータ322のダウンロード要求を取得すると、要求があったパッチデータ322およびパッチデータ322に対応するチェックデータ321を、要求元に対して提供する。
 情報処理装置10は、運用中のプログラムに修正がある場合、パッチデータを適用する代わりに、カウンタ処理が組み込まれたチェックデータを用いて通常運用し、チェックデータ内の修正箇所が実行された場合にカウントをアップさせる。そして、情報処理装置10は、所定のタイミングで、カウントがアップしたか否かを判定し、カウントがアップした修正について、本来のパッチデータを適用する。すなわち、情報処理装置10は、一度でも修正箇所が実行された場合、例えば電源オフまたはオンのタイミングで、カウントアップを検出した修正箇所のチェックデータを本来のパッチデータに置き換える。
 情報処理装置10は、パッチ公開サーバ30とネットワーク20で接続される。また、情報処理装置10は、制御部11および記憶部12を有する。制御部11は、チェックデータ適用部111と、カウントアップを判定するカウントアップ判定部112と、例えば情報処理装置10の電源オンまたはオフ時にカウントアップされたパッチを適用するパッチデータ適用部113とを有する。なお、制御部11の機能は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現することができる。また、所定のプログラムがCPU(Central Processing Unit)を機能させることで実現することができる。
 記憶部12は、例えば、RAM(Random Access Memory)、フラッシュメモリ(flash memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置である。さらに、記憶部12は、カウンタDB121と、チェックデータ122と、パッチデータ123とを有する。カウンタDB121は、パッチデータの修正箇所を通過したか否かの判定に用いられるカウンタをパッチデータ毎に記憶する。なお、カウンタDB121の詳細な説明については、後述するものとする。
 チェックデータ122は、パッチデータの修正箇所にカウンタ処理を組み込んだオブジェクトである。パッチデータ123は、運用中のプログラムの障害箇所を修正したオブジェクトである。チェックデータ122およびパッチデータ123は、パッチデータ123のダウンロード要求に基づいて、パッチ公開サーバ30から提供される。
 チェックデータ適用部111は、運用中のプログラムに修正がある場合、修正箇所を通過するとカウントをアップさせるカウンタ処理を組み込んだ暫定修正プログラム、すなわちチェックデータ122を運用中のプログラムに適用する。例えば、チェックデータ適用部111は、運用中のプログラムに修正がある場合、修正があるプログラムに対応したパッチデータ322およびチェックデータ321のダウンロード要求をパッチ公開サーバ30に出力する。そして、チェックデータ適用部111では、要求に応じたパッチデータ322およびチェックデータ321がパッチ公開サーバ30から提供される。そして、チェックデータ適用部111は、提供されたチェックデータ321を本来実行されるべきオブジェクトの配置先へ配置し、提供されたパッチデータ322をパッチデータ322毎に区別できる配置先へ配置する。一例として、チェックデータ適用部111は、パッチデータ322を本来実行されるべきオブジェクトの配置先の上位にパッチIDを付加した配置先へ配置する。
 また、チェックデータ適用部111は、提供されたパッチデータ123に関するカウンタDB121を作成する。ここで、カウンタDB121のデータ構造について、図3を参照しながら説明する。図3は、実施例に係るカウンタDBのデータ構造の一例を示す図である。図3に示すように、カウンタDB121は、パッチID121a毎に、チェックデータのオブジェクト121b、パッチデータのオブジェクト121cおよびカウンタ121dを対応付けて記憶する。パッチID122aには、パッチデータ123の識別子が記憶される。チェックデータのオブジェクト122bには、チェックデータ122の配置先が記憶される。パッチデータのオブジェクト122cには、パッチデータ123の配置先が記憶される。例えば、カウンタDB122は、パッチIDの値が「123456」である場合、チェックデータのオブジェクトの配置先として「/opt/パッケージ名/sbin/aaa」を記憶する。パッチデータのオブジェクトの配置先として「/opt/patch/123456/opt/パッケージ名/sbin/aaa」を記憶する。すなわち、パッチデータのオブジェクトの配置先は、チェックデータのオブジェクトの配置先の上位にパッチID「123456」を付加した配置先となっている。また、カウンタDB122は、カウンタ122dの値として初期値の0を記憶する。なお、チェックデータ適用部111は、カウンタDB122をパッチデータ123の配置先に作成しても良いし、カウンタDB122を作成するための専用の配置先に作成しても良い。
 図1に戻って、チェックデータ適用部111は、情報処理装置10でプログラムを実行した際に、チェックデータ122内の修正箇所を通過した場合には、修正箇所に埋め込まれたカウンタ処理にカウンタDB122のカウンタ122dの値をインクリメントさせる。なお、カウンタ処理の手順については、後述するものとする。
 カウントアップ判定部112は、チェックデータ適用部111によってチェックデータ122が実行された結果、所定のタイミングで、カウントがアップしているか否かを判定する。例えば、カウントアップ判定部112は、情報処理装置10の電源オフまたは電源オンのタイミングで、カウンタDB121のカウンタ122dの値を順次読み出し、読み出したカウンタ122dの値が「0」でないか否かを判定する。
 パッチデータ適用部113は、カウントアップ判定部112によってカウントがアップしていると判定された場合、チェックデータ122を、修正箇所を修正した修正済みのプログラム、すなわちパッチデータ123に置き換える。例えば、パッチデータ適用部113は、カウンタDB121のカウンタ122dの値が「0」でないと判定された場合、「0」でないと判定された行のパッチIDをカウンタDB121から読み出す。そして、パッチデータ適用部113は、読み出したパッチIDと同じ行のパッチデータのオブジェクトをチェックデータのオブジェクトの配置先にコピーする。すなわち、パッチデータ適用部113は、動作していたチェックデータのオブジェクトを修正済みのプログラムであるパッチデータに置き換える。さらに、パッチデータ適用部113は、カウンタDB122から置き換え対象となったパッチIDの行を削除する。
[実施例に係るパッチ適用判定の手順]
 次に、実施例に係るパッチ適用判定の手順を、図4~図6を参照して説明する。図4は、実施例に係るパッチ作成の手順を示すフローチャートである。図5は、実施例に係るパッチ公開の手順を示すフローチャートである。図6は、実施例に係るパッチ適用判定の手順を示すフローチャートである。なお、一例として、運用中のプログラムのいずれかの箇所で障害が発生したものとする。
 運用中のプログラムで障害が発生すると、パッチ作成サーバ40では、パッチ作成部411が、障害が発生したプログラムのソースファイルである修正前ソースデータ421の修正を実施する(ステップS11)。そして、パッチ作成部411は、修正前ソースデータ421の障害箇所に修正部分を追加し、修正後ソースデータ422を作成する。そして、パッチ作成部411は、作成した修正後ソースデータ422をコンパイルし、さらにパッチ作成ツールを動作させ、パッチデータを作成する(ステップS12)。
 続いて、パッチ作成部411は、修正前ソースデータ421と修正後ソースデータ422とを比較し、差分となる修正箇所にカウンタ処理を追加する(ステップS13)。そして、パッチ作成部411は、カウンタ処理を追加したソースデータをコンパイルし、さらにパッチ作成ツールを動作させ、チェックデータを作成する(ステップS14)。
 そして、パッチ作成部411は、作成したパッチデータおよびチェックデータをパッチ公開サーバ30へ登録する(ステップS15)。
 パッチ作成サーバ40によりパッチデータ322およびチェックデータ321が登録されると、パッチ公開サーバ30は、登録されたパッチデータ322およびチェックデータ321を公開する(ステップS21)。
 続いて、情報処理装置10では、チェックデータ適用部111が、障害が発生したプログラムに関するパッチデータ322およびチェックデータ321をパッチ公開サーバ30からダウンロードする(ステップS31)。そして、チェックデータ実行部111は、ダウンロードしたチェックデータ122を本来実行されるべきオブジェクトの配置先へ配置し、ダウンロードしたパッチデータ123をパッチデータ毎に区別できる配置先へ配置する。
 そして、チェックデータ適用部111は、ダウンロードしたパッチデータ123のパッチIDに対応するカウンタDB121を作成する(ステップS32)。なお、カウンタDB121の作成手順については、後に詳述する。
 続いて、情報処理装置10におけるプログラム実行中にチェックデータ122内の修正箇所を通過した場合には、通過したチェックデータ内の修正箇所のカウンタがカウントアップを実施する(ステップS33)。すなわち、チェックデータ実行部111は、チェックデータ122内の修正箇所を通過した場合には、修正箇所に埋め込まれたカウンタ処理にカウンタDB121のカウンタ121dの値をインクリメントさせる。なお、カウンタ処理には、パラメータとしてパッチデータのパッチIDが与えられる。そして、カウンタ処理は、カウンタDB121について、与えられたパッチIDに対応するカウンタ121dの値を1加算することとなる。
 その後、カウントアップ判定部112は、電源オフまたは電源オンのタイミングで、パッチIDに対応するカウンタ122dの値をカウンタDB121から読み出す(ステップS34)。そして、カウントアップ判定部112は、読み出したカウンタ122dの値が0であるか否かを判定する(ステップS35)。カウンタ122dの値が0であると判定した場合(ステップS35;Yes)、カウントがアップしていないので、パッチデータを適用しても修正箇所は動作しないと判断し、パッチ適用判定処理を終了する。
 一方、カウンタ122dの値が0でないと判定した場合(ステップS35;No)、パッチデータ適用部113は、カウントがアップしているので、パッチデータ123を自動適用する(ステップS36)。すなわち、パッチデータ適用部113は、動作していたチェックデータ122をパッチデータ123に置き換える。なお、パッチデータの適用手順については、後に詳述する。
[実施例に係るカウンタDB作成の手順]
 次に、図6に示すS32の処理手順を、図7を参照して説明する。図7は、実施例に係るカウンタDB作成の手順を示すフローチャートである。図7の例では、カウンタDB121は、パッチデータ123に記述された、パッチIDおよびオブジェクトの配置先に基づいて作成されるものとする。
 まず、チェックデータ適用部111は、カウンタDB121が作成済みであるか否かを判定する(ステップS41)。カウンタDB121が作成済みでないと判定する場合(ステップS41;No)、チェックデータ適用部111は、空のカウンタDB121を作成し(ステップS42)、ステップS43に移行する。一方、カウンタDB121が作成済みであると判定する場合(ステップS41;Yes)、チェックデータ適用部111は、ステップS43に移行する。
 続いて、チェックデータ適用部111は、適用するパッチデータ123からパッチIDを読み出す(ステップS43)。そして、チェックデータ適用部111は、読み出したパッチIDをカウンタDB121のパッチID欄に追加する(ステップS44)。
 そして、チェックデータ適用部111は、パッチデータ123内のオブジェクトの配置先の中から、最初に「/opt/patch」と付いている配置先をカウンタDB121のパッチデータのオブジェクト欄に更新する(ステップS45)。
 さらに、チェックデータ適用部111は、パッチデータ123内のオブジェクトの配置先の中から、その他の配置先を読み出す。そして、チェックデータ適用部111は、読み出した配置先の中からパッチデータのオブジェクトの配置先内の「/opt/patch/XXXXXX」配下と同じ配置先を検索する。そして、チェックデータ適用部111は、検索した配置先をカウンタDB121のチェックデータのオブジェクト欄に更新する(ステップS46)。
 そして、チェックデータ適用部111は、カウンタDB121のカウンタ欄に初期値の0を更新する(ステップS47)。
[実施例に係るカウンタ処理の手順]
 次に、図6に示すS33のカウンタ処理の手順を、図8を参照して説明する。図8は、実施例に係るカウンタ処理の手順を示すフローチャートである。なお、パラメータとしてパッチIDが与えられたものとする。
 まず、カウンタ処理は、カウンタDB121のパッチIDを読み出す(ステップS51)。そして、カウンタ処理は、カウンタDB121から読み出したパッチIDとパラメータとして与えられたパッチIDとを比較する(ステップS52)。そして、カウンタ処理は、読み出したパッチIDがパラメータとして与えられたパッチIDと一致しているか否かを判定する(ステップS53)。
 一致していないと判定する場合(ステップS53;No)、カウンタ処理は、カウンタDB121の次行のパッチIDを読み出し(ステップS54)、ステップS52に移行する。
 一方、一致していると判定する場合(ステップS53;Yes)、カウンタ処理は、一致していると判定したパッチIDと同じ行のカウンタ値を読み出す(ステップS55)。そして、カウンタ処理は、読み出したカウンタ値を1加算し、カウントをアップする(ステップS56)。そして、カウンタ処理は、カウンタDB121のカウンタ値を加算した値に更新する(ステップS57)。
[実施例に係るパッチデータ適用の手順]
 次に、図6に示すS34~S36のパッチデータ適用の手順を、図9を参照して説明する。図9は、実施例に係るパッチデータ適用の手順を示すフローチャートである。
 まず、カウントアップ判定部112は、電源オフまたは電源オンであるか否かを判定する(ステップS61)。電源オフおよび電源オンでないと判定した場合(ステップS61;No)、カウントアップ判定部112は、電源オフまたは電源オンとなるまで判定を繰り返す。
 一方、電源オフまたは電源オンであると判定した場合(ステップS61;Yes)、カウントアップ判定部112は、カウンタDB121の先頭行を選択する(ステップS62)。そして、カウントアップ判定部112は、選択した先頭行からカウンタ値を読み出す(ステップS63)。
 続いて、カウントアップ判定部112は、読み出したカウンタ値が0であるか否かを判定する(ステップS64)。カウントアップ判定部112によってカウンタ値が0でないと判定された場合(ステップS64;No)、パッチデータ適用部113は、選択した行のパッチIDを読み出す(ステップS65)。そして、パッチデータ適用部113は、読み出したパッチIDと同じ行のパッチデータのオブジェクトをチェックデータの配置先にコピーする(ステップS66)。すなわち、パッチデータ適用部113は、動作していたチェックデータ122をパッチデータ123に置き換える。
 そして、パッチデータ適用部113は、カウンタDB121から読み出したパッチIDと同じパッチIDの行を削除する(ステップS67)。その後、パッチデータ適用部113は、次の行を選択すべく、ステップS69に移行する。
 一方、カウントアップ判定部112によってカウンタ値が0であると判定された場合(ステップS64;Yes)、パッチデータ適用部113は、選択した行が最終行であるか否かを判定する(ステップS68)。選択した行が最終行でないとパッチデータ適用部113によって判定された場合(ステップS68;No)、カウントアップ判定部112は、カウンタDB121の次の行を選択し(ステップS69)、ステップS63に移行する。
 一方、選択した行が最終行であると判定した場合(ステップS68;Yes)、パッチデータ適用部113は、パッチデータ123がOS(Operation System)に係るデータであった場合には、カーネルの再構成を実施する(ステップS70)。なお、パッチデータ123がOSに係るデータでない場合には、カーネルの再構成は実施しなくても良い。
[パッチデータを運用中のオブジェクトに適用する具体例]
 ここで、パッチIDの値が「123456」であるパッチデータを運用中のオブジェクトに適用する具体例について、図10および図11を参照して説明する。図10は、パッチデータの内容の具体例を示す図である。図11は、カウンタDBの状態を説明する図である。なお、運用中のオブジェクトは、「/opt/FJSVabcd/sbin/aaa」に配置されているものとする。
 図10に示すように、パッチデータ123には、パッチIDの値として「123456」、パッケージの名称として「FJSVabcd」が記述されている。オブジェクトの配置先は、チェックデータ122およびパッチデータ123の配置先が記述されている。チェックデータ122の配置先には、「/opt/FJSVabcd/sbin/aaa」が記述され、「aaa」がチェックデータ123のオブジェクト名となっている。
 パッチデータ123の配置先には、「/opt/patch/123456/opt/FJSVabcd/sbin/aaa」が記述され、「aaa」がパッチデータ122のオブジェクト名となっている。すなわち、パッチデータ123の配置先は、「/opt/123456/opt」配下に、本来実行されるべきオブジェクトの配置先が付加された配置先となっている。
 このようなパッチデータ123およびチェックデータ122が情報処理装置10に提供されると、チェックデータ適用部111は、パッチデータ123に記述されたパッチID「123456」に関するカウンタDB121を作成する。図11に示すように、作成直後のカウンタDB121の状態は、パッチIDの値が「123456」であり、チェックデータ122のオブジェクトの配置先として「/opt/FJSVabcd/sbin/aaa」を記憶している。パッチデータ123のオブジェクトの配置先として「/opt/patch/123456/opt/FJSVabcd/sbin/aaa」を記憶し、カウンタ121dの値として初期値の0を記憶している。
 この状態で、チェックデータ適用部111は、チェックデータ122であるオブジェクト「aaa」を実行し、オブジェクト「aaa」内の修正箇所を通過した場合には、カウンタ処理によってカウンタDB121のカウンタ値を1加算させる。その後、電源オフまたは電源オンのタイミングで、パッチデータ適用部113は、カウンタDB121に記憶された、パッチID「123456」に対応するカウンタの値をチェックする。
 ここで、パッチデータ適用部113は、パッチID「123456」に対応するカウンタの値が図11に示すように0である場合には、パッチID「123456」の修正を行っても修正箇所を通過しないので、パッチデータ123を適用しない。しかしながら、パッチデータ適用部113は、パッチID「123456」に対応するカウンタの値が0以外の数である場合には、パッチID「123456」の修正を行うと修正箇所を通過するので、パッチデータ123を適用する。すなわち、パッチデータ適用部113は、チェックデータ122のオブジェクト「aaa」をパッチデータ123のオブジェクト「aaa」に置き換える。
 ところで、上記した実施例では、1個のパッチIDに対して修正があるオブジェクトが1個の場合について説明した。しかしながら、1個のパッチIDに対して修正があるオブジェクトが2個以上の場合であっても、パッチ適用判定処理に変化はない。1個のパッチIDに対して修正があるオブジェクトが2個ある場合のカウンタDB121の状態を、図12を参照して説明する。図12は、1個のパッチIDに対して修正があるオブジェクトが2個ある場合のカウンタDBの状態を説明する図である。
 図12に示すように、作成直後のカウンタDB121の状態は、パッチIDの値が「123456」であり、修正があるオブジェクトが「aaa」、「bbb」の2個ある。そして、パッチID「123456」に対して修正があるオブジェクトが2個あっても、カウンタは1つしか使用されない。したがって、チェックデータ適用部111は、「aaa」および「bbb」のどちらか一方でも、修正箇所を通過した場合には、1つのカウンタ値を1加算させることとなる。
 ここで、パッチID「123456」に対応するカウンタの値が図12に示すように0であるものとする。この場合には、パッチデータ適用部113は、パッチID「123456」の修正を行っても修正箇所を通過しないので、パッチデータ123のオブジェクト「aaa」および「bbb」を適用しない。しかしながら、パッチデータ適用部113は、カウンタ値が0以外の数である場合には、チェックデータ122のオブジェクト「aaa」をパッチデータ123のオブジェクト「aaa」に置き換える。さらに、パッチデータ適用部113は、チェックデータ122のオブジェクト「bbb」をパッチデータ123のオブジェクト「bbb」に置き換える。
[実施例の効果]
 上記実施例によれば、情報処理装置10のチェックデータ適用部111は、運用中のプログラムに修正がある場合、修正箇所を通過するとカウントをアップさせる処理を組み込んだチェックデータ122を運用中のプログラムに組み込む。そして、カウントアップ判定部112は、情報処理装置10上でのプログラム実行によりチェックデータ122が実行されたか否かを、所定のタイミングで、カウンタDBのカウントアップの有無により判定する。さらに、パッチデータ適用部113は、カウントアップ判定部112によってカウントがアップしているパッチ(チェックデータ)適用箇所があると判定された場合、カウントアップが行われたチェックデータ122を、修正箇所を修正した修正済みのプログラム、すなわちパッチデータ123に置き換える。かかる構成によれば、情報処理装置10は、修正箇所を通過するとカウントをアップさせる処理を組み込んだチェックデータ122を実行するようにしたので、カウントを用いることにより修正箇所を通過したか否かを判定できる。このため、情報処理装置10は、修正箇所を通過した場合に、パッチデータ123を適用できるので、パッチデータ123を適用するか否かを適切に判断できる。
 また、上記実施例によれば、パッチデータ適用部113は、カウントアップ判定部112によってカウントがアップしていないと判定された場合、チェックデータ122をパッチデータ123に置き換えない。かかる構成によれば、パッチデータ適用部113は、カウントがアップしていない場合、すなわち修正箇所を通過していない場合にチェックデータ122をパッチデータ123に置き換えないこととした。このため、パッチデータ適用部113は、パッチデータ123を適用しなくても良い場合にまで適用してしまうことによるレベルダウンの発生を未然に防止することができる。
 また、上記実施例によれば、カウントアップ判定部112は、情報処理装置10を停止するタイミングまたは自装置を起動するタイミングで、カウントがアップしているか否かを判定する。かかる構成によれば、カウントアップ判定部112は、カウントがアップしているか否かの判定をプログラムの運用の妨げとならないタイミングにしているので、仮にカウントがアップしている場合には、効率的にパッチデータ123に置き換えることができる。
 なお、実施例では、チェックデータ適用部111は、運用中のプログラムに修正がある場合、修正箇所が実行されると修正箇所が実行された回数を計数させるカウント処理を組み込んだチェックデータ122を運用中のプログラムに適用するものと説明した。そして、チェックデータ122内のカウンタ処理が走行すると、カウンタ処理が、パラメータとして引き渡されるパッチデータ123のパッチIDに対応するカウントをアップさせる。しかしながら、カウンタ処理は、これに限定されず、パラメータとして引き渡されるパッチデータ123のパッチIDに対応するカウントをダウンさせるものとしても良い。この場合、パッチデータ適用部113は、カウント判定部112によってカウントがダウンしていると判定された場合、チェックデータ122を、パッチデータ123に置き換えるようにすれば良い。
[プログラム等]
 なお、情報処理装置10は、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置に、上記した制御部11および記憶部12等の各機能を搭載することによって実現することができる。
 また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、カウントアップ判定部112とパッチデータ適用部113とを1個の部として統合しても良い。一方、チェックデータ適用部111は、チェックデータ321およびパッチデータ322をダウンロードするダウンロード部と、ダウンロードしたチェックデータ321を実行するチェックデータ適用部111とに分散しても良い。また、カウンタDB121等の記憶部12を情報処理装置10の外部装置としてネットワーク経由で接続するようにしても良い。
 また、上記実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図13を用いて、図1に示した情報処理装置10の制御部11と同様の機能を有するパッチ適用判定プログラムを実行するコンピュータの一例を説明する。
 図13は、パッチ適用判定プログラムを実行するコンピュータを示す図である。図13に示すように、コンピュータ1000は、図1に示した情報処理装置10と同じものであり、RAM1010と、ネットワークインタフェース装置1020と、HDD1030と、CPU1040、媒体読取装置1050およびバス1060とを有する。RAM1010、ネットワークインタフェース装置1020、HDD1030、CPU1040、媒体読取装置1050は、バス1060によって接続されている。なお、図1におけるパッチ作成サーバ40やパッチ公開サーバ30も図13と同様の構成を有する情報処理装置により実現できる。
 そして、HDD1030には、図1に示した制御部11と同様の機能を有するパッチ適用判定プログラム1031が記憶される。また、HDD1030には、図1に示したカウンタDB121、チェックデータ122およびパッチデータ123に対応するパッチ適用判定処理関連情報1032が記憶される。
 そして、CPU1040がパッチ適用判定プログラム1031をHDD1030から読み出してRAM1010に展開することにより、パッチ適用判定プログラム1031は、パッチ適用判定プロセス1011として機能するようになる。そして、パッチ適用判定プロセス1011は、パッチ適用判定処理関連情報1032から読み出した情報等を適宜RAM1010上の自身に割り当てられた領域に展開し、この展開したデータ等に基づいて各種データ処理を実行する。
 媒体読取装置1050は、パッチ適用判定プログラム1031がHDD1030に記憶されていない場合であっても、パッチ適用判定プログラム1031を記憶する媒体等からパッチ適用判定プログラム1031を読み取る。媒体読取装置1050には、例えばCD-ROMや光ディスク装置がある。
 ネットワークインタフェース装置1020は、外部装置とネットワーク経由で接続する装置であり、有線に対応するものであっても、無線に対応するものであっても良い。
 なお、上記のパッチ適用判定プログラム1031は、公衆回線、インターネット、LAN、WAN(Wide Area Network)等を介してコンピュータ1000に接続される他のコンピュータ(またはサーバ)等に記憶されるようにしても良い。この場合には、コンピュータ1000がネットワークインタフェース装置1020を介して他のコンピュータ等からパッチ適用判定プログラム1031を読み出して実行する。
 1 計算機システム
 10 情報処理装置
 11 制御部
 111 チェックデータ適用部
 112 カウントアップ判定部
 113 パッチデータ適用部
 12 記憶部
 121 カウンタDB
 122、321 チェックデータ
 123、322 パッチデータ
 20 ネットワーク
 30 パッチ公開サーバ
 31  制御部
 311 パッチ提供部
 32 記憶部
 40 パッチ作成サーバ
 41 制御部
 411 パッチ作成部
 42 記憶部
 421 修正前ソースデータ
 422 修正後ソースデータ

Claims (5)

  1.  運用中のプログラムに修正がある場合、修正箇所が実行されると、修正箇所が実行された回数を計数させる処理を組み込んだ暫定修正プログラムを前記運用中のプログラムに適用するプログラム適用部と、
     前記プログラム適用部によって適用された前記暫定修正プログラムが適用された結果、修正箇所が実行された回数を示すカウントがアップしているか否かを所定のタイミングで判定する判定部と、
     前記判定部によってカウントがアップしていると判定された場合、カウントがアップしていると判定された、修正箇所を含む暫定修正プログラムを、当該修正箇所を修正した修正済みのプログラムに置き換える置換部と
     を有することを特徴とする情報処理装置。
  2.  前記置換部は、
     前記判定部によって前記カウントがアップしていないと判定された場合、前記暫定修正プログラムを、前記修正済みのプログラムに置換しないことを特徴とする請求項1に記載の情報処理装置。
  3.  前記判定部は、
     自装置を停止するタイミングまたは自装置を起動するタイミングで、前記カウントがアップしているか否かを判定することを特徴とする請求項1に記載の情報処理装置。
  4.  コンピュータに、
     運用中のプログラムに修正がある場合、修正箇所が実行されると、修正箇所が実行された回数を計数させる処理を組み込んだ暫定修正プログラムを前記運用中のプログラムに適用し、
     前記暫定修正プログラムが適用された結果、修正箇所が実行された回数を示すカウントがアップしているか否かを所定のタイミングで判定し、
     該判定によってカウントがアップしていると判定された場合、カウントがアップしていると判定された、修正箇所を含む暫定修正プログラムを、当該修正箇所を修正した修正済みのプログラムに置き換える
     処理を実行させる修正適用判定プログラム。
  5.  運用中のプログラムに修正がある場合、修正箇所が実行されると、修正箇所が実行された回数を計数させる処理を組み込んだ暫定修正プログラムを前記運用中のプログラムに適用し、
     前記暫定修正プログラムが適用された結果、修正箇所が実行された回数を示すカウントがアップしているか否かを所定のタイミングで判定し、
     該判定によってカウントがアップしていると判定された場合、カウントがアップしていると判定された、修正箇所を含む暫定修正プログラムを、当該修正箇所を修正した修正済みのプログラムに置き換える
     処理を含むことを特徴とする修正適用判定方法。
PCT/JP2011/056853 2011-03-22 2011-03-22 情報処理装置、修正適用判定プログラムおよび修正適用判定方法 WO2012127635A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013505705A JP5621914B2 (ja) 2011-03-22 2011-03-22 情報処理装置、修正適用判定プログラムおよび修正適用判定方法
PCT/JP2011/056853 WO2012127635A1 (ja) 2011-03-22 2011-03-22 情報処理装置、修正適用判定プログラムおよび修正適用判定方法
US14/032,573 US20140019950A1 (en) 2011-03-22 2013-09-20 Information processing apparatus and method for determining whether a modified program is to be applied

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/056853 WO2012127635A1 (ja) 2011-03-22 2011-03-22 情報処理装置、修正適用判定プログラムおよび修正適用判定方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/032,573 Continuation US20140019950A1 (en) 2011-03-22 2013-09-20 Information processing apparatus and method for determining whether a modified program is to be applied

Publications (1)

Publication Number Publication Date
WO2012127635A1 true WO2012127635A1 (ja) 2012-09-27

Family

ID=46878828

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/056853 WO2012127635A1 (ja) 2011-03-22 2011-03-22 情報処理装置、修正適用判定プログラムおよび修正適用判定方法

Country Status (3)

Country Link
US (1) US20140019950A1 (ja)
JP (1) JP5621914B2 (ja)
WO (1) WO2012127635A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015111067A1 (en) * 2014-01-24 2015-07-30 Hewlett-Packard Development Company, L.P. Dynamically patching kernels using storage data structures
GB2527060B (en) * 2014-06-10 2021-09-01 Arm Ip Ltd Method and device for updating software executed from non-volatile memory

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000010766A (ja) * 1998-06-18 2000-01-14 Fujitsu Ltd プログラム修正抽出適用システムおよび修正抽出適用プログラムを格納した記憶媒体
JP2008198001A (ja) * 2007-02-14 2008-08-28 Hitachi Ltd 修正パッチ選択支援システム及び支援方法
JP2008269394A (ja) * 2007-04-23 2008-11-06 Konica Minolta Business Technologies Inc 画像形成装置、プログラム更新システム、プログラム更新方法およびプログラム更新プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481713A (en) * 1993-05-06 1996-01-02 Apple Computer, Inc. Method and apparatus for patching code residing on a read only memory device
US7114150B2 (en) * 2003-02-13 2006-09-26 International Business Machines Corporation Apparatus and method for dynamic instrumenting of code to minimize system perturbation
US7134121B2 (en) * 2003-06-12 2006-11-07 International Business Machines Corporation Installing fixes based on usage
CN101375252B (zh) * 2006-02-14 2011-06-08 富士通株式会社 补丁应用装置和方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000010766A (ja) * 1998-06-18 2000-01-14 Fujitsu Ltd プログラム修正抽出適用システムおよび修正抽出適用プログラムを格納した記憶媒体
JP2008198001A (ja) * 2007-02-14 2008-08-28 Hitachi Ltd 修正パッチ選択支援システム及び支援方法
JP2008269394A (ja) * 2007-04-23 2008-11-06 Konica Minolta Business Technologies Inc 画像形成装置、プログラム更新システム、プログラム更新方法およびプログラム更新プログラム

Also Published As

Publication number Publication date
JPWO2012127635A1 (ja) 2014-07-24
US20140019950A1 (en) 2014-01-16
JP5621914B2 (ja) 2014-11-12

Similar Documents

Publication Publication Date Title
US9588756B2 (en) Updating software components in a program
US20110320794A1 (en) Flash System And Method For Updating The Flash System
CN107783776B (zh) 固件升级包的处理方法及装置、电子设备
US20120296878A1 (en) File set consistency verification system, file set consistency verification method, and file set consistency verification program
US20170147331A1 (en) Updating software components
US20150067316A1 (en) Electronic device and testing method
WO2016185577A1 (ja) プログラム検証方法、検証プログラム、及び情報処理装置
US8788800B2 (en) OS processing method, system and non-transitory computer readable storage medium thereof
JP5621914B2 (ja) 情報処理装置、修正適用判定プログラムおよび修正適用判定方法
CN103685471B (zh) 一种以独占方式对软件客户端进行更新的方法及系统
US8924951B2 (en) Embedding patch lists within compiled program code
AU2013380500B2 (en) Database device, program, and data processing method
US8205190B2 (en) Data processing system and method
JP5744078B2 (ja) 組み込み機器制御システム、組み込み機器制御装置、及び組み込み機器制御装置の制御方法
CN110928570A (zh) 一种固件升级的方法及装置、可读存储介质
US20110185353A1 (en) Mitigating Problems Arising From Incompatible Software
CN113806139B (zh) 操作系统恢复方法、设备、存储介质及计算机程序产品
US20200341911A1 (en) Method, device, and computer program product for managing storage system
US20180052743A1 (en) Disaster recovery tool
CN104156281B (zh) 一种嵌入式系统中启动磁盘备份的方法及其系统
JP2006018594A (ja) 情報処理装置
JP7411902B1 (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
JP2006139696A (ja) データ復元方法、及びデータ復元プログラム
CN109409040B (zh) 一种操作系统时间可信度的判定方法及装置
US7490232B2 (en) Disk device using disk to rewrite firmware and firmware determination method

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: 11861577

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013505705

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11861577

Country of ref document: EP

Kind code of ref document: A1