WO2024157393A1 - 情報処理装置、情報処理方法、及びプログラム - Google Patents
情報処理装置、情報処理方法、及びプログラム Download PDFInfo
- Publication number
- WO2024157393A1 WO2024157393A1 PCT/JP2023/002266 JP2023002266W WO2024157393A1 WO 2024157393 A1 WO2024157393 A1 WO 2024157393A1 JP 2023002266 W JP2023002266 W JP 2023002266W WO 2024157393 A1 WO2024157393 A1 WO 2024157393A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- information processing
- processing device
- additional function
- additional
- program
- Prior art date
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 170
- 238000003672 processing method Methods 0.000 title claims description 6
- 238000000034 method Methods 0.000 claims description 47
- 230000004044 response Effects 0.000 claims description 6
- 239000000758 substrate Substances 0.000 claims description 3
- 230000006870 function Effects 0.000 description 157
- 238000012545 processing Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 10
- 101150005267 Add1 gene Proteins 0.000 description 8
- 101150060298 add2 gene Proteins 0.000 description 5
- 238000004891 communication Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Definitions
- the present invention relates to an information processing device, an information processing method, and a program.
- Upgrading software installed in a device can add functions supported by the device and services provided by the device (for example, see Patent Document 1).
- a function added in this way is the function of implementing a billing scheme.
- a billing scheme for example, the execution of some processes in the device is restricted according to the billing status, and the process cannot be executed if no billing has been applied, but can be executed if billing has been applied.
- the execution time of a specific process is measured so that a fee equivalent to the time it was executed can be collected in the form of a billing fee.
- Such a billing scheme is applied, for example, to a business model in which highly functional devices are sold at low prices to promote sales, and funds are then collected according to subsequent billing.
- the present invention aims to provide an information processing device, information processing method, and program that can handle the situation where, when a function is added by upgrading software installed in an electronic device or other device, the added function can no longer be executed due to a replacement of the board or downgrading of the software.
- One aspect of the present invention is an information processing device that includes a main board and a sub-board capable of communicating with the main board, the sub-board having a sub-storage unit that stores additional information indicating whether an additional function corresponding to an update of a program executed on the main board has been added or not, and the main board has a main storage unit that stores the program, an acquisition unit that acquires the additional information stored on the sub-board when the information processing device is started, and an operation control unit that controls the operation of the information processing device to be restricted when the additional information acquired by the acquisition unit indicates that the additional function has been added and it is determined that the additional function is not supported based on the version of the program.
- Another aspect of the present invention is an information processing method performed by a computer that is an information processing device that includes a main board and a sub-board capable of communicating with the main board, the sub-board having a sub-storage unit that stores additional information indicating whether an additional function corresponding to an update of a program executed on the main board has been added or not, and the main board has a main storage unit that stores the program, in which an acquisition unit of the main board acquires the additional information stored on the sub-board when the information processing device is started up, and an operation control unit of the main board controls the operation of the information processing device to be restricted when the additional information acquired by the acquisition unit indicates that the additional function has been added and the additional function is determined to be not supported based on the version of the program.
- Another aspect of the present invention is a program that causes a computer, which is an information processing device having a main board and a sub-board capable of communicating with the main board, the sub-board having a sub-storage unit that stores additional information indicating whether an additional function corresponding to an update of a program executed on the main board has been added or not, and the main board having a main storage unit that stores the program, to acquire the additional information stored on the sub-board when the information processing device is started up, and if the acquired additional information indicates that the additional function has been added and it is determined that the additional function is not supported based on the version of the program, the program causes the operation of the information processing device to be restricted.
- a computer which is an information processing device having a main board and a sub-board capable of communicating with the main board, the sub-board having a sub-storage unit that stores additional information indicating whether an additional function corresponding to an update of a program executed on the main board has been added or not, and the main board having a main storage unit that stores the program,
- the present invention can deal with cases where, when functions are added by upgrading software installed in a device such as an electronic device, the added functions are no longer executed when the board is replaced or the software is downgraded.
- FIG. 2 is a diagram illustrating an example of a hardware configuration of an information processing device according to an embodiment.
- 5A to 5C are diagrams illustrating an example of information stored in a sub-board in the first embodiment.
- FIG. 11 is a diagram showing an example of additional information in the first embodiment.
- 5 is a flowchart showing a flow of processing performed by an operation control unit in the first embodiment.
- 5 is a flowchart showing a flow of processing performed by an operation control unit in the first embodiment.
- FIG. 1 is a diagram illustrating a basic configuration of an information processing device according to an embodiment.
- 13A and 13B are diagrams illustrating an example of information stored on a sub-board in the second embodiment.
- FIG. 11 is a diagram showing an example of additional information in the second embodiment.
- 10 is a flowchart showing a flow of processing performed by an operation control unit in the second embodiment.
- 10 is a flowchart showing a flow of processing performed by an operation control unit in the second embodiment.
- FIG. 1 is a diagram showing an example of the hardware configuration of an information processing device 1 in the first embodiment.
- the information processing device 1 is a computer equipped with a function for processing information.
- the information processing device 1 can be an image display device, a personal computer, a tablet terminal, a smartphone, a mobile phone, or the like.
- the information processing device 1 includes, for example, a main board 10 and a sub-board 20.
- the main board 10 executes the functions of the information processing device 1.
- the main board 10 includes a CPU 11, a ROM 12, and a RAM 13. These elements (CPU 11, ROM 12, and RAM 13) are connected to each other via a bus or the like so that they can communicate with each other. In other words, the CPU 11, ROM 12, and RAM 13 are mounted on the main board 10 so that they can communicate with each other.
- ROM 12 is a read-only memory that stores programs for executing the functions of the information processing device 1.
- ROM 12 is a programmable ROM in which information can be rewritten using a dedicated writing device (ROM writer).
- ROM writer a dedicated writing device
- ROM 12 is a NOR or NAND type flash memory.
- RAM 13 is a readable and writable memory (random access memory) that stores working data used when CPU 11 executes processing.
- CPU 11 executes the programs stored in ROM 12 and stores temporary data used when executing the programs in RAM 13.
- the sub-board 20 includes an EEPROM 21.
- the EEPROM 21 is connected to the main board 10 via a communication interface such as I2C so that they can communicate with each other.
- the EEPROM 21 is mounted on the sub-board 20 so that it can communicate with the main board 10.
- EEPROM 21 is a rewritable non-volatile memory (Electrically Erasable Programmable Read-Only Memory). EEPROM 21 stores information notified by main board 10 according to the control by main board 10. EEPROM 21 also outputs the information stored in EEPROM 21 to main board 10 according to the control.
- Figures 2 and 3 are diagrams showing an example of information stored in the EEPROM 21 of the sub-substrate 20 in the first embodiment.
- information required for maintaining the information processing device 1 such as the serial number (SN), usage time, license, etc., is written to the EEPROM 21.
- a specific area 21A is further reserved in the EEPROM 21, and information related to additional functions (additional information 202, described below) can be written to the specific area 21A.
- the additional function here is a function that is added by upgrading the program stored in the ROM 12 of the main board 10, such as a function to implement a billing scheme.
- the billing scheme determines whether or not to execute a process (hereafter referred to as the target process) for realizing all or part of the functions provided in the information processing device 1 according to the billing status.
- the billing scheme controls so that the target process is not executed when no charge has been made, and controls so that the target process is executed when charge has been made.
- the billing scheme determines the time during which the target process can be executed according to the amount charged. In this case, when the target process is executed, its execution time is measured, and the target process is controlled so that it is executed until the remaining charge, that is, the balance obtained by subtracting the value equivalent to the execution time from the amount charged, reaches 0 (zero).
- the main board 10 has a more complex circuit configuration and has a larger number of components mounted thereon than the other boards mounted on the information processing device 1. For this reason, the risk of the main board 10 having to be replaced due to a failure of any component or circuit on the main board 10 is considered to be higher than for the other boards.
- the main board 10 is replaced during the maintenance period of the information processing device 1.
- the main board 10 is replaced, if the version of the program stored in the ROM 12 of the replaced main board 10 is older than the version previously implemented, the function of the billing scheme previously applied to the device may no longer be recognized or supported, and the target process may be able to be executed indefinitely even though no charge is being made.
- the information processing device 1 of this embodiment is configured to store information about additional functions on a board (sub-board 20) that is physically different from the main board 10.
- information about the additional function is stored in a specific area 21A of the EEPROM 21 on the sub-board 20.
- the billing scheme function is stored in the specific area 21A.
- FIG. 3 shows an example of information stored in the specific area 21A of the EEPROM 21. As shown in the example of FIG. 3, for example, a memory area of 1 byte (8 bits) is reserved as the specific area 21A.
- each bit of one byte (8 bits) in specific area 21A stores information that indicates, in binary form, whether or not the additional function associated with each bit has been added.
- each bit in the specific area 21A is set to an initial value (default) of "0 (zero)," which indicates that no additional functions have been added. Thereafter, when the program is upgraded and an additional function is added to the upgraded program, a "1" is written to the bit in the specific area 21A corresponding to the added additional function, indicating that the additional function has been added.
- bits 0 and 21A are set as the initial value (default), indicating that the additional function Add1 has not been added. If the additional function Add1 is added in a subsequently upgraded program, (bit 0) in specific area 21A is set to "1", indicating that the additional function Add1 has been added.
- bits 1 in specific area 21A “0 (zero)” is set as the initial value (default), indicating that the additional function Add2 has not been added. If the additional function Add2 is added in a subsequently upgraded program, (bit 1) in specific area 21A is set to "1" indicating that the additional function Add2 has been added. The same applies to the other bits (bit 2 to bit 7).
- FIGS. 4 and 5 are flowcharts showing the flow of processing performed by the information processing device 1 of the first embodiment.
- FIG. 4 shows the flow of processing performed by the information processing device 1 when it is started up after the software has been updated, for example, when the information processing device 1 is restarted immediately after the software has been updated.
- the information processing device 1 reads the specific area 21A of the sub-board 20 (step S10). At startup, the information processing device 1 refers to the EEPROM 21 in the sub-board 20 and acquires 8 bits of information (additional information 202) stored in the specific area 21A of the EEPROM 21. The information processing device 1 also sets the internal variable x to 0 (zero) as an initial value (step S11).
- the information processing device 1 determines whether or not the information processing device 1 supports the additional function associated with the bit (bitx) corresponding to the variable x in the specific area 21A (step S12).
- the information processing device 1 acquires the version of the program stored in ROM 12, and determines whether or not the information processing device 1 supports the additional function based on the acquired version. For example, if the acquired version is a version of the program that includes the additional function, the information processing device 1 determines that the information processing device 1 supports the additional function. On the other hand, if the acquired version is not a version of the program that includes the additional function, the information processing device 1 determines that the information processing device 1 does not support the additional function.
- the information processing device 1 determines whether or not the initial value "0" is set in bitx of the specific area 21A (step S13). If the initial value is set in bitx, the information processing device 1 writes and stores "1" in bitx, which indicates that the additional function has been added (step S14).
- the information processing device 1 determines the value set for the variable x (step S15), and if a value less than 7 is set for the variable x, that is, (x ⁇ 7), it increments the variable x, increasing the variable x by 1 (step S16), and executes the process shown in step S12.
- step S15 if the information processing device 1 does not support the additional function associated with bit x of the specific area 21A in step S12, and if "1" is set to bit x of the specific area 21A in step S13, indicating that the additional function has been added, the information processing device 1 executes the process shown in step S15.
- step S15 the process ends.
- FIG. 5 shows the flow of processing performed by the information processing device 1 when the software is started.
- the processing shown in steps S20 and S21 in FIG. 5 is similar to the processing shown in steps S10 and S11 in FIG. 4, and therefore a description thereof will be omitted.
- the information processing device 1 determines whether or not "1" is set in bitx in the specific area 21A and whether or not the information processing device 1 supports the additional function (step S22).
- the method by which the information processing device 1 determines whether or not the information processing device 1 supports the additional function is the same as the method used in the process shown in step S12.
- step S23 determines the value set in variable x (step S23), and if a value less than 7 is set in variable x, that is, (x ⁇ 7), it increments variable x, increasing variable x by 1 (step S24), and executes the process shown in step S22.
- step S25 the information processing device 1 restricts its own (information processing device 1) operation (step S25) and terminates the process.
- the information processing device 1 controls the information processing device 1 so that it cannot be started, for example by preventing the information processing device 1 from being powered on. In this way, it is possible to prevent a situation in which an additional function added to the information processing device 1 is automatically set to "not added” due to replacement of the main board 10, etc., causing the billing scheme, etc., to stop functioning.
- bitx is set to "1" but the information processing device 1 does not support that additional function
- the information processing device 1 does not execute the process of writing "0" to bitx.
- the operation control unit 103 does not execute the process of returning bitx to the initial setting value "0", regardless of whether the program written in ROM 12 supports the additional function. This ensures that if the board is replaced or the like and the additional function is no longer supported, an inconsistency will occur between the program written in ROM 12 and the additional information written in the specific area 21A. Therefore, if the board is replaced or the additional function is no longer supported, the information processing device 1 will be able to detect that an additional function that was previously executable is no longer supported.
- step S22 if "0" is set in bitx and the information processing device 1 does not support the additional function corresponding to bitx, the information processing device 1 proceeds to step S23. Also, in step S22, if "0" is set in bitx and the information processing device 1 supports that additional function, the information processing device 1 writes and stores "1" in bitx, as in step S14, and proceeds to step S23.
- FIG. 6 is a diagram showing the basic configuration of an information processing device 1 according to the present invention.
- the information processing device 1 includes a main board 10 and a sub-board 20.
- the sub-board 20 has a sub-storage unit 201.
- the sub-storage unit 201 corresponds to the EEPROM 21.
- the sub-storage unit 201 stores additional information 202.
- the additional information 202 is information indicating whether an additional function has been added or not in response to an update of the program executed on the main board 10.
- the sub-board 20 has a sub-storage unit 201 that stores additional information 202 indicating whether an additional function has been added or not in response to an update of the program executed on the main board 10.
- the main board 10 includes a main memory unit 101, an acquisition unit 102, and an operation control unit 103.
- the main memory unit 101 corresponds to the ROM 12.
- the main memory unit 101 stores the programs executed on the main board 10.
- the acquisition unit 102 and the operation control unit 103 are realized by the CPU 11 executing a program stored in the main memory unit 101.
- the acquisition unit 102 acquires additional information 202 stored in the sub-board 20 when the information processing device 1 is started up. If the additional information 202 acquired by the acquisition unit 102 indicates that an additional function has been added and the operation control unit 103 determines that the additional function is not supported based on the version of the program stored in the main memory unit 101, it controls the information processing device 1 not to start up.
- the information processing device 1 is a device including a main board 10 and a sub-board 20 capable of communicating with the main board 10.
- the sub-board 20 has a sub-storage unit 201 that stores additional information 202 indicating whether an additional function has been added or not in response to an update of a program executed on the main board 10.
- the acquisition unit 102 acquires the additional information 202 stored in the sub-board 20 when the information processing device 1 is started. If the additional information 202 acquired by the acquisition unit 102 indicates that an additional function has been added and the operation control unit 103 determines that the additional function is not supported based on the version of the program stored in the main storage unit 101, the operation control unit 103 controls the operation of the information processing device 1 to be restricted.
- the additional information 202 can be stored in the sub-board 20, which is a board that is physically different from the main board 10.
- the additional function is no longer supported due to the replacement of the main board 10
- the operation of the information processing device 1 can be controlled to be restricted, for example, the information processing device 1 can be controlled not to be started.
- information indicating that no additional function has been added is set as an initial setting value in the additional information 202.
- the operation control unit 103 executes an update process to rewrite the additional information 202 to information indicating that the additional function has been added. This makes it possible, when a program is updated to add an additional function, to have the fact that the additional function has been added reflected in the additional information 202.
- the operation control unit 103 when the operation control unit 103 stores information in the additional information 202 that an additional function has been added, the operation control unit 103 stores information indicating, in a binary value, whether the additional function has been added or not. For example, when the operation control unit 103 stores information in the additional information 202 that an additional function associated with each bit in the specific area 21A has been added, the operation control unit 103 stores a "1" in that bit indicating that the additional function has been added. On the other hand, when an additional function has not been added, that is, has not been added, the operation control unit 103 stores a "0 (zero)" in that bit indicating that the additional function has not been added. In this way, in the information processing device 1 according to the first embodiment, whether an additional function has been added or not can be indicated in a binary value, and appropriate information can be stored as the additional information 202 without increasing the memory capacity secured as the specific area 21A.
- a memory area of 32 bytes (4 bytes x 8) is secured as specific area 21B.
- the version of the program supporting the added function is written to the area corresponding to each of the additional functions Add1 to Add8 in specific area 21B.
- FIGS. 7 and 8 are diagrams showing examples of information stored in the EEPROM 21 of the sub-board 20 in the second embodiment.
- a memory area of 32 bytes (4 bytes x 8) is reserved as specific area 21B.
- Specific area 21B is divided into eight areas of 4 bytes each, and is reserved as an area into which information about each additional function, specifically the version of the program that supports the additional function, is written.
- each 4-byte area in specific area 21B is set with the initial value (default) of "0xFFFFFFFF", which is a value indicating that no additional functions have been added.
- the program is upgraded and an additional function is added to the upgraded program, a value different from the initial value (default) is written to the 4-byte area in specific area 21B corresponding to the added additional function as a value indicating that the additional function has been added; specifically, the version of the upgraded program (a program that supports the additional function).
- the first four bytes (1st 4 bytes) in specific area 21B are set with the initial value (default) of "0xFFFFFFFF", which indicates that the additional function Add1 has not been added.
- information indicating the version of the upgraded program for example, "0x31, 0x2E, 0x32, 0x33" indicating the version in ASCII code, is written to (1st 4 bytes) in specific area 21B. In other words, information indicating that the version is "1.23" is set.
- the second 4 bytes (2nd 4 bytes) in specific area 21B are set to "0xFFFFFFFF" as the initial value (default), indicating that the additional function Add2 has not been added. If the additional function Add2 is added to the upgraded program after that, information indicating the version of the upgraded program (the program that supports the additional function), for example, "0x32, 0x2E, 0x30, 0x30" indicating the version in ASCII code, is written to (2nd 4 bytes) in specific area 21B. In other words, information indicating that the version is "2.00" is set. The same is true for the other 4-byte areas (3rd 4 bytes, 4th 4 bytes, 5th 4 bytes, 6th 4 bytes, 7th 4 bytes, and 8th 4 bytes).
- FIGS. 9 and 10 are flowcharts showing the flow of processing performed by the information processing device 1 of the second embodiment.
- FIG. 9 shows the flow of processing performed by the information processing device 1 when it is started up after the software has been updated, for example, when the information processing device 1 is restarted immediately after the software has been updated.
- the information processing device 1 reads the specific area 21B of the sub-board 20 (step S30). At startup, the information processing device 1 refers to the EEPROM 21 in the sub-board 20 and acquires 32 bytes of information (additional information 202) stored in the specific area 21B of the EEPROM 21. The information processing device 1 also sets the internal variable x to 0 (zero) as an initial value (step S31).
- the method of determining whether or not the information processing device 1 supports an additional function is the same as step S12, so the description thereof will be omitted.
- the information processing device 1 determines whether or not a value indicating that the additional function has been added, that is, a value different from the initial value (0xFFFFFF), is set in the xth 4 bytes (step S33). If the initial value is set in the xth 4 bytes, the information processing device 1 writes and stores the version of the currently upgraded program in the xth 4 bytes (step S34).
- the information processing device 1 determines the value set in the variable x (step S35), and if a value less than 7 is set in the variable x, that is, (x ⁇ 7), it increments the variable x, increasing the variable x by 1 (step S36), and executes the process shown in step S32.
- step S35 if the information processing device 1 does not support the additional function associated with the xth 4 bytes in step S32, and if a value different from the initial value is set in the xth 4 bytes in step S33, the information processing device 1 executes the process shown in step S35.
- step S35 the process ends.
- FIG. 10 shows the flow of processing performed by the information processing device 1 when the software is started.
- the processing shown in steps S40 and S41 in FIG. 10 is similar to the processing shown in steps S30 and S31 in FIG. 9, so a description thereof will be omitted.
- the information processing device 1 determines whether a value (program version) different from the initial value (0xFFFFFF) is set in the xth 4 bytes in the specific area 21B and whether the information processing device 1 supports the additional function (step S42).
- the method by which the information processing device 1 determines whether the information processing device 1 supports the additional function is the same as the method used in the process shown in step S12.
- the information processing device 1 determines the value set in the variable x (step S45), and if a value less than 7 is set in the variable x, that is, (x ⁇ 7), it increments the variable x, increasing the set value of the variable x by 1 (step S46), and executes the process shown in step S42.
- the information processing device 1 restricts the operation of the information processing device 1 (step S43). For example, the information processing device 1 controls the information processing device 1 so that it cannot be started, for example by preventing the information processing device 1 itself (information processing device 1) from being powered on.
- the information processing device 1 obtains information indicating the program version (version information) stored in the xth 4 bytes (step S44). The information processing device 1 proceeds to step S45.
- the information processing device 1 does not execute the process of writing the initial value to the xth 4 bytes.
- the operation control unit 103 does not execute the process of returning the xth 4 bytes to the initial value "0xFFFFFFFF", regardless of whether the program written in ROM 12 supports the additional function. This prevents an inconsistency from occurring between the program written in ROM 12 and the additional information written in the specific area 21B when the additional function is no longer supported, for example, because the board is replaced. Therefore, when the additional function is no longer supported, the information processing device 1 can detect that the additional function that was previously executable is no longer supported.
- step S42 if an initial value is set in the xth 4 bytes and the information processing device 1 does not support the additional function corresponding to the xth 4 bytes, the information processing device 1 proceeds to step S45. Also, in step S42, if an initial value is set in the xth 4 bytes and the information processing device 1 supports that additional function, the information processing device 1 writes the version of the program stored in ROM 12 into the xth 4 bytes, as in step S34, and proceeds to step S45.
- the information processing device 1 determines whether the version information acquired in step S44 exists, that is, whether the version is a released version (step S47). If the version information acquired in step S44 exists, the information processing device 1 displays the latest version of the versions acquired in step S44 (step S48) and ends the process. For example, the information processing device 1 displays the latest version on a display device (not shown) by outputting information indicating the latest version to the display device. At this time, the information processing device 1 may display a comment indicating that the software cannot be started because it has been downgraded, together with the information indicating the latest version.
- step S47 if it is determined in step S47 that the version information obtained in step S44 does not exist, the information processing device 1 ends the process.
- the operation control unit 103 when the operation control unit 103 stores in the additional information 202 information that an additional function has been added, it stores the version of the program that supports that additional function. In this way, in the information processing device 1 according to the second embodiment, the version of the program in which the additional function is supported can be retained, and in the event that the added function (for example, a function related to a billing scheme) cannot be executed due to a replacement of the board, etc., it becomes possible to know what version of the program supports the additional function.
- the added function for example, a function related to a billing scheme
- the operation control unit 103 displays the information indicated in the additional information 202 (the version of the program that supports the additional function). This makes it possible for the information processing device 1 according to the second embodiment to display the version in which the additional function is supported. Therefore, in cases where an added function (for example, a function related to a billing scheme) cannot be executed due to a replacement of the board, etc., it is possible to present the user with the version in which the additional function is supported and prompt the user to restore the additional function.
- an added function for example, a function related to a billing scheme
- the additional function is a function related to a billing scheme (a function that controls whether the information processing device 1 executes executable processes depending on the charge).
- a billing scheme a function that controls whether the information processing device 1 executes executable processes depending on the charge.
- the operation control unit 103 does not execute a process of resetting the additional information 202 to the initial setting value after executing the update process, regardless of whether the program written in ROM 12 supports the additional function.
- the additional function is no longer supported due to replacement of the board, etc., it is possible to prevent an inconsistency from occurring between the program written in ROM 12 and the additional information written in the specific area 21A (21B). Therefore, the operation control unit 103 can detect that an additional function that has been executed up until now can no longer be executed due to a subsequent event, such as replacement of the board.
- a program for implementing each function of the information processing device 1 in FIG. 1 may be recorded on a computer-readable recording medium, and the program recorded on the recording medium may be read into a computer system and executed to perform position detection.
- computer system here includes hardware such as the OS and peripheral devices.
- computer system also includes the home page providing environment (or display environment).
- computer-readable recording medium refers to portable media such as flexible disks, optical magnetic disks, ROMs, and CD-ROMs, as well as storage devices such as hard disks built into computer systems.
- computer-readable recording medium refers to devices that hold programs for a certain period of time, such as volatile memory within a computer system that is a server or client.
- the above-mentioned programs may be for implementing some of the functions described above, or may be capable of implementing the functions described above in combination with programs already recorded in the computer system.
- the above-mentioned programs may be stored in a specified server, and distributed (downloaded, etc.) via communication lines in response to requests from other devices.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
メイン基板と、前記メイン基板と通信可能なサブ基板とを備える情報処理装置であって、前記サブ基板は、前記メイン基板において実行されるプログラムのアップデートに応じた追加機能が追加済みであるか未追加であるかを示す追加情報を記憶するサブ記憶部、を有し、前記メイン基板は、前記プログラムを記憶するメイン記憶部と、前記情報処理装置の起動時において、前記サブ基板に記憶された前記追加情報を取得する取得部と、前記取得部により取得された前記追加情報に前記追加機能が追加済みである旨が示され、且つ、前記プログラムのバージョンに基づいて前記追加機能がサポートされていないと判定した場合、前記情報処理装置の動作が制約されるように制御する動作制御部と、を有する。
Description
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
電子装置等の装置にインストールされているソフトウェアをアップグレードすることにより、その装置がサポートする機能や提供するサービスが追加されることがある(例えば、特許文献1)。このようにして追加される機能として、例えば、課金スキームを実施する機能がある。課金スキームでは、例えば、装置における一部の処理の実行が課金状況に応じて規制され、課金されていない場合には実行できず課金がなされた場合にその処理が実行できるように制御される。或いは、課金スキームでは、特定の処理が実行された時間に相当する対価を課金形式で回収できるように実行時間が計測される。このような課金スキームは、例えば、高機能な装置を安価で販売して販売促進を図り、その後の課金に応じて資金を回収するようなビジネスモデルに適用される。
しかしながら、高機能な装置は保守期間が長く、保守期間中に装置に実装された基板が故障して交換されることがある。基板が交換された結果、交換後の基板にインストールされているソフトウェアのバージョンが今まで実装されていたものより古かった場合、今まで装置に適用されていた課金スキームの機能が認知もサポートもされなくなってしまうことが想定される。この場合、課金の有無に関わらず、装置における特定の処理に実施されていた規制が解除されてしまい、課金スキームが成り立たなくなってしまう可能性がある。また、基板が交換されなくとも、装置にインストールされているソフトウェアがユーザ等によってダウングレードされてしまった場合にも課金スキームが成り立たなくなる可能性があった。このため、基板が交換されたりソフトウェアをダウングレードされたりして、今まで装置に適用されていた課金スキームが成り立たなくなってしまった場合に対処できるようにすることが求められていた。
上述の課題を鑑み、本発明は、電子装置等の装置にインストールされているソフトウェアをアップグレードすることにより機能を追加した場合において、基板が交換されたりソフトウェアをダウングレードされたりして追加された機能が実行されなくなってしまった場合に対処することができる情報処理装置、情報処理方法、及びプログラムを提供することを目的とする。
本発明の一態様は、メイン基板と、前記メイン基板と通信可能なサブ基板とを備える情報処理装置であって、前記サブ基板は、前記メイン基板において実行されるプログラムのアップデートに応じた追加機能が追加済みであるか未追加であるかを示す追加情報を記憶するサブ記憶部、を有し、前記メイン基板は、前記プログラムを記憶するメイン記憶部と、前記情報処理装置の起動時において、前記サブ基板に記憶された前記追加情報を取得する取得部と、前記取得部により取得された前記追加情報に前記追加機能が追加済みである旨が示され、且つ、前記プログラムのバージョンに基づいて前記追加機能がサポートされていないと判定した場合、前記情報処理装置の動作が制約されるように制御する動作制御部と、を有する情報処理装置である。
また、本発明の一態様は、メイン基板と、前記メイン基板と通信可能なサブ基板とを備え、前記サブ基板は前記メイン基板において実行されるプログラムのアップデートに応じた追加機能が追加済みであるか未追加であるかを示す追加情報を記憶するサブ記憶部を有し、前記メイン基板は前記プログラムを記憶するメイン記憶部を有する情報処理装置であるコンピュータが行う情報処理方法であって、前記メイン基板の取得部が、前記情報処理装置の起動時において、前記サブ基板に記憶された前記追加情報を取得し、前記メイン基板の動作制御部が、前記取得部により取得された前記追加情報に前記追加機能が追加済みである旨が示され、且つ、前記プログラムのバージョンに基づいて前記追加機能がサポートされていないと判定した場合、前記情報処理装置の動作が制約されるように制御する、情報処理方法である。
また、本発明の一態様は、メイン基板と、前記メイン基板と通信可能なサブ基板とを備え、前記サブ基板は前記メイン基板において実行されるプログラムのアップデートに応じた追加機能が追加済みであるか未追加であるかを示す追加情報を記憶するサブ記憶部を有し、前記メイン基板は前記プログラムを記憶するメイン記憶部を有する情報処理装置であるコンピュータに、前記情報処理装置の起動時において、前記サブ基板に記憶された前記追加情報を取得させ、前記取得された前記追加情報に前記追加機能が追加済みである旨が示され、且つ、前記プログラムのバージョンに基づいて前記追加機能がサポートされていないと判定した場合、前記情報処理装置の動作が制約されるように制御させる、プログラムである。
本発明によれは、電子装置等の装置にインストールされているソフトウェアをアップグレードすることにより機能を追加した場合において、基板が交換されたりソフトウェアをダウングレードされたりして追加された機能が実行されなくなってしまった場合に対処することができる。
以下、本発明の一実施形態を説明する。
図1は、第1実施形態における情報処理装置1のハードウェア構成例を示す図である。情報処理装置1は、情報を処理する機能を備えるコンピュータである。例えば、情報処理装置1として、画像表示装置、パーソナルコンピュータ、タブレット端末、スマートフォン、或いは携帯電話等を適用することができる。
情報処理装置1は、例えば、メイン基板10と、サブ基板20とを備える。
メイン基板10は、情報処理装置1の機能を実行する。メイン基板10は、CPU11と、ROM12と、RAM13とを備える。これらの要素(CPU11、ROM12、及びRAM13)は、バス等を介して相互に通信可能に接続されている。つまり、メイン基板10には、CPU11とROM12とRAM13が、通信可能に実装されている。
ROM12は、読み出し専用のメモリ(Read-Only Memory)であり、情報処理装置1の機能を実行するためのプログラムを記憶する。本実施形態におけるROM12は、プログラマブルなROMであり、専用の書込装置(ROMライタ)を用いて情報を書き変えることができるものである。例えば、ROM12は、NOR型またはNAND型のフラッシュメモリである。RAM13は、読み書き可能なメモリ(Random Access Memory)であり、CPU11が処理を実行する際に使用される作業用のデータを記憶する。CPU11は、ROM12に記憶されたプログラムを実行し、プログラムを実行する際に利用される一時的なデータをRAM13に記憶させる。
サブ基板20は、EEPROM21を備える。EEPROM21は、I2C等の通信インタフェースを介して、メイン基板10と相互に通信可能に接続されている。つまり、サブ基板20には、EEPROM21が、メイン基板10と通信可能に実装されている。
EEPROM21は、書き換え可能な不揮発性のメモリ(Electrically Erasable Programmable Read-Only Memory)である。EEPROM21は、メイン基板10による制御にしたがい、メイン基板10から通知された情報を記憶する。また、EEPROM21は、制御にしたがい、EEPROM21に記憶された情報をメイン基板10に出力する。
ここで、サブ基板20に記憶される情報について、図2及び図3を用いて説明する。図2及び図3は、第1実施形態におけるサブ基板20のEEPROM21に記憶される情報の例を示す図である。
図2に示すように、EEPROM21には、情報処理装置1を保守するために必要となる情報、例えば、SN(シリアルナンバー)、使用時間、ライセンスなどに関する情報が書き込まれる。
本実施形態では、更に、EEPROM21に特定領域21Aを確保し、特定領域21Aに追加機能に関する情報(後述する追加情報202)を書込めるようにする。
ここでの追加機能は、メイン基板10のROM12に記憶されているプログラムをアップグレードすることにより追加される機能であり、例えば、課金スキームを実施する機能である。
課金スキームでは、情報処理装置1に備えられた機能の全部または一部を実現するための処理(以下、対象処理という)について、課金状況に応じて、実行するか否かが制御される。この場合、例えば、課金スキームでは、課金されていない場合には対象処理が実行されないように制御され、課金された場合に対象処理が実行されるように制御される。或いは、課金スキームでは、課金された金額に応じて対象処理を実行できる時間が決定される。この場合、対象処理が実行されるとその実行時間が計測され、課金の残高、つまり実行時間に相当する対価を課金された金額から減額した残高が0(ゼロ)となるまで対象処理が実行されるように制御される。
ここで、メイン基板10は、情報処理装置1に実装されている他の基板に比べて回路構成が複雑であり、実装されている部品の点数も多い。このため、メイン基板10において何らかの部品や回路が故障するなどして、メイン基板10が交換されるリスクは、他の基板よりも高いと考えられる。
このような観点から、情報処理装置1の保守期間中に、メイン基板10が交換される場合があり得る。メイン基板10が交換された場合、交換後のメイン基板10のROM12に記憶されているプログラムのバージョンが、今まで実装されていたものより古かった場合、今まで装置に適用されていた課金スキームの機能が認知もサポートもされなくなってしまい、課金されていないにもかかわらず、対象処理が無制限に実行可能になってしまう可能性がある。
このような対策として、本実施形態の情報処理装置1では、追加機能に関する情報を、メイン基板10とは物理的に異なる基板(サブ基板20)に記憶させるように構成した。
具体的には、サブ基板20におけるEEPROM21の特定領域21Aに、追加機能に関する情報を記憶させる。これにより、メイン基板10が交換され、課金スキームの機能が認知もサポートもされなくなってしまった場合であっても、特定領域21Aに記憶されている、追加機能(ここでは課金スキームの機能)に関する情報に基づいて、対象処理が無制限に実行されないように制御することができる。
図3には、EEPROM21の特定領域21Aに記憶される情報の例が示されている。図3の例に示すように、特定領域21Aとして、例えば、1バイト(8ビット)の記憶領域が確保される。
ここでは、情報処理装置1の製造時において、将来、追加されることが想定される8つの機能(追加機能Add1~Add8とする)がある例が示されている。また、メイン基板10のROM12に記憶されるプログラムでは、プログラムのバージョンに関わらず、如何なるバージョンにおいても、8つの機能(追加機能Add1~Add8)が、特定領域21Aにおける1バイト(8ビット)の各ビットに対応付けられるように統一された仕様が適用されることを前提とする。
図3の例に示すように、例えば、特定領域21Aにおける1バイト(8ビット)の各ビットには、各ビットに対応づけられた追加機能が追加されたか否かを二値で示す情報が記憶される。
具体的には、情報処理装置1の製造時において、特定領域21Aにおける各ビットには、初期値(デフォルト)として追加機能が追加されていないことを示す値である「0(ゼロ)」が設定される。その後、プログラムがバージョンアップされ、バージョンアップされたプログラムにおいて追加機能が追加された場合に、特定領域21Aにおいてその追加された追加機能に対応するビットに、追加機能が追加済みであることを示す「1」が書き込まれる。
より具体的には、特定領域21Aにおける(bit0)には初期値(デフォルト)として追加機能Add1が未追加であることを示す「0(ゼロ)」が設定される。その後にバージョンアップされたプログラムにおいて追加機能Add1が追加された場合に、特定領域21Aにおける(bit0)に追加機能Add1が追加済みであることを示す「1」が設定される。
また、特定領域21Aにおける(bit1)には初期値(デフォルト)として追加機能Add2が未追加であることを示す「0(ゼロ)」が設定される。その後にバージョンアップされたプログラムにおいて追加機能Add2が追加された場合に、特定領域21Aにおける(bit1)には追加機能Add2が追加されたことを示す「1」が設定される。他のビット(bit2~bit7)についても同様である。
ここで、情報処理装置1が行う処理の流れについて、図4及び図5を用いて説明する。図4及び図5は、第1実施形態の情報処理装置1が行う処理の流れを示すフローチャートである。
図4には、ソフトウェアがアップデートされた後の起動時、例えばソフトウェアをアップデートされた直後に情報処理装置1が再起動された場合において、情報処理装置1が行う処理の流れが示されている。
情報処理装置1は、サブ基板20の特定領域21Aをリードする(ステップS10)。情報処理装置1は、起動時においてサブ基板20におけるEEPROM21を参照し、EEPROM21の特定領域21Aに記憶された8ビットの情報(追加情報202)を取得する。また、情報処理装置1は、内部変数である変数xに初期値として0(ゼロ)を設定する(ステップS11)。
情報処理装置1は、特定領域21Aにおいて変数xに対応するビット(bitx)に対応づけられた追加機能を情報処理装置1がサポートしているか否かを判定する(ステップS12)。情報処理装置1は、ROM12に記憶されているプログラムのバージョンを取得し、取得したバージョンに基づいて、追加機能を情報処理装置1がサポートしているか否かを判定する。情報処理装置1は、例えば、取得したバージョンが、追加機能を含むプログラムのバージョンである場合、追加機能を情報処理装置1がサポートしていると判定する。一方、情報処理装置1は、取得したバージョンが、追加機能を含むプログラムのバージョンでない場合、追加機能を情報処理装置1がサポートしていないと判定する。
追加機能をサポートしている場合、情報処理装置1は、特定領域21Aのbitxに初期値「0」が設定されているか否かを判定する(ステップS13)。bitxに初期値が設定されている場合、情報処理装置1は、bitxに追加機能が追加済みであることを示す「1」を書込んで記憶させる(ステップS14)。
情報処理装置1は、変数xに設定されている値を判定し(ステップS15)、変数xに7未満の値が設定されている、つまり、(x<7)である場合には変数xをインクリメントして、変数xを1増加させ(ステップS16)、ステップS12に示す処理を実行する。
一方、ステップS12において特定領域21Aのbitxに対応づけられた追加機能を情報処理装置1がサポートしていない場合、及び、ステップS13において特定領域21Aのbitxに追加機能が追加済みであることを示す「1」が設定されている場合、情報処理装置1はステップS15に示す処理を実行する。
また、ステップS15において変数xに7以上の値が設定されている場合には処理を終了させる。
図5には、ソフトウェアの起動時において、情報処理装置1が行う処理の流れが示されている。図5においてステップS20及びS21に示す処理は、図4のステップS10及びS11に示す処理と同様であるため、その説明を省略する。
情報処理装置1は、特定領域21Aにおけるbitxに「1」が設定されており、且つ、その追加機能を情報処理装置1がサポートしているか否かを判定する(ステップS22)。情報処理装置1が、追加機能を情報処理装置1がサポートしているか否かを判定する方法は、ステップS12に示す処理において判定した方法と同様である。
bitxに「1」が設定されており、且つ、その追加機能を情報処理装置1がサポートしている場合、情報処理装置1は、変数xに設定されている値を判定し(ステップS23)、変数xに7未満の値が設定されている、つまり、(x<7)である場合には変数xをインクリメントして、変数xを1増加させ(ステップS24)、ステップS22に示す処理を実行する。
一方、bitxに「1」が設定されているが、その追加機能を情報処理装置1がサポートしていない場合、情報処理装置1は、自身(情報処理装置1)の動作を制約し(ステップS25)、処理を終了させる。例えば、情報処理装置1は、情報処理装置1をパワーオンできないようにするなどして、情報処理装置1を起動させないように制御する。このようにして、情報処理装置1に追加された追加機能が、メイン基板10の交換等により勝手に「未追加」とされてしまい、課金スキームなどが機能しなくなってしまう事態の発生を抑制する。
ここで、bitxに「1」が設定されているが、その追加機能を情報処理装置1がサポートしていない場合、情報処理装置1は、bitxに「0」を書込む処理を実行しない。すなわち、動作制御部103は、bitxに「1」を書込んだ後において、ROM12に書込まれたプログラムが追加機能をサポートしているか否かに関わらず、bitxを初期設定値である「0」に戻す処理を実行しない。これにより、基板が交換される等して追加機能がサポートされなくなった場合に、ROM12に書込まれているプログラムと、特定領域21Aに書込まれている追加情報とに不整合が生じるようにする。したがって、情報処理装置1は、基板が交換される等して追加機能がサポートされなくなった場合に、今まで実行できていた追加機能がサポートされなくなったことを検知することが可能となる。
なお、情報処理装置1は、ステップS22において、bitxに「0」が設定され、且つ、bitxに対応する追加機能を情報処理装置1がサポートしていない場合、ステップS23に進む。また、情報処理装置1は、ステップS22において、bitxに「0」が設定され、且つ、その追加機能を情報処理装置1がサポートしている場合、ステップS14と同様に、bitxに「1」を書込んで記憶させ、ステップS23に進む。
これにより、情報処理装置1は、特定領域21Aに追加機能が追加済みであることが示されているにもかかわらず、メイン基板10が交換されるなどして、その追加機能を情報処理装置1がサポートしていない場合など不整合が生じた場合に情報処理装置1を起動させないように制御することが可能となる。したがって、今まで情報処理装置1に適用されていた課金スキーム等の追加機能が、メイン基板10の交換によりサポートもされなくなってしまった場合であっても、課金対象である対象処理が無制限に実行可能になってしまう事態が発生することを抑制することができる。
図6は、本発明による情報処理装置1の基本構成を示す図である。情報処理装置1は、メイン基板10と、サブ基板20とを備える。
サブ基板20は、サブ記憶部201を備える。サブ記憶部201はEEPROM21に対応する。サブ記憶部201は追加情報202を記憶する。追加情報202は、メイン基板10において実行されるプログラムのアップデートに応じて追加機能が追加済みであるか未追加であるかを示す情報である。すなわち、サブ基板20は、メイン基板10において実行されるプログラムのアップデートに応じて追加機能が追加済みであるか未追加であるかを示す追加情報202を記憶するサブ記憶部201を有する。
メイン基板10は、メイン記憶部101と、取得部102と、動作制御部103を備える。メイン記憶部101は、ROM12に対応する。メイン記憶部101はメイン基板10において実行されるプログラムを記憶する。
取得部102及び動作制御部103は、CPU11が、メイン記憶部101に記憶されたプログラムを実行することにより実現される。取得部102は、情報処理装置1の起動時において、サブ基板20に記憶された追加情報202を取得する。動作制御部103は、取得部102により取得された追加情報202に、追加機能が追加済みである旨が示され、且つ、メイン記憶部101に記憶されているプログラムのバージョンに基づいてその追加機能がサポートされていないと判定した場合、情報処理装置1を起動させないように制御する。
以上説明したように、第1実施形態による情報処理装置1は、メイン基板10と、メイン基板10と通信可能なサブ基板20とを備える装置である。サブ基板20は、メイン基板10において実行されるプログラムのアップデートに応じて追加機能が追加済みであるか未追加であるかを示す追加情報202を記憶するサブ記憶部201を有する。取得部102は、情報処理装置1の起動時において、サブ基板20に記憶された追加情報202を取得する。動作制御部103は、取得部102により取得された追加情報202に、追加機能が追加済みである旨が示され、且つ、メイン記憶部101に記憶されているプログラムのバージョンに基づいてその追加機能がサポートされていないと判定した場合、情報処理装置1の動作が制約されるように制御する。
これにより、第1実施形態の情報処理装置1では、メイン基板10とは物理的に異なる基板であるサブ基板20に、追加情報202を記憶させることができる。メイン基板10が交換されたことによって追加機能がサポートされなくなった場合に、追加情報202に記憶されている情報と、メイン基板10のプログラムがサポートしている機能とに不整合が生じるようにして、追加機能がサポートされなくなったことを検知することが可能となる。また、アップデートにより追加機能が追加されたにも関わらず、その後の基板交換により追加機能がサポートされなくなった場合に、情報処理装置1の動作が制約されるように制御することができ、例えば、情報処理装置1が起動されないように制御することができる。したがって、電子装置等の装置にインストールされているソフトウェアをアップグレードすることにより機能を追加した場合において、基板が交換されたりソフトウェアをダウングレードされたりする等して追加機能(例えば、課金スキームに係る機能)が実行されない状態で情報処理装置1が起動してしまうような事態の発生を抑制することができる。
また、第1実施形態による情報処理装置1では、追加情報202には、初期設定値として、追加機能が追加されていない旨の情報が設定される。動作制御部103は、取得部102により取得された追加情報202に、追加機能が追加されていない旨が示され、且つ、メイン記憶部101にその追加機能をサポートするプログラムが書き込まれていた場合、追加情報202をその追加機能が追加済みである旨の情報に書き換える更新処理を実行する。これにより、プログラムがアップデートされて追加機能が追加された場合において、その追加機能が追加されたことを追加情報202に反映させることが可能となる。
また、第1実施形態による情報処理装置1では、プログラムがアップデートされた後に情報処理装置1が再起動された場合において、更新処理を実行する。これにより、プログラムのアップデートに伴い追加機能が追加された場合に、その追加を迅速に追加情報202に反映させることが可能となる。
また、第1実施形態による情報処理装置1では、動作制御部103は、追加情報202に追加機能が追加済みである旨の情報を記憶させる場合、追加機能が追加済みであるか未追加であるかを二値で示す情報を記憶させる。例えば、動作制御部103は、追加情報202に追加機能が追加済みである旨の情報を記憶させる場合、特定領域21Aにおける各ビットに対応づけられた追加機能が追加済みである場合にはそのビットに、追加済みであることを示す「1」を記憶させる。一方、追加機能が追加されていない、つまり未追加である場合には、そのビットに未追加であることを示す「0(ゼロ)」を記憶させる。これにより、第1実施形態の情報処理装置1では、追加機能が追加済みであるか、未追加であるかを二値で示すことができ、特定領域21Aとして確保するメモリ容量を増大させることなく、追加情報202として適切な情報を記憶させることが可能となる。
ここで第2実施形態について説明する。本実施形態では、特定領域21Bとして、32バイト(4バイト×8)の記憶領域が確保される。特定領域21Bには、追加機能が追加された際に、追加機能Add1~Add8のそれぞれに対応する領域に、その追加された機能をサポートするプログラムのバージョンが書き込まれる。これにより、メイン基板10が交換されるなどして交換前と不整合が生じた場合であっても、特定領域21Bに書込まれたプログラムのバージョンを提示するなどして、追加機能の復元を促すことが可能となる。
図7及び図8は、第2実施形態におけるサブ基板20のEEPROM21に記憶される情報の例を示す図である。
図7の例に示すように、特定領域21Bとして、32バイト(4バイト×8)の記憶領域が確保される。特定領域21Bは、4バイトごとに8つの領域に区切られ、それぞれの追加機能に関する情報、具体的には追加機能をサポートするプログラムのバージョンが書き込まれる領域として確保される。
図8の例に示すように、例えば、特定領域21Bにおける32バイトの領域には、4バイトの領域ごとに、4バイトの領域のそれぞれに対応づけられた追加機能をサポートするプログラムのバージョンが記憶される。
具体的には、情報処理装置1の製造時において、特定領域21Bにおける各4バイト領域には、初期値(デフォルト)として追加機能が追加されていないことを示す値である「0xFFFFFFFF」が設定される。その後、プログラムがバージョンアップされ、バージョンアップされたプログラムにおいて追加機能が追加された場合に、特定領域21Bにおいてその追加された追加機能に対応する4バイト領域に、追加機能が追加済みであることを示す値として初期値(デフォルト)とは異なる値、具体的には、バージョンアップされたプログラム(追加機能をサポートするプログラム)のバージョンが書き込まれる。
より具体的には、特定領域21Bにおける最初の4バイト(1st4バイト)には初期値(デフォルト)として追加機能Add1が未追加であることを示す「0xFFFFFFFF」が設定される。その後にバージョンアップされたプログラムにおいて追加機能Add1が追加された場合に、特定領域21Bにおける(1st4バイト)にバージョンアップされたプログラム(追加機能をサポートするプログラム)のバージョンを示す情報、例えば、バージョンをASCIIコードで示す「0x31、0x2E、0x32、0x33」が書き込まれる。つまり、バージョンが、「1.23」であることを示す情報が設定される。
また、特定領域21Bにおける二番目の4バイト(2nd4バイト)には初期値(デフォルト)として追加機能Add2が未追加であることを示す「0xFFFFFFFF」が設定される。その後にバージョンアップされたプログラムにおいて追加機能Add2が追加された場合に、特定領域21Bにおける(2nd4バイト)にバージョンアップされたプログラム(追加機能をサポートするプログラム)のバージョンを示す情報、例えば、バージョンをASCIIコードで示す「0x32、0x2E、0x30、0x30」が書き込まれる。つまり、バージョンが、「2.00」であることを示す情報が設定される。他の4バイト領域(3rd4バイト、4th4バイト、5th4バイト、6th4バイト、7th4バイト、及び、8th4バイト)についても同様である。
ここで、情報処理装置1が行う処理の流れについて、図9及び図10を用いて説明する。図9及び図10は、第2実施形態の情報処理装置1が行う処理の流れを示すフローチャートである。
図9には、ソフトウェアがアップデートされた後の起動時、例えばソフトウェアをアップデートされた直後に情報処理装置1が再起動された場合において、情報処理装置1が行う処理の流れが示されている。
情報処理装置1は、サブ基板20の特定領域21Bをリードする(ステップS30)。情報処理装置1は、起動時においてサブ基板20におけるEEPROM21を参照し、EEPROM21の特定領域21Bに記憶された32バイトの情報(追加情報202)を取得する。また、情報処理装置1は、内部変数である変数xに初期値として0(ゼロ)を設定する(ステップS31)。
情報処理装置1は、特定領域21Bにおいて、x番目にある4バイト(例えばx=0の場合には1st4バイト、x=1の場合には2nd4バイトなど)に対応づけられた追加機能を情報処理装置1がサポートしているか否かを判定する(ステップS32)。情報処理装置1が追加機能をサポートしているか否かを判定する方法は、ステップS12と同様であるためその説明を省略する。
追加機能をサポートしている場合、情報処理装置1は、x番目の4バイトに、追加機能が追加済みであることを示す値、つまり初期値(0xFFFFFFFF)とは異なる値が設定されているか否かを判定する(ステップS33)。x番目の4バイトに初期値が設定されている場合、情報処理装置1は、x番目の4バイトに、今回バージョンアップされたプログラムのバージョンを書込んで記憶させる(ステップS34)。
情報処理装置1は、変数xに設定されている値を判定し(ステップS35)、変数xに7未満の値が設定されている、つまり、(x<7)である場合には変数xをインクリメントして、変数xを1増加させ(ステップS36)、ステップS32に示す処理を実行する。
一方、ステップS32においてx番目の4バイトに対応づけられた追加機能を情報処理装置1がサポートしていない場合、及び、ステップS33においてx番目の4バイトに初期値とは異なる値が設定されている場合、情報処理装置1はステップS35に示す処理を実行する。
また、ステップS35において変数xに7以上の値が設定されている場合には処理を終了させる。
図10には、ソフトウェアの起動時において、情報処理装置1が行う処理の流れが示されている。図10においてステップS40及びS41に示す処理は、図9のステップS30及びS31に示す処理と同様であるため、その説明を省略する。
情報処理装置1は、特定領域21Bにおけるx番目の4バイトに初期値(0xFFFFFFFF)とは異なる値(プログラムのバージョン)が設定されており、且つ、その追加機能を情報処理装置1がサポートしているか否かを判定する(ステップS42)。情報処理装置1が、追加機能を情報処理装置1がサポートしているか否かを判定する方法は、ステップS12に示す処理において判定した方法と同様である。
x番目の4バイトに初期値とは異なる値(プログラムのバージョン)が設定されており、且つ、その追加機能を情報処理装置1がサポートしている場合、情報処理装置1は、変数xに設定されている値を判定し(ステップS45)、変数xに7未満の値が設定されている、つまり、(x<7)である場合には変数xをインクリメントして、変数xの設定値を1増加させ(ステップS46)、ステップS42に示す処理を実行する。
一方、x番目の4バイトに初期値とは異なる値(プログラムのバージョン)が設定されているが、その追加機能を情報処理装置1がサポートしていない場合、情報処理装置1は、情報処理装置1の動作を制約する(ステップS43)。例えば、情報処理装置1は、自身(情報処理装置1)をパワーオンできないようにするなどして情報処理装置1を起動させないように制御する。情報処理装置1は、x番目の4バイトに記憶されている、プログラムのバージョンを示す情報(バージョン情報)を取得する(ステップS44)。情報処理装置1は、ステップS45に進む。
ここで、x番目の4バイトに初期値とは異なる値(プログラムのバージョン)が設定されているが、その追加機能を情報処理装置1がサポートしていない場合、情報処理装置1は、x番目の4バイトに初期値を書込む処理を実行しない。すなわち、動作制御部103は、x番目の4バイトに「プログラムのバージョン」を書込んだ後において、ROM12に書込まれたプログラムが追加機能をサポートしているか否かに関わらず、x番目の4バイトを初期設定値である「0xFFFFFFFF」に戻す処理を実行しない。これにより、基板が交換される等して追加機能がサポートされなくなった場合に、ROM12に書込まれているプログラムと、特定領域21Bに書込まれている追加情報とに不整合が生じるようにする。したがって、情報処理装置1は、基板が交換される等して追加機能がサポートされなくなった場合に、今まで実行できていた追加機能がサポートされなくなったことを検知することが可能となる。
なお、情報処理装置1は、ステップS42において、x番目の4バイトに初期値が設定され、且つ、x番目の4バイトに対応する追加機能を情報処理装置1がサポートしていない場合、ステップS45に進む。また、情報処理装置1は、ステップS42において、x番目の4バイトに初期値が設定され、且つ、その追加機能を情報処理装置1がサポートしている場合、ステップS34と同様に、x番目の4バイトに、ROM12に記憶されているプログラムのバージョンを書込み、ステップS45に進む。
一方、ステップS45において、変数xに7以上の値が設定されている場合、情報処理装置1は、ステップS44で取得したバージョン情報が存在するものであるか、つまりリリース済みのバージョンであるか否かを判定する(ステップS47)。ステップS44で取得したバージョン情報が存在するものである場合、情報処理装置1は、ステップS44で取得したバージョンのうち、最新のバージョンを表示させ(ステップS48)、処理を終了させる。例えば、情報処理装置1は、表示装置(不図示)に最新のバージョンを示す情報を出力することにより、表示装置に最新のバージョンを表示させる。この時、情報処理装置1は、ソフトウェアがダウングレードされているため起動できない旨を示すコメントを、最新のバージョンを示す情報と共に表示させるようにしてもよい。
一方、ステップS47において、ステップS44で取得したバージョン情報が存在するものでない場合、情報処理装置1は処理を終了させる。
以上説明したように、第2実施形態による情報処理装置1では、動作制御部103は、追加情報202に、追加機能が追加済みである旨の情報を記憶させる場合、その追加機能をサポートするプログラムのバージョンを記憶させる。これにより、第2実施形態に係る情報処理装置1では、追加機能がサポートされたプログラムのバージョンを保持することができ、基板が交換される等して追加された機能(例えば、課金スキームに係る機能)が実行できないような場合に、どのようなバージョンのプログラムであれば追加機能がサポートされているのかを把握することが可能となる。
また、第2実施形態による情報処理装置1では、動作制御部103は、取得部102により取得された追加情報202において、追加機能が追加済みである旨が示され、且つ、ROM12のプログラムのバージョンにおいて追加機能がサポートされていない場合、追加情報202に示されている情報(追加機能をサポートしているプログラムのバージョン)を表示させる。これにより、第2実施形態による情報処理装置1では、追加機能がサポートされるバージョンを表示することができる。したがって、基板が交換される等して追加された機能(例えば、課金スキームに係る機能)が実行できないような場合に、ユーザに追加機能がサポートされるバージョンを提示して追加機能の復元を促すことが可能となる。
また、実施形態の情報処理装置1では、追加機能は、課金スキームに係る機能(課金に応じて、情報処理装置1が実行可能な処理を実行するか否かを制御する機能)である。これにより、実施形態の情報処理装置1では、基板が交換される等して、今まで課金に応じて実行が許可されていた処理が、無制限に実行可能となってしまう事態の発生を抑制することができる。
また、実施形態の情報処理装置1では、動作制御部103は、更新処理を実行した後において、ROM12に書込まれたプログラムが追加機能をサポートしているか否かに関わらず、追加情報202を初期設定値に戻す処理を実行しない。これにより、実施形態の情報処理装置1では、基板が交換される等して追加機能がサポートされなくなった場合に、ROM12に書込まれているプログラムと、特定領域21A(21B)に書込まれている追加情報とに不整合が生じるようにすることができる。したがって、動作制御部103は、今まで実行されてきた追加機能が、基板交換などの後発的な事由により実行できなくなっていることを検知することが可能となる。
また、図1における情報処理装置1の各機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより位置検出を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、サーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものを含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。また、上記のプログラムを所定のサーバに記憶させておき、他の装置からの要求に応じて、当該プログラムを、通信回線を介して配信(ダウンロード等)させるようにしてもよい。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
1 情報処理装置
10 メイン基板
101 メイン記憶部
102 取得部
103 動作制御部
20 サブ基板
201 サブ記憶部
202 追加情報
10 メイン基板
101 メイン記憶部
102 取得部
103 動作制御部
20 サブ基板
201 サブ記憶部
202 追加情報
Claims (10)
- メイン基板と、前記メイン基板と通信可能なサブ基板とを備える情報処理装置であって、
前記サブ基板は、
前記メイン基板において実行されるプログラムのアップデートに応じた追加機能が追加済みであるか未追加であるかを示す追加情報を記憶するサブ記憶部、
を有し、
前記メイン基板は、
前記プログラムを記憶するメイン記憶部と、
前記情報処理装置の起動時において、前記サブ基板に記憶された前記追加情報を取得する取得部と、
前記取得部により取得された前記追加情報に前記追加機能が追加済みである旨が示され、且つ、前記プログラムのバージョンに基づいて前記追加機能がサポートされていないと判定した場合、前記情報処理装置の動作が制約されるように制御する動作制御部と、
を有する、
情報処理装置。 - 前記追加情報には、初期設定値として、前記追加機能が追加されていない旨の情報が設定され、
前記動作制御部は、前記取得部により取得された前記追加情報に前記追加機能が追加されていない旨が示され、且つ、前記メイン記憶部に前記追加機能をサポートする前記プログラムが書き込まれていた場合に、前記追加情報を前記追加機能が追加済みである旨の情報に書き換える更新処理を実行する、
請求項1に記載の情報処理装置。 - 前記動作制御部は、前記プログラムがアップデートされた後に前記情報処理装置が再起動された場合において、前記更新処理を実行する、
請求項2に記載の情報処理装置。 - 前記動作制御部は、前記追加情報に前記追加機能が追加済みである旨の情報を記憶させる場合、前記追加機能が追加済みであるか未追加であるかを二値で示す情報を記憶させる、
請求項2に記載の情報処理装置。 - 前記動作制御部は、前記追加情報に前記追加機能が追加済みである旨の情報を記憶させる場合、前記追加機能をサポートする前記プログラムのバージョンを記憶させる、
請求項2に記載の情報処理装置。 - 前記動作制御部は、前記取得部により取得された前記追加情報において前記追加機能が追加済みである旨が示され、且つ、前記プログラムのバージョンにおいて前記追加機能がサポートされていない場合、前記追加情報に示されている前記プログラムのバージョンを表示させる、
請求項5に記載の情報処理装置。 - 前記動作制御部は、前記更新処理を実行した後において、前記プログラムが前記追加機能をサポートしているか否かに関わらず、前記追加情報を前記初期設定値に戻す処理を実行しない、
請求項2から請求項6のいずれか一項に記載の情報処理装置。 - 前記追加機能は、課金に応じて、前記情報処理装置が実行可能な処理を実行するか否かを制御する機能である、
請求項1に記載の情報処理装置。 - メイン基板と、前記メイン基板と通信可能なサブ基板とを備え、前記サブ基板は前記メイン基板において実行されるプログラムのアップデートに応じた追加機能が追加済みであるか未追加であるかを示す追加情報を記憶するサブ記憶部を有し、前記メイン基板は前記プログラムを記憶するメイン記憶部を有する情報処理装置であるコンピュータが行う情報処理方法であって、
前記メイン基板の取得部が、前記情報処理装置の起動時において、前記サブ基板に記憶された前記追加情報を取得し、
前記メイン基板の動作制御部が、前記取得部により取得された前記追加情報に前記追加機能が追加済みである旨が示され、且つ、前記プログラムのバージョンに基づいて前記追加機能がサポートされていないと判定した場合、前記情報処理装置の動作が制約されるように制御する、
情報処理方法。 - メイン基板と、前記メイン基板と通信可能なサブ基板とを備え、前記サブ基板は前記メイン基板において実行されるプログラムのアップデートに応じた追加機能が追加済みであるか未追加であるかを示す追加情報を記憶するサブ記憶部を有し、前記メイン基板は前記プログラムを記憶するメイン記憶部を有する情報処理装置であるコンピュータに、
前記情報処理装置の起動時において、前記サブ基板に記憶された前記追加情報を取得させ、
前記取得された前記追加情報に前記追加機能が追加済みである旨が示され、且つ、前記プログラムのバージョンに基づいて前記追加機能がサポートされていないと判定した場合、前記情報処理装置の動作が制約されるように制御させる、
プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2023/002266 WO2024157393A1 (ja) | 2023-01-25 | 2023-01-25 | 情報処理装置、情報処理方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2023/002266 WO2024157393A1 (ja) | 2023-01-25 | 2023-01-25 | 情報処理装置、情報処理方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024157393A1 true WO2024157393A1 (ja) | 2024-08-02 |
Family
ID=91970004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2023/002266 WO2024157393A1 (ja) | 2023-01-25 | 2023-01-25 | 情報処理装置、情報処理方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2024157393A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002268764A (ja) * | 2001-03-14 | 2002-09-20 | Dainippon Printing Co Ltd | Icカードによるソフトウェアライセンス管理システム |
JP2006221229A (ja) * | 2005-02-08 | 2006-08-24 | Canon Inc | 情報処理装置および複合機能装置 |
JP2009070247A (ja) * | 2007-09-14 | 2009-04-02 | Ricoh Co Ltd | 情報処理装置、情報処理方法および画像処理装置 |
-
2023
- 2023-01-25 WO PCT/JP2023/002266 patent/WO2024157393A1/ja unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002268764A (ja) * | 2001-03-14 | 2002-09-20 | Dainippon Printing Co Ltd | Icカードによるソフトウェアライセンス管理システム |
JP2006221229A (ja) * | 2005-02-08 | 2006-08-24 | Canon Inc | 情報処理装置および複合機能装置 |
JP2009070247A (ja) * | 2007-09-14 | 2009-04-02 | Ricoh Co Ltd | 情報処理装置、情報処理方法および画像処理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8122447B2 (en) | Firmware installation | |
KR100901903B1 (ko) | 네트워크를 통한 펌웨어의 셀프-모니터링 및 업데이팅 | |
KR102107843B1 (ko) | 펌웨어 업데이트 방법 및 이를 사용한 전자 기기 | |
US6594723B1 (en) | Method and apparatus for updating data in nonvolatile memory | |
JP6185772B2 (ja) | 情報処理装置、その制御方法、及びプログラム | |
US20090271780A1 (en) | Automatic complete firmware upgrade | |
CN104123153A (zh) | 用于使用usb升级固件的装置与方法 | |
CN107678762B (zh) | 一种系统版本升级方法及装置 | |
JP2009169524A (ja) | 宅内設備機器用のネットワークシステム | |
JP2019507918A (ja) | 参照値を使ってメモリデバイスの有効なアクションを確保する | |
CN110851154B (zh) | 用于更新只读存储器编码的计算机实施方法、系统及介质 | |
EP2372565A1 (en) | Method for managing USB devices | |
EP2648092B1 (en) | Updating method and multi-domain embedded system | |
JP2009265877A (ja) | 電子機器 | |
KR20030073824A (ko) | 범용 직렬 버스를 이용한 시스템의 펌웨어 업그레이드방법 및 장치 | |
WO2024157393A1 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP6515462B2 (ja) | 情報処理装置、情報処理装置の設定方法及び設定プログラム | |
US20090132800A1 (en) | Method for adjusting setup default value of bios and main board thereof | |
CN104598281A (zh) | 用于升级电子设备的系统的方法 | |
JP2008009799A (ja) | 画像形成装置 | |
JP4867186B2 (ja) | 制御装置、方法、プログラム及び記憶媒体 | |
JP2010117944A (ja) | ソフトウェア更新システム、ソフトウェア更新方法、携帯電話端末及びプログラム | |
CN112685053A (zh) | 单片机程序远程升级控制方法 | |
WO2004003742A1 (ja) | 情報処理装置および方法、記録媒体、並びにプログラム | |
KR20090021695A (ko) | 플래쉬 메모리 롤백 시스템 및 그 방법 |
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: 23918359 Country of ref document: EP Kind code of ref document: A1 |