The present invention relates to a method for licensing and/or access authorization of software modules for industrial controllers and/or computer systems.
It is customary to explicitly associate licensing and access authorization of software modules with these software components. For example, if a user uses the software module A three times, the software module B twice, and the software module C once, then he obtains from the software supplier a special authorization for the desired and requested supplied software in form of licenses that are matched to the order. This has the disadvantage that the license agreement has to be changed when the licenses are exchanged, and that the released licenses also need to be changed if the software is protected.
In addition to purchasing a license for using a software components, it is also possible to obtain a license for using software components by a leasing agreement (VDI News of Jan. 7, 2000). Leasing financing has the advantage that the liquidity of the Company is protected as compared to a direct purchase. The leasing rates are also balance-neutral. Disadvantageously, however, the leasing contract has to be changed if the demand for software components changes.
It would therefore be desirable to provide a user of software modules with a simple, flexible method for licensing and/or access authorization of software modules, that can be adapted to changing requirements and employed particularly in distributed systems.
According to one aspect of the invention, with a method for authorizing usage of a software program for programming an industrial controller, a total value is associated with the software program, and the software program can be divided into separate software modules corresponding to different physical and operational machine tasks. Each software module has its own value and value points associated with the value.
The term software module will be used hereinafter synonymously with the term software program or software component. This includes, for example, software for office applications, software for controllers and/or software for computer systems. The term control will be used synonymously with automatic control, open-loop control and the like.
The method includes defining a machine task to be performed by a machine controlled by the industrial controller, providing a user of the machine with a predetermined number of value points, providing access authorization to at least one of the software modules required for performing the machine task if the number of provided value points is at least equal to a number of value points required for usage of the at least one software module; and monitoring an actual balance between the number of provided value points and a number of required value points consumed when using the at least one software module.
A license manager may be employed to compute and monitor the actual balance between the acquired and used value points.
The invention has the advantage that a customer does not sign a license agreement covering the used software modules and their quantity, but rather obtains a license agreement for the required modules through value points. The customer can flexibly and usage-specific use the required software modules within the obtained “value point license”. A valuation in the form of value points instead of a price is associated with the software modules, wherein each value point has a price. Changes at the customer regarding the requirements or new software components do not require a change in the license agreement, if the valuation of the actually required software modules is covered by the already obtained value points. The use of value points as license currency for using software modules thereby significantly facilitates the management and license administration of software not only for the system, but also for an entire company. In particular, the invention simplifies the licensing process for software modules which are frequently changed or exchanged. Moreover, licensing according to the invention affords a high granularity and easy combination of the software modules. The invention also permits pre-ordering without specifying the functionality, i.e., a purchaser is not tied to specific software modules, but can obtain a number of value points and use the supply of points for any of the software modules.
By using value points as authorization currency for using software modules, the customer or user can make changes to his software requirements without changing the license agreement. This eliminates additional management and administration processes. The customer can, for example, obtain a credit voucher for a number of value points and can flexibly hand over or exchange these value points for software modules. This allows the customer to individually assemble a software order without being obligated to accept preassembled packages from the supplier.
According to another advantageous embodiment of the invention, the customer can be authorized to use the actually desired software modules, when the number of the value points already acquired by the customer reaches at least the sum total of value points of the actually desired software modules. When using the software modules, there is no longer a verification required if an explicit license of the desired software module is present. Instead, the customer will be authorized to use the software by simply checking the total amount of the value points. By associating specific value points with each software module, the sum of the value points of the actually desired software modules can be easily compared with the value points obtained through the licensing agreement. The customer is authorized to use the software as long as the sum of the value points for the actually desired software modules does not exceed the value point account of the customer.
By having a license manager permanently monitor the actual number of required value points and comparing that number with the available value points, a customer account can be managed according to demand and usage. The license manager can easily integrate and consider the license implications of newly acquired value points, but can also easily recognize if additional value points are required in an application. The license manager determines permanently the “value point debit”, i.e., the sum of the value points of all actually required software modules, and compares that number with the “value point credit”, i.e., the total credit balance of value points acquired with the license.
According to a first advantageous embodiment of the invention, the license manager can be implemented as a mobile agent, which allows the licensing method to be easily employed in distributed environments. The software modules subject to a license can then be executed on devices that are connected, for example, by Fieldbus links, as well as by local area networks (LAN) or Internet and intranet links.
According to another advantageous embodiment of the invention, the value points required by the system for an application can be computed automatically. A user can thereby immediately recognize the licensing costs (in the form of value points) associated with a selected configuration of software modules or applications. The required number of value points can be determined by the license manager or, for example in industrial controllers, by a routine in the engineering system.
According to another advantageous embodiment of the invention, the value points can be transmitted via a fixed data link, such as a wired connection or a data bus, or a network, such as an intranet, a LAN or WAN, or the Internet to the industrial controller/control system or to the computer systems. Accordingly, an additional physical data carrier, such as a CD-ROM or flash drive, or an additional hardware component is not required for transmitting the license currency (value points) to the customer.
According to yet another advantageous embodiment of the invention, the value points can be supplied on a data carrier, such as a hard drive or another computer-readable storage medium, which is typically already implemented for operating the controller or computer system. This facilitates handling at the controller and/or computer system and can also save both storage space and storage costs.
According to yet another advantageous embodiment of the invention, the value points can be supplied to the controller or computer system on a memory card. A memory card which can be inserted easily in a provided slot is typically routinely used with control devices.
According to another advantageous embodiment of the invention, the value points can be supplied to the control or computer system on a Multi-Media-Card (MMC) memory card which are suitable as information carriers due to their form and size. MMC memory cards have a similar look as the small SIM card used in cell phones.
Another advantageous embodiment of the invention provides that the value points for the entire system and/or an entire installation can be supplied at a single point and/or a single device or at different points and/or at different devices. This allows a customer to import license information (license currency of the form of value points) for software components relating to the entire system or installation in the same manner as for a single point, for example a single device. This makes it easier for a customer to handle licenses, in particular in distributed applications and network operations.
According to another advantageous embodiment of the invention, the required number and the actually available number of value points for the access authorization are compared when the software modules are installed. In other words, it is checked only at the time a customer of the software modules actually installs the acquired software modules on a device or a system, if the number of obtained value points is sufficient for the desired software modules. By debiting a value point account to the customer only when the software module is installed on a device or a system, the authorization of the customer for use of the software modules is checked only when the customer actually intends to use the modules. The value points are therefore entered into the accounting system only when actually required.
According to another advantageous embodiment of the invention, the required number and the actually available number of value points for the access authorization are compared only when the software modules are actually used. The value points can hence be associated with the number of manifestations and/or instantiations of the software modules. In this way, a customer can be provided with application-specific licensing methods for his explicit requirements. A customer who acquires a software module, for example a technology packet “positioning”, for motion control in an industrial controller, does not pay for the software with value points when he installs the technology packet, but rather only pays when a technology object of this technology packet “positioning” is actually used. The technology packet “positioning” can also include the technology object “positioning axis.” A customer is billed for the required number of manifestations and/or instances of the technology object “positioning axis” or additional technology objects, i.e., his value point account is debited for the number of the manifestations and/or instances of the technology objects. By authorizing specific instances at run-time, the value point account of a customer is only debited for those software modules which are actually needed and used for the applications. This provides a finely granulated accounting mechanism, so that a customer has to pay only for the required and actually used functionality.
Another advantageous embodiment of the invention provides that the data carrier for the value points can also be implemented as a key containing information. This allows a bundling of hardware, licensing information in the form of value points and additional information (e.g. regarding licensors).
Licenses can be stored on memory cards and/or MMC memory cards by providing these computer-readable data carriers with an unalterable hardware identification and with additional license information in form of an identification number that is generated by a encryption algorithm and uniquely associates the hardware identification with the license information, which are then supplied to a computer system or the control device that execute the software components in form of the computer-readable data carrier.
Advantageously, the unique hardware identification (ID) which is placed on the data carrier by the manufacturer during the manufacturing process of the computer-readable data carrier, is written in a region of the data carrier which is subsequently only readable, but not writable. The hardware ID is only given out once and is therefore unique. Since a region containing the hardware ID can only be read out, but not written to, the hardware ID (for example the serial number) cannot be copied to another data carrier of this type, which makes cloning of data carriers impossible. In addition to the hardware ID, the computer-readable data carrier includes additional useful data regions which may be writable.
The usable data regions of the computer readable data carrier can include, for example, information which can be used for operating a computer system or a control device. To operate controllers, the usable data regions of the computer-readable data carrier can include, for example, the complete run-time software and/or parameterization and/or configuration information, as well as applications.
According to another advantageous embodiment, value points may be provided to and installed on different machines or different machine controllers, and may be traded between different machines, controllers and/or users of a machine. This is particularly advantageous in networked installations, where different machining operations are performed by different machines at different times, thus temporarily freeing up software components on one machine, with the number of value points available for use for another, possibly different task on other machine(s).
According to another aspect of the invention, in a method for authorizing usage of a software program for programming a machine controller, each software module has its own associated sublicense instead of respective value points. The method includes defining a machine task to be performed by a machine tool of a machine controlled by the machine controller, providing a user of a machine with a predetermined number of sublicenses to perform the machine task, said software modules covered by the sublicenses being stored in the machine controller, monitoring a total number of sublicenses for the software modules available to the user and for the software modules being stored in the machine controller, detecting a change in the sublicenses for the software modules required to enable reconfiguring a machine task, and determining a sublicense for the software module is available from another machine controller to perform the reconfigured machine task, if a sublicense is not available on the machine controller.
This approach is also advantageous in networked installations, where different machining operations are performed by different machines at different times, thus temporarily freeing up software components on one machine, with the number of sublicenses then available for use for another, possibly different task on other machine(s).
Other features and advantages of the present invention will be more readily apparent upon reading the following description of currently preferred exemplified embodiments of the invention with reference to the accompanying drawing, in which:
Throughout all the Figures, same or corresponding elements are generally indicated by same reference numerals. These depicted embodiments are to be understood as illustrative of the invention and not as limiting in any way. It should also be understood that the drawings are not necessarily to scale and that the embodiments are sometimes illustrated by graphic symbols, phantom lines, diagrammatic representations and fragmentary views. In certain instances, details which are not necessary for an understanding of the present invention or which render other details difficult to perceive may have been omitted.
Turning now to the drawing, and in particular to
User authorization (i.e., a check if sufficient value points (WP) or sublicenses are available at the customer/user for the desired software module) can then be checked during installation, i.e., when the technology packets are loaded. Alternatively, the user authorization can be checked during use, i.e., when the technology objects are instantiated. For example, if 3 WP are associated with the technology object Rotation Speed Axis, then a user who wishes to use two instances of the technology object Rotation Speed Axis has to acquire 6 WP. This possibility of linking the licensing process to the actual use of the technology objects is flexible and transparent to the customer.
Although the exemplary embodiment of the invention will be described below more specifically by using value points, the invention is not limited to the use of value points, and defined sublicenses for each machining operation or task can be employed. The use of sublicenses is somewhat more limited since, for example, a software module with a higher associated number of value points can in this case not be traded for a greater number of software modules that each have a smaller associated number of value points. However, the process is almost identical in all other aspects. It is important with the present invention that value points and/or sublicenses are part of an overall package of licensed software and can be freely assigned and/or traded during installation or when actually used in a machining task.
The software modules in
25 value points (WP) exist on the device G which are introduced by the MMC memory card. Based on the actual configuration, however, only 23 value points are required. The field inside the box on the upper right side of
A license manager implemented in software continuously checks the nominal vs. actual balance of required and existing value points WP and/or sublicenses. The license manager can be integrated, for example, in the basic system BS of the controller (see
The illustrated system includes three networked devices G1, G2 and G3 shown as rectangles, with the network indicated by connecting lines. An identification number PIN containing the software valuation in the form of value points is assigned to each device G1-G3 on an integratable MMC memory card MMC1-MMC3 (indicated by open arrows). In the scenario depicted in
In the field in the upper left corner of
Each of the acquired value points (software valuation) is encrypted with an identification number PIN. The identification numbers PIN are entered into the system or the devices G1-G3 from the MMC memory cards MMC1-MMC3, where they are stored.
In the example of
However, only 39 value points are required based on the actual configuration, because the device G1 requires one positioning axis instance, i.e., 5 WP, and one synchronization axis instance, i.e., 8 WP; the device G2 requires two positioning axis instances, i.e. 2×8 WP; and the device G3 one synchronization axis instance with radial cam disk, i.e. 10 WP. The field in the upper right in the Figure shows the number of value points required in the system, namely 39. The required value points represent the usage or the value point debit. Since a sufficient number of value points (forty) is available in the system, the configuration can be operated in this form and is fully licensed. The total number of value points in the system decides the access authorization.
The license manager permanently tracks the number of value points WP required by an application and compares that number with the number of value points WP existing for the entire system. If a deficiency of value points WP is detected, operation in the actual configuration is not permitted and/or enabled.
With respect to local devices, the number of the required value points WP can exceed the number of the existing value points WP. In the example depicted in
All blocks of an MMC memory card, except for the block containing the unique hardware identification PSN and which is only readable, are both readable and writeable and can also be copied
The software modules (in
The server S transfers via the Ethernet or Internet connection forty WP to the devices G1-G3 of the controller. The value point account of the server S includes, for example, for the device G1 ten WP, for the device G2 also ten WP, and for the device G3 2 twenty WP. Accordingly, there are altogether 40 WP available to the controller.
However, based on the actual configuration, only thirty-nine value points are required, because the device G1 requires one positioning axis instance, i.e. 5 WP, and one synchronization axis instance, i.e. 8 WP; the device G2 requires two synchronization axis instances, i.e. 2×8 WP; and the device G3 requires one synchronization axis instance with radial cam disk, i.e. 10 WP. The boxed-in field in the center shows the number of value points required for the system, namely 39. The required licenses represent the usage or the value point debit. Since a sufficient number of licenses (forty) is available in the entire system, the operation in this configuration, which requires 39 value points, is permitted and properly licensed. Access authorization is decided based on the sum total of the value points in the system.
With respect to local devices, the number of the required value points can exceed the number of the existing value points. In the example depicted in
In the scenario depicted in
While the invention has been illustrated and described in connection with currently preferred embodiments shown and described in detail, it is not intended to be limited to the details shown since various modifications and structural changes may be made without departing in any way from the spirit of the present invention. The embodiments were chosen and described in order to best explain the principles of the invention and practical application to thereby enable a person skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated.
What is claimed as new and desired to be protected by Letters Patent is set forth in the appended claims and includes equivalents of the elements recited therein:
Number | Date | Country | Kind |
---|---|---|---|
100 23 818.1 | May 2000 | DE | national |
100 23 827.0 | May 2000 | DE | national |
101 55 752.3 | Nov 2001 | DE | national |
This application is a Continuation-in-Part of U.S. patent application Ser. No. 10/276,604, filed Dec. 18, 2002, which is the National Stage of International Application No. PCT/DE01/01634, filed Apr. 30, 2001, which in turn claims the priority of German Patent Application, Serial No. 100 23 818.1, filed May 15, 2000, pursuant to 35 U.S.C. 119(a)-(d), and a Continuation-In-Part of U.S. patent application Ser. No. 10/276,605, filed Dec. 18, 2002, which is the National Stage of International Application No. PCT/DE01/01689, filed May 3, 2001, which in turn claims the priority of German Patent Application, Serial No. 100 23 827.0, filed May 15, 2000, pursuant to 35 U.S.C. 119(a)-(d), and a Continuation-In-Part of U.S. patent application Ser. No. 10/292,889, filed Nov. 12, 2002; which claims the priority of German Patent Application, Serial No. 101 55 752.3, filed Nov. 14, 2001, pursuant to 35 U.S.C. 119(a)-(d), the contents of which are incorporated herein in their entirety by reference.
Number | Date | Country | |
---|---|---|---|
Parent | 10276604 | Dec 2002 | US |
Child | 11466980 | Aug 2006 | US |
Parent | 10276605 | Dec 2002 | US |
Child | 11466980 | Aug 2006 | US |
Parent | 10292889 | Nov 2002 | US |
Child | 11466980 | Aug 2006 | US |