WO2015136964A1 - ライセンス情報管理装置、ライセンス情報管理方法、および、プログラム - Google Patents

ライセンス情報管理装置、ライセンス情報管理方法、および、プログラム Download PDF

Info

Publication number
WO2015136964A1
WO2015136964A1 PCT/JP2015/050878 JP2015050878W WO2015136964A1 WO 2015136964 A1 WO2015136964 A1 WO 2015136964A1 JP 2015050878 W JP2015050878 W JP 2015050878W WO 2015136964 A1 WO2015136964 A1 WO 2015136964A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
information
computer
license
license information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2015/050878
Other languages
English (en)
French (fr)
Inventor
裕 阿部
威彦 日岡
真輔 川ノ上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to CN201580012184.6A priority Critical patent/CN106062759B/zh
Priority to EP15761290.4A priority patent/EP3101575A4/en
Priority to JP2016507375A priority patent/JP6390696B2/ja
Priority to US15/123,259 priority patent/US20170076073A1/en
Publication of WO2015136964A1 publication Critical patent/WO2015136964A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105—Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/305—Authentication, i.e. establishing the identity or authorisation of security principals by remotely controlling device operation
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00—Arrangements for software engineering
    • G06F8/60—Software deployment
    • G06F8/61—Installation
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00—Business processing using cryptography
    • G06Q2220/10—Usage protection of distributed data files
    • G06Q2220/18—Licensing

