INFORMATION PROCESSING APPARATUS AND INFORMATION PROCESSING METHOD
20180011702 · 2018-01-11
Assignee
Inventors
Cpc classification
G06F8/654
PHYSICS
G06F11/20
PHYSICS
G06F11/3604
PHYSICS
International classification
Abstract
An information processing apparatus includes a memory; and a processor coupled to the memory and the processor configured to: generate first information including configuration information and/or interface information of a first program of an old version based on code of the first program of the old version, and generate second information including configuration information and/or interface information of the first program of a new version based on code of the first program of the new version; and generate information on compatibility between the first program of the old version and the first program of the new version based on whether there is a difference between the first information and the second information generated by the processor.
Claims
1. An information processing apparatus comprising: a memory; and a processor coupled to the memory and the processor configured to: generate first information including configuration information and/or interface information of a first program of an old version based on code of the first program of the old version, and generate second information including configuration information and/or interface information of the first program of a new version based on code of the first program of the new version, and generate information on compatibility between the first program of the old version and the first program of the new version based on whether there is a difference between the first information and the second information generated by the processor.
2. The information processing apparatus according to claim 1, wherein the code of the first program of the old version includes code for generating the first information, the code of the first program of the new version includes code for generating the second information, and the processor generates the first information by compiling the code of the first program of the old version, and generates the second information by compiling the code of the first program of the new version.
3. The information processing apparatus according to claim 1, wherein the first information includes information on a number of structures of the first program of the old version, a total size of the structures, and a size of each member and a number of members of each of the structures, and the second information includes information on a number of structures of the first program of the new version, a total size of the structures, and a size of each member and a number of members of each of the structures.
4. The information processing apparatus according to claim 1, wherein the first information includes information on a number of interfaces of the first program of the old version, a total size of the interfaces, and a size of each parameter and a number of parameters of each of the interfaces, and the second information includes information on a number of interfaces of the first program of the new version, a total size of the interfaces and a size of each parameter and a number of parameters of each of the interfaces.
5. The information processing apparatus according to claim 1, wherein the processor is configured to: generate the second information including the information on the interface of the first program of the new version based on the code of the first program of the new version; generate third information including information on an interface of a second program of the new version based on code of the second program of the new version; and generate information on whether to allow update from the old version to the new version based on whether there is a difference between the second information and the third information.
6. The information processing apparatus according to claim 5, wherein the second information includes information on a number of interfaces of the first program of the new version, a total size of the interfaces and a size of each parameter and a number of parameters of each of the interfaces, and the third information includes information on the number of interfaces of the second program of the new version, the total size of the interfaces, and the size of each parameter and the number of parameters of each of the interfaces.
7. An information processing method executed by a computer, comprising: generating first information including information on a configuration information and/or an interface of a first program of an old version based on code of the first program of the old version; generating second information including information on a configuration information and/or an interface of the first program of a new version based on code of the first program of the new version; and generating information on compatibility between the first program of the old version and the first program of the new version based on whether there is a difference between the generated first information and second information.
8. A non-transitory, computer-readable recording medium having stored therein a program for causing a computer to execute a process, the process comprising: generating first information including information on a configuration information and/or an interface of the first program of the old version based on code of the first program of the old version; generating second information including information on a configuration information and/or an interface of the first program of the new version based on code of the first program of the new version; and generating information on compatibility between the first program of the old version and the first program of the new version based on whether there is a difference between the generated first information and the second information.
9. The information processing apparatus according to claim 1, wherein the interface information is information of a communication command format.
10. The information processing apparatus according to claim 1, wherein the configuration information is information of a data format.
Description
BRIEF DESCRIPTION OF DRAWINGS
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038]
[0039]
[0040]
[0041]
[0042]
[0043]
[0044]
[0045]
[0046]
[0047]
[0048]
[0049]
[0050]
[0051]
[0052]
[0053]
[0054]
[0055]
[0056]
[0057]
[0058]
[0059]
[0060]
[0061]
[0062]
[0063]
[0064]
[0065]
[0066]
[0067]
[0068]
[0069]
[0070]
[0071]
[0072]
[0073]
[0074]
DESCRIPTION OF EMBODIMENTS
[0075]
[0076]
[0077] The firmware storage section 101 stores a firmware that the information processing apparatus 1 receives from the firmware provision apparatus 3. In this embodiment, a basic input output system (BIOS) firmware, a maintenance management board (MMB) firmware, and a baseboard management controller (BMC) firmware are received from the firmware provision apparatus 3 when adding and/or modifying a function of a firmware.
[0078] The compile section 102 compiles a firmware stored in the firmware storage section 101 and thereby generates object code and management data. The compile section 102 stores the generated object code into the object code storage section 103 and the generated management data into the management data storage section 104. As the code of the firmware includes code for generating the management data, the management data is generated by compiling the code of the firmware. The code for generating the management data may be added by an administrator of the information processing apparatus 1 to the code of the firmware received by the information processing apparatus 1, or may be included in the code of the firmware provided by the firmware provision apparatus 3.
[0079] The management section 105 executes processing of determining compatibility between firmwares based on data stored in the management data storage section 104. Specifically, the first management section 1051 executes the processing of determining the compatibility based on a configuration of an old version firmware and a configuration of a new version firmware. The second management section 1052 executes the processing of determining the compatibility based on an interface of an old version firmware and an interface of a new version firmware. The new version firmware may include a firmware that is simply updated by adding and/or modifying at least one function. The third management section 1053 executes the processing of determining the compatibility based on an interface of a certain firmware and an interface of another firmware included in one and the same integrated firmware.
[0080] The configuration of the firmware is, for example, a data format of the firmware. The interface of the firmware is, for example, a format of a command for firmware-to-firmware communications.
[0081] The integration section 107 generates an integrated firmware based on object code stored in the object code storage section 103 and compatibility data stored in the compatibility data storage section 106, and stores the generated integrated firmware into the integrated firmware storage section 108. In this embodiment, an integrated firmware including the MMB firmware, the BIOS firmware, and the BMC firmware is generated as illustrated in
[0082] Next, an operation of the information processing apparatus 1 is described with reference to
[0083] First, processing of generating management data from a firmware is described with reference to
[0084] The compile section 102 reads the code of an unprocessed firmware from the firmware storage section 101 (step S1 of
[0085] The compile section 102 compiles the code of the firmware read in step S1 and thereby generates the object code and management data for the configuration and interface (step S3). The compile section 102 stores the generated object code into the object code storage section 103 and the generated management data into the management data storage section 104.
[0086]
[0087]
[0088] As illustrated in
[0089] As illustrated in
[0090] Returning to
[0091] If the management data is generated in building of binary data as described above, the management data may be used in later processing.
[0092] Next, processing executed by the first management section 1051 is described with reference to
[0093] The first management section 1051 sets compatibility data of the configuration of the target firmware stored in the compatibility data storage section 106 to “Yes” (step S11 of
[0094]
[0095] The first management section 1051 sets a counter C indicating the configuration information ID to C=1 (step S13).
[0096] For a target firmware, the first management section 1051 reads the management data of the new version firmware and the management data of the old version firmware from the management data storage section 104 (step S15).
[0097] The first management section 1051 determines whether the number of configuration information IDs of the new version firmware and the number of configuration information IDs of the old version firmware match each other (step S17). Here, the number of configuration information IDs is denoted by N.
[0098] When the number N of configuration information IDs of the new version firmware and the number N of configuration information IDs of the old version firmware do not match each other (step S17: No), the new version firmware and the old version firmware are incompatible with each other (in other words, a failure may occur if on-line update from the old version to the new version is performed). Therefore, the processing is advanced to step S29 of
[0099] On the other hand, when the number N of configuration information IDs of the new version firmware and the number N of configuration information IDs of the old version firmware match each other (step S17: Yes), the first management section 1051 determines whether the total size of all configuration information of the new version firmware and the total size of all configuration information of the old version firmware match each other (step S19). Here, the total size of all configuration information is denoted by S.
[0100] When the total size S of all configuration information of the new version firmware and the total size S of all configuration information of the old version firmware do not match each other (step S19: No), the new version firmware and the old version firmware are incompatible with each other (in other words, a failure may occur if on-line update from the old version to the new version is performed). Therefore, the processing is advanced to step S29 of
[0101] On the other hand, when the total size S of all configuration information of the new version firmware and the total size S of all configuration information of the old version firmware match each other (step S19: Yes), the processing is advanced to step S21 of
[0102] Referring to
[0103] The first management section 1051 determines whether the number of new version members and the number of old version members match each other for the configuration information indicated by the counter C (for example, configuration information 1 when the value of the counter C is 1) (step S23). Here, the number of members is denoted by n.
[0104] When the number n of new version members and the number n of old version members do not match each other (step S23: No), the new version firmware and the old version firmware are incompatible with each other (in other words, a failure may occur if on-line update from the old version to the new version is performed). Thus, the processing is advanced to step S29.
[0105] On the other hand, when the number n of new version members and the number n of old version members match each other (step S23: Yes), the first management section 1051 determines whether the size of the new version configuration information and the size of the old version configuration information match each other for the configuration information indicated by the counter C (step S25). Here, the size of configuration information is denoted by s.
[0106] When the size s of the new version configuration information and the size s of the old version configuration information do not match each other (step S25: No), the new version firmware and the old version firmware are incompatible with each other (in other words, a failure may occur if on-line update from the old version to the new version is performed). Thus, the processing is advanced to step S29.
[0107] When the size s of the new version configuration information and the size s of the old version configuration information match each other (step S25: Yes), the first management section 1051 determines whether the size of the old version member indicated by the counter c and the size of the new version member indicated by the counter c match each other for the configuration information indicated by the counter C (step S27).
[0108] When the size of the old version member indicated by the counter c and the size of the new version member indicated by the counter c do not match each other for the configuration information indicated by the counter C (step S27: No), the first management section 1051 sets the compatibility data of the configuration of the target firmware stored in the compatibility data storage section 106 to “no” (step S29). Then, the processing is terminated.
[0109] On the other hand, when the size of the old version member indicated by the counter c and the size of the new version member indicated by the counter c match each other for the configuration information indicated by the counter C (step S27: Yes), the first management section 1051 determines whether c==n holds (that is, c is equal to n) (step S31).
[0110] When c==n does not hold (step S31: No), the first management section 1051 increments the value of the counter c by 1 (step S33). Then, the processing returns to step S27.
[0111] On the other hand, when c==n holds (step S31: Yes), the first management section 1051 determines whether C==N holds (that is, C is equal to N) (step S35).
[0112] When C==N does not hold (step S35: No), the first management section 1051 increments the counter C by 1 (step S37). Then, the processing returns to step S21. On the other hand, when C==N holds (step S35: Yes), the processing is terminated.
[0113] Thus, when the configuration of the new version firmware and the configuration of the old version firmware do not match each other, the compatibility data indicating configuration incompatibility is generated as described above.
[0114] Next, processing executed by the second management section 1052 is described with reference to
[0115] The second management section 1052 sets the compatibility data of an interface of the target firmware stored in the compatibility data storage section 106 to “yes” (step S41 of
[0116]
[0117] The second management section 1052 sets a counter C indicating the interface ID to C=1 (step S43).
[0118] For the target firmware, the second management section 1052 reads the management data of the new version firmware and the management data of the old version firmware from the management data storage section 104 (step S45).
[0119] The second management section 1052 determines whether the number of interface IDs of the new version firmware and the number of interface IDs of the old version firmware match each other (step S47). Here, the number of interface IDs is denoted by N.
[0120] When the number N of interface IDs of the new version firmware and the number N of interface IDs of the old version firmware do not match each other (step S47: No), the new version firmware and the old version firmware are incompatible with each other (in other words, a failure may occur if on-line update from the old version to the new version is performed). Thus, the processing is advanced to step S59 of
[0121] On the other hand, when the number N of interface IDs of the new version firmware and the number N of interface IDs of the old version firmware match each other (step S47: Yes), the second management section 1052 determines whether the total size of parameters of all interfaces of the new version firmware and the total size of parameters of all interfaces of the old version firmware match each other (step S49). Here, the total size of parameters of all interfaces is denoted by S.
[0122] When the total size S of parameters of all interfaces of the new version firmware and the total size S of parameters of all interfaces of the old version firmware do not match each other (step S49: No), the new version firmware and the old version firmware are incompatible with each other (in other words, a failure may occur if on-line update from the old version to the new version is performed). Thus, the processing is advanced to step S59 of
[0123] On the other hand, when the total size S of parameters of all interfaces of the new version firmware and the total size S of parameters of all interfaces of the old version firmware match each other (step S49: Yes), the processing is advanced to step S51 of
[0124] Referring to
[0125] The second management section 1052 determines whether the number n of new version parameters and the number n of old version parameters match each other for the interface indicated by the counter C (for example, an interface 1 when the value of the counter C is 1) (step S53). Here, the number of parameters is denoted by n.
[0126] When the number n of new version parameters and the number n of old version parameters do not match each other (step S53: No), the new version firmware and the old version firmware are incompatible with each other (in other words, a failure may occur if on-line update from the old version to the new version is performed). Thus, the processing is advanced to step S59.
[0127] On the other hand, when the number n of new version parameters and the number n of old version parameters match each other (step S53: Yes), the second management section 1052 determines whether the total size of new version parameters and the total size of old version parameters match each other for the interface indicated by the counter C (step S55). Here, the total size of parameters is denoted by s.
[0128] When the total size s of new version parameters and the total size s of old version parameters do not match each other (step S55: No), the new version firmware and the old version firmware are incompatible with each other (in other words, a failure may occur if on-line update from the old version to the new version is performed). Thus, the processing is advanced to step S59.
[0129] On the other hand, when the total size s of new version parameters and the total size s of old version parameters match each other (step S55: Yes), the second management section 1052 determines whether the size of the old version parameter indicated by the counter c and the size of the new version parameter indicated by the counter c match each other for the interface indicated by the counter C (step S57). In step S57, it is determined that there is a difference when the size of at least one parameter is different between the old and new versions.
[0130] When the size of the old version parameter indicated by the counter c and the size of the new version parameter indicated by the counter c do not match each other for the interface indicated by the counter C (step S57: No), the second management section 1052 sets the compatibility data of the interface of the target firmware stored in the compatibility data storage section 106 to “no” (step S59). Then, the processing is terminated.
[0131] On the other hand, when the size of the old version parameter indicated by the counter c and the size of the new version parameter indicated by the counter c match each other for the interface indicated by the counter C (step S57: Yes), the second management section 1052 determines whether c==n holds (that is, c is equal to n) (step S61).
[0132] When c==n does not hold (step S61: No), the second management section 1052 increments the value of the counter c by 1 (step S63). Then, the processing returns to step S57.
[0133] On the other hand, when c==n holds (step S61: Yes), the second management section 1052 determines whether C==N holds (that is, C is equal to N) (step S65).
[0134] When C==N does not hold (step S65: No), the second management section 1052 increments the counter C by 1 (step S67). Then, the processing returns to step S51. On the other hand, when C==N holds (step S65: Yes), the processing is terminated.
[0135] As above, when the interface of the new-version firmware and the interface of the old-version firmware do not match each other, compatibility data indicating interface incompatibility is generated.
[0136] Next, processing executed by the third management section 1053 is described with reference to
[0137] The third management section 1053 sets the compatibility data stored in the compatibility data storage section 106 and indicating interface compatibility for the combination with target firmwares to “yes” (step S71 of
[0138]
[0139] The third management section 1053 sets a comparison source counter C indicating a comparison source interface to C=1, and sets a comparison destination counter SC indicating a comparison destination interface to SC=1 (step S73).
[0140] The third management section 1053 identifies the ID of the interface (hereinafter referred to as a comparison source interface) indicated by the comparison source counter C from the management data storage section 104 (step S75).
[0141] The third management section 1053 identifies the ID of the interface (hereinafter referred to as a comparison destination interface) indicated by the comparison destination counter SC from the management data storage section 104 (step S77).
[0142] The third management section 1053 determines whether the ID of the comparison source interface and the ID of the comparison destination interface match each other (step S79).
[0143] When the ID of the comparison source interface and the ID of the comparison destination interface do not match each other (step S79: No), the third management section 1053 determines whether SC==N holds (step S81). Here, N denotes the number of interface IDs.
[0144] When SC==N does not hold (step S81: No), the third management section 1053 increments the comparison destination counter SC by 1 (step S83). Then, the processing returns to step S77. On the other hand, when SC==N holds (step S81: Yes), the processing is advanced to step S99 of
[0145] On the other hand, when the ID of the comparison source interface and the ID of the comparison destination interface match each other (step S79: Yes), the third management section 1053 sets the counter c indicating a parameter to c=1 (step S85). The processing is advanced to step S87 of
[0146] Referring to
[0147] When the number n of parameters of the comparison source interface and the number n of parameters of the comparison destination interface do not match each other (step S87: No), the processing is advanced to step S93.
[0148] On the other hand, when the number n of parameters of the comparison source interface and the number n of parameters of the comparison destination interface match each other (step S87: Yes), the third management section 1053 determines whether the total size of parameters of the comparison source interface and the total size parameters of the comparison destination interface match each other (step S89). Here, the total size of parameters is denoted by s.
[0149] When the total size s of parameters of the comparison source interface and the total size s of parameters of the comparison destination interface do not match each other (step S89: No), the processing is advanced to step S93.
[0150] On the other hand, when the total size s of parameters of the comparison source interface and the total size s of parameters of the comparison destination interface match each other (step S89: Yes), the third management section 1053 determines whether the size of the parameter indicated by the counter c among the parameters of the comparison source interface and the size of the parameter indicated by the counter c among the parameters of the comparison destination interface match each other (step S91).
[0151] When the size of the parameter indicated by the counter c among the parameters of the comparison source interface and the size of the parameter indicated by the counter c among the parameters of the comparison destination interface do not match each other (step S91: No), the third management section 1053 sets the compatibility data stored in the compatibility data storage section 106 and indicating interface compatibility for the pair of the target firmwares to “no” (step S93). Then, the processing is terminated.
[0152] On the other hand, when the size of the parameter indicated by the counter c among the parameters of the comparison source interface and the size of the parameter indicated by the counter c among the parameters of the comparison destination interface match each other (step S91: Yes), the third management section 1053 determines whether c==n holds (step S95).
[0153] When c==n does not hold (step S95: No), the third management section 1053 increments the counter c by 1 (step S97). Then, the processing returns to step S91.
[0154] On the other hand, when c==n holds (step S95: Yes), the third management section 1053 sets the counter SC to SC=1 (that is, initialization) (step S99).
[0155] The third management section 1053 determines whether C==N holds (step S101). When C==N does not hold (step S101: No), the third management section 1053 increments the counter C by 1 (step S103). The processing returns to step S75 of
[0156] As above, when there is a possibility that a problem may occur in the communication between firmwares after on-line update, compatibility data indicating interface incompatibility is generated.
[0157] Next, processing executed by the integration section 107 is described with reference to
[0158] First, the integration section 107 reads sets of object code of a new version BIOS firmware, a new version MMB firmware, and a new version BMC firmware from the object code storage section 103 (step S201 of
[0159] The integration section 107 generates a header including information of a list of firmwares to be integrated (step S203).
[0160] The integration section 107 reads the compatibility data (compatibility data generated in the processing by the first management section 1051 and the third management section 1053) for the new version BIOS firmware, new version MMB firmware, and new version BMC firmware from the compatibility data storage section 106 (step S205).
[0161] The integration section 107 generates an integrated firmware including the sets of object code read in step S201, the header generated in step S203, and the compatibility data read in step S205 (step S207). Then, the integration section 107 stores the generated integrated firmware into the integrated firmware storage section 108. Then, the processing is terminated.
[0162] Execution of the above processing makes it possible to determine whether to preform on-line update based on the generated integrated firmware. In this embodiment, if the compatibility data set to “no” exists, a failure may occur and therefore it is unfavorable to perform on-line update.
[0163] In the second embodiment, processing executed by the first management section 1051 is described by using an example of more specific configuration information than the configuration information illustrated in the first embodiment. A basic operation of the first management section 1051 in the second embodiment is the same as in the first embodiment.
[0164]
[0165]
[0166] Next, processing executed by the first management section 1051 is described with reference to
[0167] The first management section 1051 sets the compatibility data for the configuration of the target firmware stored in the compatibility data storage section 106 to “yes” (step S111 of
[0168] The first management section 1051 sets a counter C indicating a configuration information ID to C=1 (step S113).
[0169] For the target firmware, the first management section 1051 reads the management data of the new version firmware and the management data of the old version firmware from the management data storage section 104. Then, the first management section 1051 determines whether the number C_N of configuration information IDs of the new version firmware and the number C_N of configuration information IDs of the old version firmware match each other (step S115).
[0170] When the number C_N of configuration information IDs of the new version firmware and the number C_N of configuration information IDs of the old version firmware do not match each other (step S115: No), the new version firmware and the old version firmware are incompatible with each other (in other words, a failure may occur if on-line update from the old version to the new version is performed). Thus, the processing is advanced to step S129 of
[0171] On the other hand, when the number C_N of configuration information IDs of the new version firmware and the number C_N of configuration information IDs of the old version firmware match each other (step S115: Yes), the first management section 1051 determines whether the total size C_S of all configuration information of the new version firmware and the total size C_S of all configuration information of the old version firmware match each other (step S117).
[0172] When the total size C_S of all configuration information of the new version firmware and the total size C_S of all configuration information of the old version firmware do not match each other (step S117: No), the new version firmware and the old version firmware are incompatible with each other (in other words, a failure may occur if on-line update from the old version to the new version is performed). Thus, the processing is advanced to step S129 of
[0173] On the other hand, when the total size C_S of all configuration information of the new version firmware and the total size C_S of all configuration information of the old version firmware match each other (step S117: Yes), the processing is advanced to step S119 of
[0174] Referring to
[0175] The first management section 1051 determines whether the number c_n of new version items and the number c_n of old version items match each other for the configuration information indicated by the counter C (for example, NETWORK_INTERFACE_STRUCT 1 when the value of the counter C is 1) (step S123).
[0176] When the number c_n of new version items and the number c_n of old version items do not match each other (step S123: No), the new version firmware and the old version firmware are incompatible with each other (in other words, a failure may occur if on-line update from the old version to the new version is performed). Thus, the processing is advanced to step S129.
[0177] On the other hand, when the number c_n of new version items and the number c_n of old version items match each other (step S123: Yes), the first management section 1051 determines whether the size c_s of new version configuration information and the size c_s of old version configuration information match each other for the configuration information indicated by the counter C (step S125). Here, the size of configuration information is denoted by c_s.
[0178] When the size c_s of the new version configuration information and the size c_s of old version configuration information do not match each other (step S125: No), the new version firmware and the old version firmware are incompatible with each other (in other words, a failure may occur if on-line update from the old version to the new version is performed). Thus, the processing is advanced to step S129.
[0179] When the size c_s of the new version configuration information and the size c_s of the old version configuration information match each other (step S125: Yes), the first management section 1051 determines whether the size of the new version item indicated by the counter c and the size of the old version item indicated by the counter c match each other for the configuration information indicated by the counter C (step S127).
[0180] When the size of the new version item indicated by the counter c and the size of the old version item indicated by the counter c do not match each other for the configuration information indicated by the counter C (step S127: No), the first management section 1051 sets the compatibility data for the configuration of the target firmware stored in the compatibility data storage section 106 to “no” (step S129). Then, the processing is terminated.
[0181] On the other hand, when the size of the new version item indicated by the counter c and the size of the old version item indicated by the counter c match each other for the configuration information indicated by the counter C (step S127: Yes), the first management section 1051 determines whether c==c_n holds (that is, c is equal to c_n) (step S131).
[0182] When c==c_n does not hold (step S131: No), the first management section 1051 increments the value of the counter c by 1 (step S133). Then, the processing returns to step S127.
[0183] On the other hand, when c==c_n holds (step S131: Yes), the first management section 1051 determines whether C==C_N holds (that is, C is equal to C_N) (step S135).
[0184] When C==C_N does not hold (step S135: No), the first management section 1051 increments the counter C by 1 (step S137). Then, the processing returns to step S119. On the other hand, when C==C_N holds (step S135: Yes), the processing is terminated.
[0185]
[0186]
[0187] Assume that NTP_SERVER_NUM is revised from 3 to 4 as illustrated in
[0188] Thus, according to this embodiment, when the total size of all configuration information is revised, the revision thereof is detected.
[0189] Assume that NTP_SERVER_NUM is revised from 3 to 4, and reserve2 [208] is revised to reserve2 [204], as illustrated in
[0190] Thus, according to this embodiment, even if the total size of all configuration information is not revised, but if the size of any item (or member) is revised, the revision thereof is detected.
[0191] Assume that DATE_TIME_STRUCT_num is revised from 6 to 7, the item “timeZoneId” is added, and reserve2 [208] is revised to reserve2 [206], as illustrated in
[0192] Thus, according to this embodiment, even if the total size of all configuration information is not revised, but if the number of items is revised, it is determined that there is a difference in the configuration information.
[0193] In the third embodiment, processing executed by the second management section 1052 is described by using an example of more specific interface than the interface illustrated in the first embodiment. A basic operation of the second management section 1052 in the third embodiment is the same as in the first embodiment.
[0194]
[0195]
[0196] Next, processing executed by the second management section 1052 is described with reference to
[0197] The second management section 1052 determines whether the compatibility data for the interface of the target firmware stored in the compatibility data storage section 106 is set to “yes” (step S141 of
[0198] When compatibility data for the interface of the target firmware stored in the compatibility data storage section 106 is not set to “yes” (step S141: No), the new version firmware and the old version firmware are incompatible with each other (in other words, a failure may occur if on-line update from the old version to the new version is performed). Thus, the processing is advanced to
[0199] When compatibility data for the interface of the target firmware stored in the compatibility data storage section 106 is set to “yes” (step S141: Yes), the second management section 1052 sets a counter C indicating the interface ID to C=1 (step S143).
[0200] The second management section 1052 reads the management data of the new version firmware and the management data of the old version firmware from the management data storage section 104 for the target firmware (step S145).
[0201] The second management section 1052 determines whether the number F_N of interfaces IDs of the new version firmware and the number F_N of interface IDs of the old version firmware match each other (step S147).
[0202] When the number F_N of interface IDs of the new version firmware and the number F_N of interface IDs of the old version firmware do not match each other (step S147: No), the new version firmware and the old version firmware are incompatible with each other (in other words, a failure may occur if on-line update from the old version to the new version is performed). Thus, the processing is advanced to step S169 of
[0203] On the other hand, when the number F_N of interface IDs of the new version firmware and the number F_N of interface IDs of the old version firmware match each other (step S147: Yes), the second management section 1052 determines whether the total size F_S of parameters of all interfaces of the new version firmware and the total size F_S of parameters of all interfaces of the old version firmware match each other (step S149).
[0204] When the total size F_S of parameters of all interfaces of the new version firmware and the total size F_S of parameters of all interfaces of the old version firmware do not match each other (step S149: No), the new version firmware and the old version firmware are incompatible with each other (in other words, a failure may occur if on-line update from the old version to the new version is performed). Thus, the processing is advanced to step S169 of
[0205] On the other hand, when the total size F_S of parameters of all interfaces of the new version firmware and the total size F_S of parameters of all interfaces of the old version firmware match each other (step S149: Yes), the second management section 1052 set a counter c.sub.1 indicating request data to c.sub.1=1, and sets a counter c.sub.2 indicating response data to c.sub.2=1 (step S151).
[0206] The second management section 1052 determines whether the number f_n.sub.1 of fields of the new version request data and the number f_n.sub.1 of fields of the old version request data match each other for the interface indicated by the counter C (for example, Get Device ID when the value of the counter C is 1) (step S153).
[0207] When the number f_n.sub.1 of fields of the new version request data and the number f_n.sub.1 of fields of the old version request data do not match each other for the interface indicated by the counter C (step S153: No), the processing is advanced to step S169 of
[0208] On the other hand, when the number f_n.sub.1 of fields of the new version request data and the number f_n.sub.1 of fields of the old version request data match each other for the interface indicated by the counter C (step S153: Yes), the second management section 1052 determines whether the size f_s.sub.1 of the new version request data and the size f_s.sub.1 of the old version request data match each other for the interface indicated by the counter C (step S155).
[0209] When the size f_s.sub.1 of the new version request data and the size f_s.sub.1 of the old version request data do not match each other for the interface indicated by the counter C (step S155: No), the processing is advanced to step S169 of
[0210] On the other hand, when the size f_s.sub.1 of the new version request data and the size f_s.sub.1 of the old version request data match each other for the interface indicated by the counter C (step S155: Yes), the processing is advanced to step S157 of
[0211] Referring to
[0212] When the data size of the old version field indicated by the counter c.sub.1 and the data size of the new version field indicated by the counter c.sub.1 do not match each other for the interface indicated by the counter C (step S157: No), the processing is advanced to step S169.
[0213] On the other hand, when the data size of the old version field indicated by the counter c.sub.1 and the data size of the new version field indicated by the counter c.sub.1 match each other for the interface indicated by the counter C (step S157: Yes), the second management section 1052 determines whether c.sub.1=f_n.sub.1 holds (that is, c.sub.1 is equal to f_n.sub.1) (step S159).
[0214] When c.sub.1==f_n.sub.1 does not hold (step S159: No), the second management section 1052 increments the counter c.sub.1 by 1 (step S161). Then, the processing returns to step S157.
[0215] On the other hand, when c.sub.1==f_n.sub.1 holds (step S159: Yes), the second management section 1052 determines whether the number f_n.sub.2 of fields of the new version response data and the number f_n.sub.2 of fields of the old version response data match each other for the interface indicated by the counter C (step S163).
[0216] When the number f_n.sub.2 of fields of the new version response data and the number f_n.sub.2 of fields of the old version response data do not match each other for the interface indicated by the counter C (step S163: No), the processing is advanced to step S169.
[0217] On the other hand, when the number f_n.sub.2 of fields of the new version response data and the number f_n.sub.2 of fields of the old version response data match each other for the interface indicated by the counter C (step S163: Yes), the second management section 1052 determines whether the size f_s.sub.2 of the new version response data and the size f_s.sub.2 of the old version response data match each other for the interface indicated by the counter C (step S165).
[0218] When the size f_s.sub.2 of the new version response data and the size f_s.sub.2 of the old version response data do not match each other for the interface indicated by the counter C (step S165: No), the processing is advanced to step S169.
[0219] On the other hand, when the size f_s.sub.2 of the new version response data and the size f_s.sub.2 of the old version response data match each other for the interface indicated by the counter C (step S165: Yes), the second management section 1052 determines whether the data size of the old version field indicated by the counter c.sub.2 and the data size of the new version field indicated by the counter c.sub.2 match each other for the interface indicated by the counter C (step S167).
[0220] When the data size of the old version field indicated by the counter c.sub.2 and the data size of the new version field indicated by the counter c.sub.2 do not match each other for the interface indicated by the counter C (step S167: No), the second management section 1052 sets the compatibility data for the interface of the target firmware stored in the compatibility data storage section 106 to “no” (step S169). Then, the processing is terminated.
[0221] On the other hand, when the data size of the old version field indicated by the counter c.sub.2 and the data size of the new version field indicated by the counter c.sub.2 match each other for the interface indicated by the counter C (step S167: Yes), the second management section 1052 determines whether c.sub.2==f_n.sub.2 holds (that is, c.sub.2 is equal to f_n.sub.2) (step S171).
[0222] When c.sub.2==f_n.sub.2 does not hold (step S171: No), the second management section 1052 increments the counter c.sub.2 by 1 (step S173). Then, the processing returns to step S167.
[0223] On the other hand, when c.sub.2==f_n.sub.2 holds (step S171: Yes), the second management section 1052 determines whether C==F_N holds (that is, C is equal to F_N) (step S175).
[0224] When C==F_N does not hold (step S175: No), the second management section 1052 increments the counter C by 1 (step S177). Then, the processing returns to step S151 of
[0225]
[0226]
[0227] Assume that auxiliaryFirmRevisionInfo [4] is revised to auxiliaryFirmRevisionInfo [6], as illustrated in
[0228] Thus, according to this embodiment, when the total data size of parameters is revised, the revision thereof is detected.
[0229] Also, assume that ManufacturerID [3] is revised to ManufacturerID [2], and auxiliaryFirmRevisionInfo [4] is revised to auxiliaryFirmRevisionInfo [5], as illustrated in
[0230] Thus, according to this embodiment, even if the total data size of parameters is not revised, but if the data size of any parameter is revised, the revision thereof is detected.
[0231] Also, assume that the size of GetDeviceID_ResponseNum is revised from 9 to 10, auxiliaryFirmRevisionInfo [4] is revised to auxiliaryFirmRevisionInfo [3], and a field “additionalInfo” is added, as illustrated in
[0232] Thus, according to this embodiment, even if the total data size of parameters is not revised, but if the number of parameters is revised, it is determined that there is a difference in the configuration information.
[0233] Although the embodiments of the present disclosure are described above, the present disclosure is not limited thereto. For example, the functional block configuration of the information processing apparatus 1 described above may be different from an actual program modular configuration.
[0234] Also, the data configuration described above is just an example, and is not limited thereto. Further, even in the process flow, the order of steps in processing may be changed as far as the change does not cause a change of the processing result. Further, processing may be executed in parallel.
[0235] The information processing apparatus 1 described above is a computer apparatus in which, as illustrated in
[0236] The embodiments of the present disclosure discussed above are summarized below.
[0237] The information processing apparatus according to an embodiment includes (A) a first generation section (for example, the compile section 102) configured to generate first information including information on a configuration and/or an interface of a first program (for example, a firmware) of an old version based on the code of the first program of the old version, and generate second information including information of the configuration and/or the interface of the first program of a new version based on the code of the first program of the new version, and (B) a second generation section (for example, the first management section 1051 and the second management section 1052) configured to generate information of compatibility between the first program of the old version and the first program of the new version based on whether there is a difference between the first information and the second information generated by the first generation section.
[0238] If the configuration or interface is revised, a failure (for example, hang-up) may occur in execution of the program. However, the processing described above makes it possible to check the compatibility.
[0239] The code of the first program of the old version may include code for generating the first information, and the code of the first program of the new version may include code for generating the second information. Then, the first generation section may (a1) generate the first information by compiling the code of the first program of the old version, and generate the second information by compiling the code of the first program of the new version. As the first and second information is generated when compiling, determination may be made in a simple manner.
[0240] The first information may include information of the number of structures of the first program of the old version, the total size of the structures, and the size of each member, and the number of members of each of the structures, and the second information may include information of the number of structures of the first program of the new version, the total size of the structures, and the size of each member and the number of members of each of the structures. Thus, revision of the configuration may be detected in an appropriate manner.
[0241] Also, the first information may include information on the number of interfaces of the first program of the old version, the total size of the interfaces, and the size of each parameter and the number of parameters of each of the interfaces, and the second information may include information on the number of interfaces of the first program of the new version, the total size of the interfaces and the size of each parameter and the number of parameters of each of the interfaces. Thus, revision of an interface may be detected in an appropriate manner.
[0242] Also, the first generation section may (a2) generate the second information including information of the interface of the first program of the new version based on the code of the first program of the new version, and may (a2) generate third information including information of an interface of a second program of the new version based on the code of the second program of the new version. Then, the information processing apparatus may further include (C) a third generation section (for example, the third management section 1053) configured to generate information on whether to allow update from the old version to the new version based on whether there is a difference between the second information and the third information. When there is a difference in an interface between programs, communications between the programs may be impossible, and in this case, the updating from the old version to the new version is not to be allowed. Thus, by using the processing discussed above, whether to allow update may be determined from the aspect of the interface between new version programs.
[0243] Also, the second information may include information on the number of interfaces of the first program of the new version, the total size of the interfaces and the size of each parameter and the number of parameters of each of the interfaces, and the third information may include information on the number of interfaces of the second program of the new version, the total size of the interfaces, and the size of each parameter and the number of parameters of each of the interfaces. Thus, revision of an interface may be detected in an appropriate manner.
[0244] An information processing method according to a second aspect of this embodiment includes (D) generating first information including information of a configuration and/or an interface of a first program of an old version based on code of the first program of the old version, (E) generating second information including information of the configuration and/or the interface of the first program of a new version based on the code of the first program of the new version, and (F) generating information of the compatibility between the first program of the old version and first program of the new version based on whether there is a difference between the generated first information and second information.
[0245] A program causing a processor to execute processing according to the above method may be created, and the program may be stored, for example, in a computer readable storage medium or storage device such as a flexible disk, a CD-ROM, an optical magnetic disk, a semiconductor memory, and hard disk. Intermediate processing results may be temporarily stored in a storage device such as a main memory.
[0246] All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.