Definitions

  • the present invention relates to a license information management apparatus that manages license information for using a program in each of two or more control devices.
  • Patent Document 1 Japanese Patent Laid-Open No. 2002-132368
  • Patent Document 1 permits downloading of firmware only for the number of devices corresponding to the price paid by the firmware purchaser for newly stored firmware.
  • An upgrade system is disclosed.
  • the present invention has been conceived in view of such a situation, and the purpose thereof is to make it possible for each control device to use the program license information used in each of two or more control devices. It is an object of the present invention to provide a license information management apparatus that can manage the work in a manner that makes the above work easier.
  • a license information management device is provided.
  • the license information management apparatus is information for validating a program in two or more control devices, and an input for receiving input of key information including information corresponding to the number of the two or more control devices and the program
  • the device, the communication device for transmitting the key information input to the input device to the activation server, the storage device, and the communication device can use the program in the two or more control devices from the activation server.
  • the controller installs the data for making the program usable or the program made available by the data in the control device, and updates the number information so as to subtract the number of the control devices that have performed the installation. Is configured to do.
  • the license information management apparatus further includes a media drive for communicating with a recording medium removable from the license information management apparatus.
  • the controller is configured to execute installation on the condition that a specific recording medium is loaded in the media drive.
  • the controller is configured to record data and number information for making the program available on a specific recording medium.
  • the controller records information specifying a specific recording medium in the storage device, and specifies information specifying the specific recording medium recorded in the storage device and the recording medium recorded in the recording medium.
  • the installation is executed on the condition that the number of pieces of information recorded in the storage device and the number of pieces of information recorded in the recording medium match.
  • the controller is configured to execute installation on the condition that data for making the program available or the program made available by the data is not installed in the control device.
  • a license information management method executed by a computer of the license information management apparatus is provided.
  • the license information management method is information for enabling a program in two or more control devices, and accepts input of key information including the number of the two or more control devices and information corresponding to the program; When the input key information is transmitted to the activation server, and the license information is received from the activation server to enable the program to be used in two or more control devices. Storing in a storage device of a computer.
  • the license information includes data for making the program usable and number information for specifying the number of two or more control devices.
  • a license information management program executed by the computer of the license information management apparatus is provided.
  • the license information management program is information for enabling the program in the two or more control devices to the computer, and the key information including the number of the two or more control devices and information corresponding to the program is input.
  • receiving license information which is information for enabling the program to be used in two or more control devices from the activation server
  • the step of receiving the key the step of transmitting the input key information to the activation server, and the activation server And storing the license information in a storage device of the computer.
  • the license information includes data for making the program usable and number information for specifying the number of two or more control devices.
  • the license information management apparatus can acquire information for making the program available in each of the two or more control devices only by transmitting the key information to the activation server once. This facilitates the work for making the program available in each of the plurality of control devices.
  • FIG. 1 is a diagram schematically showing a configuration of a first embodiment of a license management system according to the present invention.
  • FIG. It is a figure which shows an example of the hardware constitutions of a computer. It is a figure which shows an example of the hardware constitutions of PLC (programmable logic controller).
  • 5 is a flowchart of processing for a computer to acquire license information from an activation server in the license information management system of the present embodiment. It is a flowchart of the process for installing a program in PLC by a computer. It is a figure which shows typically the aspect of utilization of the recording medium and computer in 2nd Embodiment. It is a figure which shows an example of the hardware constitutions of the computer in 2nd Embodiment.
  • FIG. 1 is a diagram schematically showing the configuration of a first embodiment of a license management system according to the present invention.
  • the license management system includes a computer 300 and two or more PLCs 100.
  • the computer 300 is an example of a license information management device.
  • the computer 300 is realized by a general-purpose computer, for example.
  • the PLC 100 is a device that controls the system in an FA (Factory Automation) system installed at a manufacturing site of a production factory.
  • the PLC 100 is an example of a control device.
  • the control device is not limited to a device for controlling a given device, such as the PLC 100, as long as the control device includes a processor that executes a program.
  • Each PLC 100 downloads a program used for controlling the system from the computer 300.
  • the computer 300 manages license information of programs downloaded by two or more PLCs 100.
  • the user purchases a license for a program downloaded to two or more PLCs 100.
  • the user obtains information (hereinafter referred to as “key information”) for downloading the program to two or more PLCs 100.
  • the key information is, for example, data obtained by encrypting data including information specifying the program and information specifying the number of PLCs 100.
  • the key information is also called a “license code”.
  • the user who has obtained the key information inputs the key information into the computer 300.
  • the computer 300 transmits the key information to the activation server 400.
  • the activation server 400 can be realized by, for example, a general server having a device for communicating with an external device and a device having a calculation function.
  • the activation server 400 determines whether the key information is valid. If the activation server 400 determines that it is valid, the activation server 400 authenticates the computer 300 and activates the computer 300 for the number of programs for two or more PLCs 100. More specifically, the activation server 400 transmits information (license information) for using the program in the two or more PLCs 100 to the computer 300. Thereby, each of the two or more PLCs 100 can download the program from the computer 300.
  • License information is information for making a program available.
  • An example of the license information is data of the program itself.
  • the license information may be a key for decrypting the program.
  • the license information includes information for specifying the number of PLCs 100 that can use the program. The number corresponds to the key information.
  • the computer 300 allows the license information about programs installed in two or more PLCs 100 by one activation process (transmission of key information to the activation server 400). To get.
  • the user can connect the two or more PLCs 100 with one computer 300. You can install the program.
  • the activation server 400 preferably stores the key information used for authentication (or information for specifying the key information) as already used information. Thereby, it can be avoided that authentication is performed a plurality of times using the same key information.
  • FIG. 2 is a diagram illustrating an example of a hardware configuration of the computer 300. As shown in FIG. 2, the computer 300 is typically a general-purpose computer.
  • the computer 300 includes a CPU (Central Processing Unit) 302, a ROM (Read Only Memory) 304, a RAM (Random Access Memory) 306, and a hard disk (HDD) 308.
  • the CPU 302 executes various programs including an OS (Operating System).
  • the ROM 304 stores BIOS (Basic Input / Output System) and various data.
  • the RAM 306 provides a work area for storing data necessary for execution of the program by the CPU 302.
  • the HDD 308 stores a program executed by the CPU 302 in a nonvolatile manner.
  • the CPU 302 and the RAM 306 constitute an example of a controller.
  • the hard disk 308 can store information (program ID) for specifying a program to be installed in the PLC 100, data of the program, and the number of PLCs 100 that can install the program.
  • program ID for specifying a program to be installed in the PLC 100
  • data of the program data of the program
  • a program ID storage unit 391 indicates an area for storing a program ID.
  • the download program storage unit 392 indicates an area for storing program data.
  • the remaining license number storage unit 393 indicates an area for storing the number.
  • an application for managing license information of a program executed in the PLC 100 is installed.
  • an application storage unit 390 indicates an area for storing a program of the application.
  • the program can be recorded on a recording medium detachable from the computer 300 and distributed independently of the computer 300 main body.
  • the computer 300 also includes a keyboard 310 and a mouse 312 that accept operations from the user, a monitor 314 for presenting information to the user, and a connector 316.
  • the connector 316 is provided for connection to an external device including a recording medium 600 such as a USB (Universal Serial Bus) memory.
  • the CPU 302 can communicate with an external device such as the recording medium 600 via the connector 316. Thereby, the CPU 302 can execute a program stored in the recording medium 600, for example.
  • the program executed on the computer 300 may be downloaded from a host computer or the like via a network.
  • the computer 300 further includes a communication interface (IF) 318 for communicating with the PLC 100 (CPU unit 104) and the like.
  • IF communication interface
  • FIG. 3 is a diagram illustrating an example of a hardware configuration of the PLC 100.
  • the PLC 100 includes a processor 122, a main memory 124, a nonvolatile memory 126, an input device 132, and a connector 134.
  • the processor 122 controls the operation of the PLC 100 by executing a program stored in the nonvolatile memory 126 or the like.
  • the main memory 124 can be used as a work area for the processor 122.
  • the nonvolatile memory 126 stores various data such as programs.
  • the input device 132 accepts input of information from the outside and is configured by buttons, for example.
  • the connector 134 is provided for connection to an external device including a recording medium such as a USB memory.
  • the processor 122 can communicate with an external device via the connector 134.
  • FIG. 4 is a flowchart of a process for the computer 300 to acquire license information from the activation server 400 in the license information management system of this embodiment.
  • FIG. 4 shows processing executed on the computer 300 side (left side in FIG. 4) and processing executed on the activation server 400 side (right side in FIG. 4).
  • the processing executed on the computer 300 side is realized, for example, by executing an application stored in the application storage unit 390.
  • step S10 CPU 302 of computer 300 accepts an input of a license code (key information) via keyboard 310 or the like. Then, control proceeds to step S12.
  • a license code key information
  • step S12 the CPU 302 transmits the license code accepted in step S10 to the activation server 400.
  • the activation server 400 determines whether or not the license code transmitted from the computer 300 is valid.
  • the activation server 400 calculates, for example, a hash value of a number sequence included in the license code, determines that the license code is valid if the hash value is a specific value, and if it is a value other than the specific value. Judge that it is not valid. If the activation server 400 determines that the license code is valid, it proceeds to step S34 (YES in step S30), and if it is not valid, it proceeds to step S32 (NO in step S30).
  • step S32 the activation server 400 notifies the computer 300 that the license code transmitted by the computer 300 is invalid.
  • step S14 the CPU 302 notifies that the license code received in step S10 is invalid.
  • the notification is realized, for example, by displaying a message to that effect on the monitor 314.
  • step S34 the activation server 400 determines whether the license code is not yet used for authentication.
  • the activation server 400 can store the key information (license code) used for authentication (or information specifying this) as already used information.
  • step S ⁇ b> 34 the activation server 400 determines whether the license code transmitted from the computer 300 is stored as information already used in the activation server 400. If activation server 400 determines that the license code is already stored as used information, control proceeds to step S36 (NO in step S34). If activation server 400 determines that the license code is not stored as already used information, control proceeds to step S38 (YES in step S34).
  • step S36 the activation server 400 notifies the computer 300 that the license code transmitted from the computer 300 has already been used for authentication.
  • step S16 the CPU 302 informs that the license code input in step S10 cannot be used because it has already been used for authentication.
  • the notification is realized, for example, by displaying a message to that effect on the monitor 314.
  • the activation server 400 transmits license information to the computer 300.
  • the transmitted license information is information for the number of devices corresponding to the license code to use the program corresponding to the license code transmitted from the computer 300 in step S12.
  • the license code only needs to correspond to the program and the number of PLCs 100, and does not need to directly include information for specifying the program, and includes information for specifying the number. There is no need to be.
  • step S18 the CPU 302 notifies that the license authentication is successful.
  • the notification is realized, for example, by displaying a message to that effect on the monitor 314. Then, control proceeds to step S20.
  • step S20 the CPU 302 stores the program data in the download program storage unit 382 based on the license information, and stores the number of devices that can install the program in the remaining license number storage unit 293. 4 is terminated.
  • FIG. 5 is a flowchart of processing for installing a program in the PLC 100 by the computer 300.
  • the CPU 302 starts the processing on condition that an instruction for starting installation is input via the keyboard 310 or the like, for example. Further, this process is started in a state where the computer 300 is connected to the PLC 100. The connection may be wired or wireless.
  • the processing in FIG. 5 is realized by executing an application stored in the application storage unit 390, for example.
  • step S60 CPU 302 determines whether the number of units (license remaining number) stored in remaining license number storage unit 393 is greater than zero. If CPU 302 determines that the value is greater than 0, it proceeds to step S64 (YES in step S60), and if it is determined to be 0 or less, it proceeds to step S62 (NO in step S60).
  • the value of the number of units stored in the remaining license number storage unit 393 is registered as the maximum number permitted from the activation server 400 in step S20 (see FIG. 4). Thereafter, each time the program is installed in the PLC 100, the value of the number is counted down by “1” in step S70 described later.
  • step S62 the CPU 302 informs that the number of remaining licenses is insufficient, and ends the process of FIG.
  • the notification is realized, for example, by displaying a message to that effect on the monitor 314.
  • step S64 the CPU 302 determines whether or not the program to be installed is not yet installed in the PLC 100 in the PLC 100. The determination is based on whether a program having the same file name and version as the program is stored in the nonvolatile memory 126 of the PLC 100, for example. If the CPU 302 determines that the program is not yet installed in the PLC 100, the control proceeds to step S68 (YES in step S64), and if it is determined that the program is already installed, the control proceeds to step S66.
  • step S66 the CPU 302 informs the PLC 100 that has attempted to install the target program that the program has already been installed, and ends the process of FIG.
  • the notification is realized, for example, by displaying a message indicating that on the monitor 314.
  • step S68 the CPU 302 installs the target program in the PLC 100. Then, control proceeds to step S70.
  • step S70 the CPU 302 counts down the number of units (license remaining number) stored in the remaining license number storage unit 393, and ends the process of FIG.
  • the computer 300 acquires information for using the program and information for specifying the number of PLCs 100 that can use the program by one activation.
  • the PLC 100 is installed with the program from the computer 300.
  • the number of units specified by the information is updated so that the number of computers 300 installed with the program in the PLC 100 is deducted.
  • downloading of program data has been described as a specific example when the program is installed in the PLC 100 from the computer 300.
  • the encryption key may be downloaded from the computer 300 to the PLC 100 instead of downloading the program data itself.
  • license information is managed by the computer 300 and the recording medium 600. More specifically, the computer 300 executes the installation of the program described with reference to FIG. 5 on the condition that the recording medium 600 is attached to the computer 300. The license information is stored in both the computer 300 and the recording medium 600.
  • FIG. 6 is a diagram schematically illustrating a usage mode of the recording medium 600 and the computer 300 according to the second embodiment.
  • license information used by a certain computer 300 (computer 300 ⁇ / b> A in FIG. 6) is transferred to another computer 300 by using a recording medium 600. (Computer 300B in FIG. 6) can be taken over.
  • FIG. 7 is a diagram illustrating an example of a hardware configuration of the computer 300 according to the second embodiment. As illustrated in FIG. 7, the hardware configuration of the computer 300 according to the second embodiment can be the same as the hardware configuration of the computer 300 according to the first embodiment.
  • a PCID storage unit 394 indicates an area for storing information for identifying the computer 300 itself.
  • the media ID storage unit 395 indicates an area for storing information for specifying the recording medium 600.
  • FIG. 8 is a diagram schematically illustrating information handled as license information in the computer 300 and the recording medium 600 according to the second embodiment.
  • four states of the computer 300 and the recording medium 600 are shown as (A) to (D).
  • two computers 300 are shown as a computer 300A and a computer 300B.
  • 8A and 8B show a combination of the first computer 300A and the recording medium 600.
  • FIG. 8B and 8C show a combination of the second computer 300B and the recording medium 600.
  • the computer 300A can store the values of “program ID”, “license remaining number”, “PCID”, “media ID”, and “download program”. Among these, in the state shown in FIG. 8A, the computer 300A stores only the value of “PCID”. “PCID” is information for identifying the computer 300 ⁇ / b> A and is stored in the PCID storage unit 394. The “PCID” can be registered in the PCID storage unit 394 when the computer 300A is shipped from the factory or when the user starts using the computer 300A.
  • the recording medium 600 can store the values of “program ID”, “license remaining number”, “PCID”, “media ID”, and “download program” in the same manner as the computer 300A. Among these, in the state shown in FIG. 8A, the recording medium 600 stores only the value of “Media ID”. “Media ID” is information for specifying the recording medium 600.
  • the recording medium 600 may be any type of recording medium such as a USB memory or an SD (Secure Digital) memory card.
  • the “media ID” is stored in the recording medium 600 before being used in the license information management system of the second embodiment, for example, when the recording medium 600 is shipped.
  • the computer 300A stores values of “program ID”, “license remaining number”, “PCID”, “media ID”, and “download program”.
  • Program ID is information for specifying a program to be installed in the PLC 100, and is stored in the program ID storage unit 391.
  • the “license remaining number” is the remaining number of the PLC 100 that can install the program, and is stored in the remaining license number storage unit 393.
  • Download program is data of a program installed in the PLC 100, and is stored in the download program storage unit 392.
  • the computer 300A acquires the values of “program ID”, “license remaining number”, and “download program” by acquiring license information from the activation server 400, for example.
  • the computer 300 ⁇ / b> A acquires the value of “media ID” from the recording medium 600.
  • FIG. 8C shows a state in which the recording medium 600 shown in FIG. 8B is connected to the computer 300B in which the license information is not registered.
  • the data recorded on the recording medium 600 is the same as the state shown in FIG. 8 (B).
  • the computer 300B stores a value of only “PCID”, like the computer 300A in the state shown in FIG. Note that the value of “PCID” of the computer 300A is “PC01”, whereas the value of “PCID” of the computer 300B is “PC02”. In other words, the “PCID” value of the computer 300B is different from the “PCID” value of the computer 300A.
  • the computer 300B can store the license information stored in the recording medium 600 in the computer 300B by executing a process for installing the program in the PLC 100. As a result, the information shown in FIG. 8D is stored in the computer 300B. More specifically, as shown in (D) of FIG. 8, the computer 300B displays the “program ID”, “license remaining number”, “media ID”, and “download program” stored in the recording medium 600, Copy to the computer 300B.
  • the computer 300B also writes the “PCID” of the computer 300B in the recording medium 600.
  • “PC02” of the computer 300B is stored in the recording medium 600 as the value of “PCID” instead of “PC01” of the computer 300A.
  • the license information management system uses the information stored in the recording medium 600 to transfer license information from one computer 300A to another computer 300B. You can take over.
  • FIG. 9 is a flowchart of processing executed by the computer 300 according to the second embodiment to acquire license information from the activation server 400.
  • the process shown in FIG. 9 corresponds to the control in step S20 in FIG. That is, the process shown in FIG. 9 is started in response to, for example, the computer 300 (computer 300A) receiving the license information from the activation server 400.
  • step S200 CPU 302 of computer 300A determines whether or not recording medium 600 is connected to connector 316. If CPU 302 determines that it is connected, control proceeds to step S204 (YES in step S200). If CPU 302 determines that it is not connected, control proceeds to step S202 (NO in step S200).
  • step S202 the CPU 302 notifies an error and returns control to step S200. That is, in the process of FIG. 9, unless the recording medium 600 is connected to the connector 316 of the computer 300A, the control after step S204 is not executed.
  • step S204 the CPU 302 registers the ID of the recording medium 600 connected to the connector 316 as the media ID in the media ID storage unit 395. Then, control proceeds to step S206.
  • step S206 the CPU 302 stores the program in the download program storage unit 392 and stores the number of licenses (number) in the remaining license number storage unit 393 in the same manner as in step S20 of FIG. Then, control proceeds to step S208.
  • step S206 the CPU 302 stores the program ID in the program ID storage unit 391. Note that the program ID may be stored in step S10 of FIG.
  • step S208 “program ID”, “license remaining number”, “PCID”, and “download program” are written in the recording medium 600. Then, the process of FIG. 9 ends.
  • FIG. 10 is a flowchart of processing for installing a program in the PLC 100, which is executed in the computer 300 according to the second embodiment.
  • the CPU 302 starts the processing on condition that an instruction for starting installation is input via the keyboard 310 or the like, for example. Further, this process is started in a state where the computer 300 is connected to the PLC 100. The connection may be wired or wireless.
  • the process of FIG. 10 is realized by executing an application stored in the application storage unit 390, for example.
  • step S40 CPU 302 determines whether or not recording medium 600 is connected to connector 316. If CPU 302 determines that it is connected, control proceeds to step S44 (YES in step S40), and if it is determined that it is not connected, control proceeds to step S42 (NO in step S40).
  • step S42 the CPU 302 notifies an error due to the fact that the recording medium 600 is not connected, and ends the process of FIG.
  • the notification is realized by displaying a message corresponding to the monitor 314, for example.
  • step S44 the CPU 302 reads information recorded on the recording medium 600.
  • the information to be read includes the values of “program ID”, “license remaining number”, “PCID”, “media ID”, and “download program” described with reference to FIG. Then, control proceeds to step S46.
  • step S46 the CPU 302 determines whether or not the value of “media ID” is recorded in the media ID storage unit 395 of the computer 300 (where the CPU 302 is mounted). Then, if CPU 302 determines that it is recorded, it proceeds to step S50 (YES in step S46), and if it is determined that it is not recorded, it proceeds to step S48 (NO in step S46).
  • step S 48 the CPU 302 reads “program ID”, “license remaining number”, “media ID”, and “download program” from the recording medium 600, and loads them into the program ID storage unit 391, license remaining number storage unit 393, media The data is written in the ID storage unit 395 and the download program storage unit 392, respectively. Further, the CPU 302 writes “PCID” recorded in the PCID storage unit 394 in the recording medium 600.
  • the control in step S48 corresponds to a change from (C) to (D) in FIG. And control is advanced to step S60.
  • step S50 the CPU 302 determines whether or not the “media ID” read from the recording medium 600 matches the media ID recorded in the media ID storage unit 395. If CPU 302 determines that they match, the control proceeds to step S60 (YES in step S50), and if it does not match, control proceeds to step S52 (NO in step S50).
  • step S52 the CPU 302 notifies that the unauthorized recording medium 600 is connected, and ends the process of FIG.
  • the notification is realized, for example, by displaying a message to that effect on the monitor 314.
  • control in steps S60 to S70 can be executed in the same manner as the corresponding control in the processing of FIG.
  • step S60 the CPU 302 determines whether or not the remaining license number recorded in the remaining license number storage unit 393 is greater than zero. If CPU 302 determines that the remaining number of licenses is greater than 0, control proceeds to step S64 (YES in step S60), and if it is determined to be 0 or less, control proceeds to step S62 (NO in step S60).
  • step S62 the CPU 302 informs that the number of remaining licenses is insufficient for program installation, and ends the process of FIG.
  • the notification is realized, for example, by displaying a message to that effect on the monitor 314.
  • step S64 the CPU 302 determines in the PLC 100 whether the program to be installed has not been installed in the PLC 100 yet. If CPU 302 determines that the program is not yet installed in PLC 100, it proceeds to step S68 (YES in step S64), and if it is determined that it has already been installed, it proceeds to step S66.
  • step S66 the CPU 302 notifies the PLC 100 that has attempted to install the target program that the program has already been installed, and ends the process of FIG.
  • the notification is realized, for example, by displaying a message indicating that on the monitor 314.
  • step S68 the CPU 302 installs the target program in the PLC 100. Then, control proceeds to step S70.
  • step S70 the CPU 302 counts down the remaining license number stored in the remaining license number storage unit 393 by one. Then, control proceeds to step S72.
  • step S72 the CPU 302 counts down the value of the remaining number of licenses recorded on the recording medium by 1 and ends the processing of FIG.
  • the control after step S ⁇ b> 200 is executed on the condition that the recording medium 600 is connected to the computer 300.
  • the computer 300 may acquire the license information from the activation server 400 even if it is not connected to the recording medium 600 (step S208).
  • the computer 300 acquires license information from the activation server 400 without being connected to the recording medium 600.
  • the computer 300 executes a preliminary process for writing the license information acquired from the activation server 400 into the recording medium 600.
  • the process shown in FIG. 10 can be executed on condition that the preliminary process has already been executed, for example.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

 コンピュータ(300)は、1回のアクティベーションにより、アクティベーションサーバ(400)から、プログラムを利用するための情報と、当該プログラムを利用できるPLC(100)の台数を特定する情報とを取得する。PLC(100)は、コンピュータ(300)から、当該プログラムをインストールされる。当該情報によって特定される台数は、コンピュータ(300)がPLC(100)に上記プログラムをインストールした台数だけ差し引かれるように、更新される。

Description

ライセンス情報管理装置、ライセンス情報管理方法、および、プログラム
 本発明は、2以上の制御機器のそれぞれにおいてプログラムを利用するためのライセンス情報を管理するライセンス情報管理装置に関する。
 近年、コンピュータにおいて実行されるプログラムは、ネットワーク経由でダウンロードされたり、ネットワーク経由でダウンロードされたデータによってアクティベート(有効化)されるようになってきている。たとえば、特開2002-132368号公報(特許文献1)は、ファームウェアの購入者が新たに格納されるファームウェアのために支払った代金分に相当する台数分の装置についてのみファームウェアのダウンロードを許可する、バージョンアップシステムを開示している。
特開2002-132368号公報
 ところで、特許文献1の段落0009に「同一機種を複数台購入した購入者は、この秘密の番号と装置識別子をサーバヘ送って装置識別子のついたファームウェアプログラムをダウンロードする。購入した台数分これを繰り返すことにより、当該機種の識別子が埋め込まれたバージョンアップファームウェアプログラムを台数分ダウンロードすることができる。」と記載されるように、従来、複数の装置においてプログラムを利用しようとする場合、当該複数の装置のそれぞれについてダウンロード等の作業を必要とされ、煩雑であるという問題があった。
 本発明は、かかる実情に鑑み考え出されたものであり、その目的は、2以上の制御機器のそれぞれにおいて利用されるプログラムのライセンス情報を、各制御機器において当該プログラムが利用できるようになるための作業がより容易になる態様で管理することができるライセンス情報管理装置を提供することである。
 ある局面に従うと、ライセンス情報管理装置が提供される。ライセンス情報管理装置は、2台以上の制御機器においてプログラムを有効にするための情報であって、2台以上の制御機器の台数およびプログラムに対応する情報を含むキー情報の入力を受け付けるための入力装置と、入力装置に入力されたキー情報を、アクティベーションサーバへ送信するための通信装置と、記憶装置と、通信装置が、アクティベーションサーバから、2台以上の制御機器においてプログラムを利用可能にするための情報であるライセンス情報を受信した場合に、ライセンス情報を記憶装置に記憶するためのコントローラとを備え、ライセンス情報は、プログラムを利用可能にするためのデータと、2台以上の制御機器の台数を特定するための台数情報とを含む。
 好ましくは、コントローラは、制御機器に、プログラムを利用可能にするためのデータまたは当該データによって利用可能になったプログラムをインストールし、台数情報を、インストールを実行した制御機器の台数を差し引くように更新するように構成されている。
 好ましくは、ライセンス情報管理装置は、ライセンス情報管理装置に対して着脱可能な記録媒体と通信するためのメディアドライブをさらに備える。コントローラは、メディアドライブに特定の記録媒体が装着されていることを条件として、インストールを実行するように構成されている。
 好ましくは、コントローラは、特定の記録媒体に、プログラムを利用可能にするためのデータおよび台数情報を記録するように構成されている。
 好ましくは、コントローラは、記憶装置に、特定の記録媒体を特定する情報を記録し、記憶装置に記録されている特定の記録媒体を特定する情報と記録媒体に記録されている当該記録媒体を特定する情報とが一致し、かつ、記憶装置に記録されている台数情報と記録媒体に記録されている台数情報とが一致したことを条件として、インストールを実行するように構成されている。
 好ましくは、コントローラは、制御機器に、プログラムを利用可能にするためのデータまたは当該データによって利用可能にあったプログラムがインストールされていないことを条件として、インストールを実行するように構成されている。
 他の局面に従うと、ライセンス情報管理装置のコンピュータによって実行されるライセンス情報管理方法が提供される。ライセンス情報管理方法は、2台以上の制御機器においてプログラムを有効にするための情報であって、2台以上の制御機器の台数およびプログラムに対応する情報を含むキー情報の入力を受け付けるステップと、入力されたキー情報を、アクティベーションサーバへ送信するステップと、アクティベーションサーバから、2台以上の制御機器においてプログラムを利用可能にするための情報であるライセンス情報を受信した場合に、ライセンス情報をコンピュータの記憶装置に記憶するステップとを備える。ライセンス情報は、プログラムを利用可能にするためのデータと、2台以上の制御機器の台数を特定するための台数情報とを含む。
 さらに他の局面に従うと、ライセンス情報管理装置のコンピュータによって実行されるライセンス情報管理用のプログラムが提供される。ライセンス情報管理用のプログラムは、コンピュータに、2台以上の制御機器においてプログラムを有効にするための情報であって、2台以上の制御機器の台数およびプログラムに対応する情報を含むキー情報の入力を受け付けるステップと、入力されたキー情報を、アクティベーションサーバへ送信するステップと、アクティベーションサーバから、2台以上の制御機器においてプログラムを利用可能にするための情報であるライセンス情報を受信した場合に、ライセンス情報をコンピュータの記憶装置に記憶するステップとを実行させる。ライセンス情報は、プログラムを利用可能にするためのデータと、2台以上の制御機器の台数を特定するための台数情報とを含む。
 本発明によれば、ライセンス情報管理装置は、一度キー情報をアクティベーションサーバに送信するだけで、2以上の制御機器のそれぞれにおいてプログラムを利用可能にするための情報を取得することができる。これにより、複数の制御機器のそれぞれにおいてプログラムを利用可能にするための作業が容易になる。
本発明に係るライセンス管理システムの第1の実施の形態の構成を概略的に示す図である。 コンピュータのハードウェア構成の一例を示す図である。 PLC(プログラマブルロジックコントローラ)のハードウェア構成の一例を示す図である。 本実施の形態のライセンス情報管理システムにおいて、コンピュータがアクティベーションサーバからライセンス情報を取得するための処理のフローチャートである。 コンピュータによってPLCにプログラムをインストールするための処理のフローチャートである。 第2の実施の形態における記録媒体およびコンピュータの利用の態様を模式的に示す図である。 第2の実施の形態におけるコンピュータのハードウェア構成の一例を示す図である。 第2の実施の形態のコンピュータと記録媒体とにおいて、ライセンス情報として扱われる情報を模式的に示す図である。 第2の実施の形態のコンピュータが、アクティベーションサーバからライセンス情報を取得するために実行する処理のフローチャートである。 第2の実施の形態のコンピュータにおいて実行される、PLCにプログラムをインストールするための処理のフローチャートである。
 本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
 [第1の実施の形態]
 図1は、本発明に係るライセンス管理システムの第1の実施の形態の構成を概略的に示す図である。ライセンス管理システムは、コンピュータ300と、2以上のPLC100とを含む。コンピュータ300は、ライセンス情報管理装置の一例である。コンピュータ300は、たとえば汎用のコンピュータによって実現される。
 PLC100は、生産工場の製造現場等に設置されるFA(ファクトリオートメーション)システムにおいて、当該システムの制御を司る機器である。また、PLC100は、制御機器の一例である。ただし、本実施の形態において、制御機器はプログラムを実行するプロセッサを備えた機器であれば、PLC100等の、所与の装置を制御するための機器に限定されない。
 各PLC100は、コンピュータ300から、上記システムの制御に利用されるプログラムをダウンロードする。コンピュータ300は、2以上のPLC100によってダウンロードされるプログラムのライセンス情報を管理する。
 より具体的には、ユーザは、2以上のPLC100にダウンロードされるプログラムのライセンスを購入する。これにより、当該ユーザは、2以上のPLC100にプログラムをダウンロードするための情報(以下、「キー情報」という)を入手する。キー情報は、たとえば、上記プログラムを特定する情報とPLC100の台数を特定する情報とを含むデータが暗号化されたものである。本実施の形態では、キー情報は、「ライセンスコード」とも呼ばれる。
 キー情報を入手したユーザは、コンピュータ300に、上記キー情報を入力する。これに応じて、コンピュータ300は、当該キー情報をアクティベーションサーバ400へ送信する。アクティベーションサーバ400は、たとえば、外部の装置と通信するための装置および演算機能を有する装置を有する、一般的なサーバによって実現され得る。
 アクティベーションサーバ400は、当該キー情報が正当なものか否かを判断する。正当なものであると判断すると、アクティベーションサーバ400は、コンピュータ300を認証し、コンピュータ300に対して、2以上のPLC100についての台数分のプログラムのアクティベーションを実行する。より具体的には、アクティベーションサーバ400は、コンピュータ300に対して、2以上のPLC100において上記プログラムを利用するための情報(ライセンス情報)を送信する。これにより、2以上のPLC100のそれぞれが、コンピュータ300から上記プログラムをダウンロードできるようになる。
 ライセンス情報とは、プログラムを利用可能にするための情報である。ライセンス情報の一例としては、プログラムそのもののデータである。コンピュータ300においてプログラムが暗号化されて格納されている場合、ライセンス情報は、当該プログラムを復号化するための鍵であり得る。
 また、ライセンス情報は、上記プログラムを利用することができるPLC100の台数を特定する情報を含む。なお、当該台数は、上記キー情報に対応する。
 第1の実施の形態に係るライセンス管理システムでは、コンピュータ300は、1回のアクティベーション処理(アクティベーションサーバ400へのキー情報の送信)によって、2以上のPLC100にインストールされるプログラムについてのライセンス情報を取得する。これにより、たとえば、公衆ネットワークに接続できない環境などの、2以上のPLC100がアクティベーションサーバ400との通信ができない環境にある場合でも、ユーザは、1台のコンピュータ300で、当該2以上のPLC100にプログラムをインストールできる。
 アクティベーションサーバ400は、認証に利用されたキー情報(または、当該キー情報を特定する情報)を、すでに使用された情報として、記憶することが好ましい。これにより、同じキー情報を利用して、複数回認証が行なわれることが回避され得る。
 <コンピュータ300のハードウェア構成>
 図2は、コンピュータ300のハードウェア構成の一例を示す図である。図2に示されるように、コンピュータ300は、典型的には、汎用のコンピュータで構成される。
 より具体的には、図2に示されるように、コンピュータ300は、CPU(Central Processing Unit)302と、ROM(Read Only Memory)304と、RAM(Random Access Memory)306と、ハードディスク(HDD)308とを含む。CPU302は、OS(Operating System)を含む各種プログラムを実行する。ROM304は、BIOS(Basic Input/Output System)や各種データを格納する。RAM306は、CPU302でのプログラムの実行に必要なデータを格納するための作業領域を提供する。HDD308は、CPU302で実行されるプログラムなどを不揮発的に格納する。制御システム1では、CPU302とRAM306とによって、コントローラの一例が構成される。
 ハードディスク308には、PLC100にインストールされるプログラムを特定する情報(プログラムID)と、当該プログラムのデータと、当該プログラムをインストールできるPLC100の台数とが記憶され得る。図2において、プログラムID記憶部391は、プログラムIDを記憶するための領域を示す。ダウンロードプログラム記憶部392は、プログラムのデータを記憶するための領域を示す。ライセンス残数記憶部393は、上記台数を記憶するための領域を示す。
 コンピュータ300には、PLC100において実行されるプログラムのライセンス情報を管理するためのアプリケーションがインストールされている。図2において、アプリケーション記憶部390は、当該アプリケーションのプログラムを記憶するための領域を示す。当該プログラムは、コンピュータ300に対して着脱可能な記録媒体に記録されて、コンピュータ300本体とは独立して流通し得る。
 コンピュータ300は、また、ユーザからの操作を受け付けるキーボード310およびマウス312と、情報をユーザに提示するためのモニタ314と、コネクタ316とを含む。コネクタ316は、USB(Universal Serial Bus)メモリ等の記録媒体600を含む外部の機器と接続するために設けられている。CPU302は、コネクタ316を介して、記録媒体600等の外部の機器と通信し得る。これにより、CPU302は、たとえば記録媒体600に格納されたプログラムを実行し得る。コンピュータ300で実行されるプログラムは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードされる場合もあり得る。コンピュータ300は、さらに、PLC100(CPUユニット104)などと通信するための通信インタフェース(IF)318を含む。
 <PLC100のハードウェア構成>
 図3は、PLC100のハードウェア構成の一例を示す図である。図3に示されるように、PLC100は、プロセッサ122と、メインメモリ124と、不揮発性メモリ126と、入力装置132と、コネクタ134とを含む。
 プロセッサ122は、不揮発性メモリ126等に格納されたプログラムを実行することにより、PLC100の動作を制御する。メインメモリ124は、プロセッサ122の作業領域として利用され得る。不揮発性メモリ126は、プログラム等の各種のデータを記憶する。入力装置132は、外部からの情報の入力を受け付け、たとえばボタン等によって構成される。コネクタ134は、USBメモリ等の記録媒体を含む外部の機器と接続するために設けられている。プロセッサ122は、コネクタ134を介して、外部の機器と通信し得る。
 <ライセンス情報を取得するための処理>
 図4は、本実施の形態のライセンス情報管理システムにおいて、コンピュータ300がアクティベーションサーバ400からライセンス情報を取得するための処理のフローチャートである。図4では、コンピュータ300側で実行される処理(図4の左側)と、アクティベーションサーバ400側で実行される処理(図4の右側)とが示されている。コンピュータ300側で実行される処理は、たとえばアプリケーション記憶部390に格納されたアプリケーションが実行されることによって実現される。
 図4を参照して、ステップS10で、コンピュータ300のCPU302は、キーボード310等を介したライセンスコード(キー情報)の入力を受け付ける。そして、制御はステップS12へ進められる。
 ステップS12で、CPU302は、アクティベーションサーバ400へ、ステップS10で入力を受け付けたライセンスコードを送信する。
 これに応じて、ステップS30で、アクティベーションサーバ400(の演算装置)は、コンピュータ300から送信されたライセンスコードが正当であるかどうかを判断する。アクティベーションサーバ400は、たとえばライセンスコードに含まれる数列のハッシュ値を算出し、当該ハッシュ値が特定の値であればライセンスコードが正当であると判断し、当該特定の値以外の値であれば正当ではないと判断する。アクティベーションサーバ400は、ライセンスコードが正当であると判断するとステップS34へ制御を進め(ステップS30でYES)、正当ではないと判断するとステップS32へ制御を進める(ステップS30でNO)。
 ステップS32では、アクティベーションサーバ400は、コンピュータ300に対して、当該コンピュータ300が送信したライセンスコードが不正であることを通知する。
 当該通知を受信すると、ステップS14で、CPU302は、ステップS10で入力を受け付けたライセンスコードが不正であることを報知する。当該報知は、たとえばモニタ314にその旨のメッセージを表示することによって実現される。
 一方、ステップS34で、アクティベーションサーバ400は、ライセンスコードがまだ認証に利用されていないかどうかを判断する。上記したように、アクティベーションサーバ400は、認証に利用されたキー情報(ライセンスコード)(または、これを特定する情報)を、すでに使用された情報として、記憶することができる。ステップS34では、アクティベーションサーバ400は、コンピュータ300から送信されたライセンスコードがアクティベーションサーバ400において既に使用された情報として記憶されているかどうかを判断する。アクティベーションサーバ400は、上記ライセンスコードが既に使用された情報として記憶されていると判断すると、ステップS36へ制御を進める(ステップS34でNO)。また、アクティベーションサーバ400は、上記ライセンスコードが既に使用された情報として記憶されていないと判断すると、ステップS38へ制御を進める(ステップS34でYES)。
 ステップS36では、アクティベーションサーバ400は、コンピュータ300に、当該コンピュータ300から送信されたライセンスコードが既に認証に利用されたものであることを通知する。
 当該通知を受信すると、ステップS16で、CPU302は、ステップS10で入力されたライセンスコードが既に認証に利用されたものであるため、利用できないことを報知する。当該報知は、たとえばその旨のメッセージをモニタ314に表示することにより実現される。
 ステップS38では、アクティベーションサーバ400は、コンピュータ300に、ライセンス情報を送信する。送信されるライセンス情報は、ステップS12においてコンピュータ300から送信されたライセンスコードに対応するプログラムを、当該ライセンスコードが対応する台数の機器が利用するための情報である。なお、当該ライセンスコードは、当該プログラムとPLC100の台数とに対応していればよく、直接的に、当該プログラムを特定する情報を含んでいる必要はなく、また、台数を特定する情報を含んでいる必要はない。
 ライセンス情報を受信すると、ステップS18は、CPU302は、ライセンスの認証が成功したことを報知する。当該報知は、たとえばモニタ314にその旨のメッセージを表示することによって実現される。そして、制御はステップS20へ進められる。
 ステップS20では、CPU302は、ライセンス情報に基づいて、プログラムのデータをダウンロードプログラム記憶部382に格納し、また、当該プログラムをインストールすることができる機器の台数をライセンス残数記憶部293に格納して、図4の処理を終了させる。
 <プログラムのインストール>
 図5は、コンピュータ300によってPLC100にプログラムをインストールするための処理のフローチャートである。CPU302は、当該処理を、たとえばキーボード310等を介してインストールを開始するための指示が入力されたことを条件として開始する。また、当該処理は、コンピュータ300がPLC100と接続された状態で開始される。接続は、有線であっても良いし、無線であっても良い。図5の処理は、たとえばアプリケーション記憶部390に格納されたアプリケーションが実行されることによって実現される。
 図5を参照して、ステップS60で、CPU302は、ライセンス残数記憶部393に記憶された台数(ライセンス残数)が0より大きいか否かを判断する。そして、CPU302は、0より大きいと判断するとステップS64へ制御を進め(ステップS60でYES)、0以下であると判断するとステップS62へ制御を進める(ステップS60でNO)。
 ライセンス残数記憶部393に格納される台数の値は、ステップS20(図4参照)で、アクティベーションサーバ400から許可された最大の数として登録される。その後、当該台数の値は、PLC100にプログラムがインストールされるたびに、後述するステップS70で「1」ずつカウントダウンされる。
 ステップS62では、CPU302は、ライセンス残数が不足していることを報知して、図5の処理を終了する。当該報知は、たとえばモニタ314にその旨のメッセージを表示することによって実現される。
 ステップS64では、CPU302は、PLC100において、インストールの対象となるプログラムが未だPLC100にインストールされていないかどうかを判断する。当該判断は、たとえばPLC100の不揮発性メモリ126に、当該プログラムと同じファイル名およびバージョンを持つプログラムが格納されているかどうかに基づく。CPU302は、PLC100に未だ当該プログラムがインストールされていないと判断するとステップS68へ制御を進め(ステップS64でYES)、既にインストールされていると判断するとステップS66へ制御を進める。
 ステップS66で、CPU302は、対象のプログラムをインストールしようとしたPLC100に既に当該プログラムがインストールされていることを報知して、図5の処理を終了させる。当該報知は、たとえばモニタ314にその旨を示すメッセージを表示することによって実現される。
 ステップS68で、CPU302は、対象のプログラムをPLC100にインストールする。そして、制御はステップS70へ進められる。
 ステップS70で、CPU302は、ライセンス残数記憶部393に格納されている台数(ライセンス残数)を1カウントダウンして、図5の処理を終了させる。
 以上説明した第1の実施の形態では、コンピュータ300は、1回のアクティベーションにより、プログラムを利用するための情報と、当該プログラムを利用できるPLC100の台数を特定する情報とを取得する。PLC100は、コンピュータ300から、当該プログラムをインストールされる。当該情報によって特定される台数は、コンピュータ300がPLC100に上記プログラムをインストールした台数だけ差し引かれるように、更新される。
 第1の実施の形態では、コンピュータ300からPLC100にプログラムがインストールされる場合の具体例として、プログラムのデータのダウンロードが説明された。なお、たとえばPLC100においてプログラムのデータが暗号化されて格納されている場合には、コンピュータ300からPLC100に、プログラムのデータそのものがダウンロードされる代わりに、当該暗号化の鍵がダウンロードされても良い。
 [第2の実施の形態]
 第2の実施の形態では、コンピュータ300と記録媒体600とによって、ライセンス情報が管理される。より具体的には、コンピュータ300は、図5を参照して説明されたプログラムのインストールを、記録媒体600がコンピュータ300に装着されていることを条件として実行する。ライセンス情報は、コンピュータ300および記録媒体600の双方に格納される。
 図6は、第2の実施の形態における記録媒体600およびコンピュータ300の利用の態様を模式的に示す図である。第2の実施の形態では、さらに、図6に示されるように、記録媒体600が利用されることにより、あるコンピュータ300(図6中のコンピュータ300A)で利用されたライセンス情報を他のコンピュータ300(図6中のコンピュータ300B)に引き継ぐことができる。
 <コンピュータ300の構成>
 図7は、第2の実施の形態におけるコンピュータ300のハードウェア構成の一例を示す図である。図7に示されるように、第2の実施の形態のコンピュータ300のハードウェア構成は、第1の実施の形態のコンピュータ300のハードウェア構成と同様とすることができる。
 第2の実施の形態のコンピュータ300のHDD308には、コンピュータ300自体を特定するための情報と、記録媒体600を特定する情報とがさらに格納される。図7において、PCID記憶部394は、コンピュータ300自体を特定するための情報を記憶するための領域を示す。メディアID記憶部395は、記録媒体600を特定する情報を記憶するための領域を示す。
 <ライセンス情報の管理の概要>
 図8は、第2の実施の形態のコンピュータ300と記録媒体600とにおいて、ライセンス情報として扱われる情報を模式的に示す図である。図8では、(A)~(D)として、コンピュータ300および記録媒体600の4つの状態が示されている。図8の(A)~(D)では、2台のコンピュータ300が、コンピュータ300Aおよびコンピュータ300Bとして示されている。図8の(A)および(B)では、1台目のコンピュータ300Aと記録媒体600との組合せが示されている。図8の(B)および(C)では、2台目のコンピュータ300Bと記録媒体600との組合せが示されている。
 まず、図8の(A)を参照して、コンピュータ300Aは、「プログラムID」「ライセンス残数」「PCID」「メディアID」および「ダウンロードプログラム」のそれぞれの値を記憶し得る。この中で、図8の(A)に示された状態では、コンピュータ300Aは、「PCID」の値のみを記憶する。「PCID」は、コンピュータ300Aを特定する情報であり、PCID記憶部394に格納される。「PCID」は、コンピュータ300Aの工場出荷時、または、ユーザによってコンピュータ300Aの利用開始時等に、PCID記憶部394に登録され得る。
 また、記録媒体600は、コンピュータ300Aと同様に、「プログラムID」「ライセンス残数」「PCID」「メディアID」および「ダウンロードプログラム」のそれぞれの値を記憶し得る。この中で、図8の(A)に示された状態では、記録媒体600は、「メディアID」の値のみを記憶する。「メディアID」は、記録媒体600を特定する情報である。記録媒体600は、たとえばUSBメモリ、SD(Secure Digital)メモリカードなどのあらゆる種類の記録媒体であり得る。「メディアID」は、たとえば記録媒体600の出荷時等、第2の実施の形態のライセンス情報管理システムにおいて利用される前に記録媒体600に格納されている。
 次に、図8の(B)を参照して、コンピュータ300Aは、「プログラムID」「ライセンス残数」「PCID」「メディアID」および「ダウンロードプログラム」の値を記憶する。
 「プログラムID」は、PLC100にインストールされるプログラムを特定する情報であり、プログラムID記憶部391に格納される。
 「ライセンス残数」は、当該プログラムをインストールできるPLC100の残数であり、ライセンス残数記憶部393に格納される。
 「ダウンロードプログラム」は、PLC100にインストールされるプログラムのデータであり、ダウンロードプログラム記憶部392に格納される。
 コンピュータ300Aは、たとえば、アクティベーションサーバ400からライセンス情報を取得することにより、「プログラムID」「ライセンス残数」および「ダウンロードプログラム」の値を取得する。また、コンピュータ300Aは、記録媒体600から、「メディアID」の値を取得する。
 図8の(B)に示された状態では、記録媒体600においても、「プログラムID」「ライセンス残数」「PCID」「メディアID」および「ダウンロードプログラム」の値が格納されている。「プログラムID」「ライセンス残数」「PCID」および「ダウンロードプログラム」の値は、コンピュータ300Aによって書き込まれる。
 コンピュータ300Aが故障や紛失によって利用できなくなった場合、ユーザは、コンピュータ300Aに接続していた記録媒体600を、他のコンピュータ300Bに接続する。図8の(C)には、図8の(B)に示された記録媒体600が、ライセンス情報を登録されていないコンピュータ300B接続された状態が示されている。
 図8の(C)に示された状態では、記録媒体600に記録されているデータは、図8の(B)に示された状態と同様である。
 一方、図8の(C)に示された状態では、コンピュータ300Bは、図8の(A)に示された状態のコンピュータ300Aと同様に、「PCID」のみの値を記憶している。なお、コンピュータ300Aの「PCID」の値が「PC01」であるのに対し、コンピュータ300Bの「PCID」の値は「PC02」である。つまり、コンピュータ300Bの「PCID」の値は、コンピュータ300Aの「PCID」の値とは異なる。
 図9を参照して後述するように、コンピュータ300Bは、プログラムをPLC100にインストールさせるための処理を実行することにより、記録媒体600に格納されたライセンス情報を当該コンピュータ300Bに格納できる。これにより、コンピュータ300Bには、図8の(D)に示される情報が記憶される。より具体的には、図8の(D)に示されるように、コンピュータ300Bは、記録媒体600が記憶している「プログラムID」「ライセンス残数」「メディアID」および「ダウンロードプログラム」を、当該コンピュータ300Bにコピーする。
 コンピュータ300Bは、また、当該コンピュータ300Bの「PCID」を記録媒体600に書き込む。これにより、図8の(D)に示された状態では、記録媒体600には、「PCID」の値として、コンピュータ300Aの「PC01」の代わりに、コンピュータ300Bの「PC02」が格納される。
 以上、図8を参照して説明したように、第2の実施の形態のライセンス情報管理システムでは、記録媒体600に格納された情報を利用して、ライセンス情報をあるコンピュータ300Aから他のコンピュータ300Bへと引き継ぐことができる。
 <ライセンス情報を取得するための処理>
 図9を参照して、コンピュータ300Aおよび記録媒体600において図8の(A)に示されたデータがどのように格納されるかを説明する。図9は、第2の実施の形態のコンピュータ300が、アクティベーションサーバ400からライセンス情報を取得するために実行する処理のフローチャートである。図9に示された処理は、図4のステップS20の制御に相当する。つまり、図9に示された処理は、たとえば、コンピュータ300(コンピュータ300A)が、アクティベーションサーバ400からライセンス情報を受信したことに応じて開始される。
 図9を参照して、ステップS200で、コンピュータ300AのCPU302は、コネクタ316に記録媒体600が接続されているかどうかを判断する。そして、CPU302は、接続されていると判断するとステップS204へ制御を進め(ステップS200でYES)、接続されていないと判断するとステップS202へ制御を進める(ステップS200でNO)。
 ステップS202で、CPU302は、エラーを報知してステップS200へ制御を戻す。つまり、図9の処理では、コンピュータ300Aのコネクタ316に記録媒体600が接続されない限り、ステップS204以降の制御が実行されない。
 ステップS204で、CPU302は、メディアID記憶部395に、メディアIDとして、コネクタ316に接続された記録媒体600のIDを登録する。そして、制御はステップS206へ進められる。
 ステップS206で、CPU302は、図4のステップS20と同様に、ダウンロードプログラム記憶部392にプログラムを格納し、ライセンス残数記憶部393にライセンス数(台数)を格納する。そして、制御はステップS208へ進められる。また、ステップS206では、CPU302は、プログラムIDをプログラムID記憶部391に格納する。なお、プログラムIDは、図4のステップS10で格納される場合もあり得る。
 ステップS208では、記録媒体600に、「プログラムID」「ライセンス残数」「PCID」および「ダウンロードプログラム」を書き込む。そして、図9の処理は終了する。
 <プログラムのインストール>
 図10は、第2の実施の形態のコンピュータ300において実行される、PLC100にプログラムをインストールするための処理のフローチャートである。CPU302は、当該処理を、たとえばキーボード310等を介してインストールを開始するための指示が入力されたことを条件として開始する。また、当該処理は、コンピュータ300がPLC100と接続された状態で開始される。接続は、有線であっても良いし、無線であっても良い。図10の処理は、たとえばアプリケーション記憶部390に格納されたアプリケーションが実行されることによって実現される。
 図10を参照して、ステップS40で、CPU302は、コネクタ316に記録媒体600が接続されているかどうかを判断する。そして、CPU302は、接続されていると判断するとステップS44へ制御を進め(ステップS40でYES)、接続されていないと判断するとステップS42へ制御を進める(ステップS40でNO)。
 ステップS42で、CPU302は、記録媒体600が接続されていないことによるエラーを報知して、図10の処理を終了させる。当該報知は、たとえばモニタ314に対応するメッセージを表示することによって実現される。
 ステップS44で、CPU302は、記録媒体600に記録されている情報を読み込む。読み込まれる情報は、図8を参照して説明された、「プログラムID」「ライセンス残数」「PCID」「メディアID」および「ダウンロードプログラム」の値である。そして、制御はステップS46へ進められる。
 ステップS46で、CPU302は、(当該CPU302が搭載されている)コンピュータ300のメディアID記憶部395に、「メディアID」の値が記録されているかどうかを判断する。そして、CPU302は、記録されていると判断するとステップS50へ制御を進め(ステップS46でYES)、記録されていないと判断するとステップS48制御を進める(ステップS46でNO)。
 ステップS48で、CPU302は、記録媒体600から「プログラムID」「ライセンス残数」「メディアID」および「ダウンロードプログラム」を読み込んで、それぞれを、プログラムID記憶部391、ライセンス残数記憶部393、メディアID記憶部395、および、ダウンロードプログラム記憶部392のそれぞれに書き込む。また、CPU302は、PCID記憶部394に記録されている「PCID」を記録媒体600に書き込む。ステップS48の制御は、図8における(C)から(D)への変更に相当する。そして、制御はステップS60へ進められる。
 ステップS50で、CPU302は、記録媒体600から読み込んだ「メディアID」が、メディアID記憶部395に記録されているメディアIDと一致するかどうかを判断する。そして、CPU302は、一致すると判断するとステップS60へ制御を進め(ステップS50でYES)、一致しないと判断するとステップS52へ制御を進める(ステップS50でNO)。
 ステップS52で、CPU302は、不正な記録媒体600が接続されていることを報知して、図10の処理を終了させる。当該報知は、たとえばモニタ314にその旨のメッセージを表示することによって実現される。
 ステップS60~S70の制御は、図5の処理の対応する制御と同様の態様で実行され得る。
 より具体的には、ステップS60で、CPU302は、ライセンス残数記憶部393に記録されたライセンス残数が0より大きいか否かを判断する。そして、CPU302は、ライセンス残数が0より大きいと判断するとステップS64へ制御を進め(ステップS60でYES)、0以下であると判断すろとステップS62へ制御を進める(ステップS60でNO)。
 ステップS62で、CPU302は、プログラムのインストールにはライセンス残数が不足していることを報知して、図10の処理を終了させる。当該報知は、たとえばその旨のメッセージをモニタ314に表示することによって実現される。
 ステップS64で、CPU302は、PLC100において、インストールの対象となるプログラムが未だPLC100にインストールされていないかどうかを判断する。そして、CPU302は、PLC100に未だ当該プログラムがインストールされていないと判断するとステップS68へ制御を進め(ステップS64でYES)、既にインストールされていると判断するとステップS66へ制御を進める。
 ステップS66で、CPU302は、対象のプログラムをインストールしようとしたPLC100に既に当該プログラムがインストールされていることを報知して、図10の処理を終了させる。当該報知は、たとえばモニタ314にその旨を示すメッセージを表示することによって実現される。
 ステップS68で、CPU302は、対象のプログラムをPLC100にインストールする。そして、制御はステップS70へ進められる。
 ステップS70で、CPU302は、ライセンス残数記憶部393に格納されているライセンス残数を1カウントダウンする。そして、制御はステップS72へ進められる。
 ステップS72で、CPU302は、記録媒体に記録されたライセンス残数の値を1カウントダウンして、図10の処理を終了させる。
 以上、図9を参照して説明された処理では、ステップS200以降の制御は、コンピュータ300に記録媒体600が接続されていることを条件として実行された。なお、コンピュータ300は、記録媒体600と接続していなくとも、アクティベーションサーバ400からライセンス情報を取得(ステップS208)しても良い。たとえば、コンピュータ300は、記録媒体600に接続されることなく、アクティベーションサーバ400からライセンス情報を取得する。ライセンス情報を取得した後、コンピュータ300は、アクティベーションサーバ400から取得したライセンス情報を記録媒体600に書き込むための、予備的な処理を実行する。図10に示された処理は、たとえば、当該予備的な処理がすでに実行されたことを条件として、実行可能になる。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 100 PLC、122 プロセッサ、124 メインメモリ、126 不揮発性メモリ、132 入力装置、134,316 コネクタ、300 コンピュータ、302 CPU、308 HDD、390 アプリケーション記憶部、391 プログラムID記憶部、392 ダウンロードプログラム記憶部、393 ライセンス残数記憶部、394 PCID記憶部、395 メディアID記憶部、400 アクティベーションサーバ、600 記録媒体。

Claims (8)

  1.  2台以上の制御機器においてプログラムを有効にするための情報であって、前記2台以上の制御機器の台数および前記プログラムに対応する情報を含むキー情報の入力を受け付けるための入力装置と、
     前記入力装置に入力された前記キー情報を、アクティベーションサーバへ送信するための通信装置と、
     記憶装置と、
     前記通信装置が、前記アクティベーションサーバから、前記2台以上の制御機器において前記プログラムを利用可能にするための情報であるライセンス情報を受信した場合に、前記ライセンス情報を前記記憶装置に記憶するためのコントローラとを備え、
     前記ライセンス情報は、前記プログラムを利用可能にするためのデータと、前記2台以上の制御機器の台数を特定するための台数情報とを含む、ライセンス情報管理装置。
  2.  前記コントローラは、
      前記制御機器に、前記プログラムを利用可能にするためのデータまたは当該データによって利用可能になったプログラムをインストールし、
      前記台数情報を、前記インストールを実行した制御機器の台数を差し引くように更新するように構成されている、請求項1に記載のライセンス情報管理装置。
  3.  前記ライセンス情報管理装置に対して着脱可能な記録媒体と通信するためのメディアドライブをさらに備え、
     前記コントローラは、前記メディアドライブに特定の記録媒体が装着されていることを条件として、前記インストールを実行するように構成されている、請求項2に記載のライセンス情報管理装置。
  4.  前記コントローラは、前記特定の記録媒体に、前記プログラムを利用可能にするためのデータおよび前記台数情報を記録するように構成されている、請求項3に記載のライセンス情報管理装置。
  5.  前記コントローラは、
      前記記憶装置に、前記特定の記録媒体を特定する情報を記録し、
      前記記憶装置に記録されている前記特定の記録媒体を特定する情報と前記記録媒体に記録されている当該記録媒体を特定する情報とが一致し、かつ、前記記憶装置に記録されている台数情報と前記記録媒体に記録されている台数情報とが一致したことを条件として、前記インストールを実行するように構成されている、請求項4に記載のライセンス情報管理装置。
  6.  前記コントローラは、前記制御機器に、前記プログラムを利用可能にするためのデータまたは当該データによって利用可能にあったプログラムがインストールされていないことを条件として、前記インストールを実行するように構成されている、請求項2~請求項5のいずれか1項に記載のライセンス情報管理装置。
  7.  ライセンス情報管理装置のコンピュータによって実行されるライセンス情報管理方法であって、
     2台以上の制御機器においてプログラムを有効にするための情報であって、前記2台以上の制御機器の台数および前記プログラムに対応する情報を含むキー情報の入力を受け付けるステップと、
     入力された前記キー情報を、アクティベーションサーバへ送信するステップと、
     前記アクティベーションサーバから、前記2台以上の制御機器において前記プログラムを利用可能にするための情報であるライセンス情報を受信した場合に、前記ライセンス情報を前記コンピュータの記憶装置に記憶するステップとを備え、
     前記ライセンス情報は、前記プログラムを利用可能にするためのデータと、前記2台以上の制御機器の台数を特定するための台数情報とを含む、ライセンス情報管理方法。
  8.  ライセンス情報管理装置のコンピュータによって実行されるライセンス情報管理用のプログラムであって、
     前記プログラムは、前記コンピュータに、
     2台以上の制御機器においてプログラムを有効にするための情報であって、前記2台以上の制御機器の台数および前記プログラムに対応する情報を含むキー情報の入力を受け付けるステップと、
     入力された前記キー情報を、アクティベーションサーバへ送信するステップと、
     前記アクティベーションサーバから、前記2台以上の制御機器において前記プログラムを利用可能にするための情報であるライセンス情報を受信した場合に、前記ライセンス情報を前記コンピュータの記憶装置に記憶するステップとを実行させ、
     前記ライセンス情報は、前記プログラムを利用可能にするためのデータと、前記2台以上の制御機器の台数を特定するための台数情報とを含む、プログラム。
PCT/JP2015/050878 2014-03-14 2015-01-15 ライセンス情報管理装置、ライセンス情報管理方法、および、プログラム Ceased WO2015136964A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201580012184.6A CN106062759B (zh) 2014-03-14 2015-01-15 许可信息管理装置、许可信息管理方法及计算机可读存储介质
EP15761290.4A EP3101575A4 (en) 2014-03-14 2015-01-15 License information management device, license information management method, and program
JP2016507375A JP6390696B2 (ja) 2014-03-14 2015-01-15 ライセンス情報管理装置、ライセンス情報管理方法、および、プログラム
US15/123,259 US20170076073A1 (en) 2014-03-14 2015-01-15 License information management device, license information management method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014-052677 2014-03-14
JP2014052677 2014-03-14

Publications (1)

Publication Number Publication Date
WO2015136964A1 true WO2015136964A1 (ja) 2015-09-17

Family

ID=54071418

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/050878 Ceased WO2015136964A1 (ja) 2014-03-14 2015-01-15 ライセンス情報管理装置、ライセンス情報管理方法、および、プログラム

Country Status (5)

Country Link
US (1) US20170076073A1 (ja)
EP (1) EP3101575A4 (ja)
JP (1) JP6390696B2 (ja)
CN (1) CN106062759B (ja)
WO (1) WO2015136964A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019176274A1 (ja) 2018-03-13 2019-09-19 オムロン株式会社 コントローラ、ライセンスの管理方法、およびライセンスの管理プログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3641259A1 (de) * 2018-10-15 2020-04-22 Siemens Aktiengesellschaft Vorrichtung und verfahren zur prüfung von eigenschaften von ressourcen
DE102022100794A1 (de) 2022-01-14 2023-07-20 Turck Holding Gmbh Verfahren und Vorrichtung zur Verwaltung von Lizenzen in einem Industrieautomationssystem

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006139352A (ja) * 2004-11-10 2006-06-01 Yokogawa Electric Corp ダウンロード管理方法およびダウンロード管理方法を実行するためのプログラム
JP2008079284A (ja) * 2006-08-21 2008-04-03 Ricoh Co Ltd 画像処理システム、画像処理装置、プログラム管理方法及びプログラムを管理する管理プログラム
US20100325734A1 (en) * 2009-06-19 2010-12-23 Etchegoyen Craig S Modular Software Protection
JP2012063867A (ja) * 2010-09-14 2012-03-29 Ricoh Co Ltd 情報処理装置、画像処理装置管理システム、情報処理方法およびそのプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3389186B2 (ja) * 1999-04-27 2003-03-24 松下電器産業株式会社 半導体メモリカード及び読み出し装置
JP4021791B2 (ja) * 2003-03-31 2007-12-12 富士通株式会社 ファイルのセキュリティ管理プログラム
JP2005149002A (ja) * 2003-11-13 2005-06-09 Nippon Telegr & Teleph Corp <Ntt> コンテンツ流通管理方法および装置
EP1839307A4 (en) * 2005-01-19 2010-01-27 Lg Electronics Inc RECORDING MEDIUM, DATA STRING DEVICE AND METHOD THEREFOR
US20100293536A1 (en) * 2009-05-12 2010-11-18 Microsoft Corporation Enhanced product functionality based on user identification
JP2011170465A (ja) * 2010-02-16 2011-09-01 Ricoh Co Ltd ソフトウェア配信システム、ソフトウェア配信方法およびプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006139352A (ja) * 2004-11-10 2006-06-01 Yokogawa Electric Corp ダウンロード管理方法およびダウンロード管理方法を実行するためのプログラム
JP2008079284A (ja) * 2006-08-21 2008-04-03 Ricoh Co Ltd 画像処理システム、画像処理装置、プログラム管理方法及びプログラムを管理する管理プログラム
US20100325734A1 (en) * 2009-06-19 2010-12-23 Etchegoyen Craig S Modular Software Protection
JP2012063867A (ja) * 2010-09-14 2012-03-29 Ricoh Co Ltd 情報処理装置、画像処理装置管理システム、情報処理方法およびそのプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019176274A1 (ja) 2018-03-13 2019-09-19 オムロン株式会社 コントローラ、ライセンスの管理方法、およびライセンスの管理プログラム

Also Published As

Publication number Publication date
CN106062759B (zh) 2019-04-02
US20170076073A1 (en) 2017-03-16
EP3101575A1 (en) 2016-12-07
CN106062759A (zh) 2016-10-26
JPWO2015136964A1 (ja) 2017-04-06
JP6390696B2 (ja) 2018-09-19
EP3101575A4 (en) 2017-04-12

Similar Documents

Publication Publication Date Title
JP5531819B2 (ja) 管理装置,ライセンス管理サーバ,電子機器,電子機器管理システム,管理方法,プログラム,および記録媒体
JP5565040B2 (ja) 記憶装置、データ処理装置、登録方法、及びコンピュータプログラム
CN101467112B (zh) 可编程显示器以及控制系统
JP6073483B2 (ja) オペレーティングシステム独立ストレージ内のライセンシング情報の格納及びアクセス
US9026626B2 (en) Management device, information processing system, management method, and storage medium
JP2008033751A (ja) アップデート方法およびアップデートシステム
JP6127719B2 (ja) 情報処理システム、情報処理装置、ライセンス管理方法及びプログラム
TW201619866A (zh) 客製化資訊設備的方法
EP2736010B1 (en) License management device, license management system, license management method, and program
JP2019067264A (ja) ソフトウェア管理システム、ソフトウェア更新装置、ソフトウェア更新方法、及びソフトウェア更新プログラム
CN104571001A (zh) 工业设备管理系统、工业设备管理服务器和工业设备管理方法
JP6390696B2 (ja) ライセンス情報管理装置、ライセンス情報管理方法、および、プログラム
JP5991740B2 (ja) ライセンス管理装置、ライセンス管理方法、およびプログラム
TWI536265B (zh) 可執行程式安裝的方法及系統
CN106068481B (zh) 控制设备、控制系统、支援装置以及控制设备的维护的管理方法
JP7593397B2 (ja) 情報処理方法、プログラム、及び、情報処理装置
JP6065161B2 (ja) 産業機器生産システム、産業機器生産方法、プログラム、及び情報記憶媒体
US20220004603A1 (en) Method for controlling device through application, and apparatus and system for performing the same
JP7230592B2 (ja) 機器セットアップシステム、機器セットアップ方法及び電子機器
JP6304427B2 (ja) 情報処理システム及び操作端末
CN112905120A (zh) 一种锁盘升级方法、装置、电子设备和存储介质
JP2005251070A (ja) ライセンス管理システムおよびライセンス管理方法
JP2013025607A (ja) 情報処理装置及び情報処理方法
JP6570801B1 (ja) Cpuユニット、プログラマブルロジックコントローラ、プログラム、及びエンジニアリングツール
JP2018156241A (ja) 認証仲介装置及び認証仲介プログラム

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016507375

Country of ref document: JP

Kind code of ref document: A

REEP Request for entry into the european phase

Ref document number: 2015761290

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2015761290

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 15123259

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE