License management system, license management procedures and program
Patent Information
- Application Number
- DE112022007151
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2022-11-29
- Publication Date
- 2025-03-06
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Technical area
[0001] The present disclosure relates to a license management system, a license management method and a program. State of the art
[0002] A cloud computing technique for providing a cloud service over a network by running application software on a cloud server has recently attracted attention. This type of application software is provided by a provider, such as a system integration (SI) company. The provider typically provides the cloud service to subscribers, each of whom is under a contract. To efficiently use such a cloud service, techniques have been developed to manage information related to the cloud service's usage contract (see, for example, Patent Literature 1). Citation listPatent literature
[0003] Patent Literature 1: Publication of Unexamined Japanese Patent Application No. 2021 - 002128 Overview of the inventionTechnical problem
[0004] In the field of factory automation (FA), services are required to be usable across series of connections, such as machine chains. For example, if a problem occurs on an end-user's production line, the end user notifies the line designer who created the production line of the problem. The line designer then identifies the fixture on the production line that is causing the problem. In such a case, the end user, the line designer, and the fixture manufacturer may exchange information about the problem using a common fixture operational maintenance service to reduce downtime.
[0005] To apply the technique of Patent Literature 1 to the cloud service usage contract at such FA locations, each cloud service user must directly conclude a usage contract with the application software provider. The usage contract can be concluded based on the relationships described above. For example, the above end user can conclude the usage contract with the application software provider based on, for example, a maintenance period agreed upon with the line creator and a maintenance period agreed upon between the line creator and the device manufacturer.
[0006] However, it is difficult to determine the details of a usage agreement based on various circumstances. This increases the workload for using the cloud service at FA locations, potentially inhibiting the use of the cloud service.
[0007] Under such circumstances, it is an object of the present disclosure to promote the use of the cloud service by reducing the workload for using the cloud service at FA sites. Solution to the problem
[0008] To achieve the above object, a license management system according to one aspect of the present disclosure comprises acquiring means for acquiring application software, executing means for executing the application software, providing means for providing functionality implemented by executing the application software to a license-obtaining object that has acquired the license via a network, and managing means for managing a new license-obtaining object that is created, upon granting the license, from the license-obtaining object with a scope corresponding to a license scope of the functionality for which the license-obtaining object has acquired the license or within the license scope, in a manner associated with the application software that is the target for the license. Advantageous effects of the invention
[0009] In the structure according to the above aspect of the present disclosure, the management means manages the new license-related object, which is granted upon granting the license from the license-related object, with the scope equivalent to the license scope of the functionality for which the license-related object has acquired the license, or within the license scope. The management means manages the new license-related object in a manner related to the application software that is a target of the license. Thus, the functionality of the application software can be provided based on a sublicense concluded between objects. This facilitates the use of the cloud service based on a license that reflects the connections at FA sites, promoting the use of the cloud service by reducing the workload for using the cloud service at FA sites. Short description of the drawing Fig. 1 is a schematic diagram showing granting a license and providing functionalities of application software managed by a license management system according to Embodiment 1; Fig. 2 is a diagram showing connections between the license management system, an application provider, and objects in Embodiment 1; Fig. 3 is a diagram of exemplary objects in Embodiment 1; Fig. 4 is a block diagram of the license management system according to Embodiment 1, showing the hardware configuration; Fig. 5 is a functional block diagram of the license management system according to Embodiment 1; Fig. 6 is a diagram of a license management database (DB) in Embodiment 1; Fig. 7 is a schematic diagram showing the collection of object data in Embodiment 1; Fig. 8 is a flowchart providing a deployment process for application functionalities in Embodiment 1; Fig. 9 is a flowchart of a license management process in Embodiment 1; Fig. 10 is a diagram showing exemplary changes to data in the license management database in Embodiment 1; Fig. 11 is a diagram showing a temporary database in a modification; Fig. 12 is a diagram of an exemplary license management database in Embodiment 2; and Fig. 13 is a diagram of a tree structure for granting a license in Embodiment 2. Description of embodiments
[0010] A license management system according to one or more embodiments of the present disclosure will be described in detail below with reference to the drawings. The license management system manages a license for providing functionalities of application software running on a cloud server over a network. Hereinafter, the application software will be referred to simply as an application, if necessary.
[0011] A party to whom an application's functionality is provided is referred to below as an object. The object is not limited to a single user, but can be a terminal device, a piece of equipment, or it can belong to a group of companies. The object is a generic term for a user or equipment licensed or provided with a license under a license agreement. The object corresponds to each license. An object can be provided with two or more licenses.
[0012] Providing the functionality of an application refers to providing a cloud service and providing information or data resulting from the execution of the application. The result of the application's execution may be obtained by processing information input by the object on the cloud server, or it may include information or data output by the cloud server independently of any input by the object. Embodiment 1
[0013] As in Fig. As shown in Figure 1, a license management system 10 according to the present embodiment includes multiple applications and provides functionalities of each application to a corresponding object that has acquired a license via a network NW represented by dashed arrows. Specifically, the license management system 10 includes an application 31 prestored in the license management system 10, an application 32 acquired from an application provider 21, and an application 33 acquired from an application provider 22.
[0014] Each of the application providers 21 and 22 is a systems integration company (SI company) or an application developer. Each application provider 21 and 22 may hereinafter be referred to indiscriminately as an application provider 20.
[0015] In Fig. 1, solid arrows represent the granting of licenses to use the functionalities of the respective applications 31 to 33. In particular, a license to use the application 31 is granted by the license management system 10 and acquired by an object U101. The granting of a license by the license management system 10 may include the granting of a license by the party operating the license management system 10. The license to use the functionalities of the application 31 is granted by the object U101 to the objects U201 and U202, and by the object U202 to the objects U301, U302, and U303. The objects U101, U201, U202, U301, and U302 may each use the functionalities of the application 31 with the acquired license.
[0016] However, the scope of functionality available for each object is determined by the object granting the license. For example, Fig. 1 The completely hatched area, which is surrounded by the dashed line in the block corresponding to object U101, indicates that all the functionalities of application 31 are available to object U101. In other words, the hatched area indicates the scope of the available functionalities. Object U101 grants each of objects U201 and U202 a license to use part of the functionalities of application 31. Object U202 grants each of objects U301 and U303 a license to use part of the functionalities of application 31, within the scope of the functionalities available to object U202. An object that has received a license can grant another object the license with a scope of functionalities equivalent to the scope of functionalities for which the license was obtained by the object.
[0017] A license to use the functionality of application 32 is granted by the license management system 10, obtained by an object U102, and then granted by object U102 to objects U203 and U204. Objects U102, U203, and U204 may each use the functionality of application 32 with the obtained license. A license to use the functionality of application 33 is granted by the application provider 22, obtained by an object U103, granted by object U103 to an object U205, and then granted by object U205 to objects U304, U305, and U306. Objects U103, U205, U304, U305, and U306 may each use the functionality of application 33 with the obtained license.
[0018] Fig. Figure 2 schematically shows the device configuration of the license management system and connections of communication paths through the network NW. As shown in Fig. 2, the license management system 10 includes one or more cloud servers 40. Each cloud server 40 is a computer that includes a cloud infrastructure 41 provided by and available through a cloud vendor. The cloud server 40 executes one or more applications 30 on the cloud infrastructure 41. The application 30 refers indiscriminately to any of the applications 31 through 33. The cloud infrastructure 41 is a basic computing resource provided as a service, such as an "Infrastructure as a Service" (IaaS) or a "Platform as a Service" (PaaS). When the license management system 10 is implemented by a single cloud server 40, the license management system 10 is substantially equal to the single cloud server 40. When the license management system 10 includes multiple cloud servers 40, the license management system 10 is implemented by the cloud servers 40 cooperating with each other.
[0019] The license management system 10, the application provider 20, and the objects U1, U2, and U3 are connected via the network NW to communicate with each other. The network NW can be a wide area network, such as the Internet, a virtual network, such as a virtual private network (VPN), or a dedicated network.
[0020] The object U1 refers indiscriminately to each of the Fig. 1, or any object to which a license is granted by a provider, such as the application provider 20 or the license management system 10, which is not to be provided with the application 30. In other words, the object U1 is a first object to which a license is granted directly to begin using the application 30. The object U2 is an object to which the license is granted by the object U1, and it corresponds to each of the objects U201 to U205 in Fig. 1. Object U3 is an object to which the license is granted by object U2, and it corresponds to each of the objects U301 to U306 in Fig. 1. Since object U1 is located in a first layer, object U2 is located in a second layer, and object U3 is located in a third layer, the objects are each located in one of the layers. Similarly, objects can be located in a fourth and subsequent layers. An object in an nth layer grants a license to an object in an (n+1)th layer.
[0021] Fig. Figure 3 shows exemplary objects to which functionalities are provided by the license management system 10. Objects U111, U211 and U311 in Fig. 3 correspond to personal computers (PCs) that have a license relationship with each other. Objects U111, U211, and U311 can represent three people using a single PC. Objects U112, U212, and U312 correspond to separate companies that have a license relationship with each other. Objects U113, U213, and U313 have a license relationship with each other. Object U113 corresponds to a host computer in a specific factory, object U213 corresponds to a first line in the factory, and object U313 corresponds to a second line in the factory. Objects U114, U214, and U314 have a license relationship with each other. Object U114 corresponds to a device from a specific manufacturer, object U214 corresponds to a robot from another manufacturer that contains the device, and object U314 corresponds to a production facility of an end user that uses the robot. Fig. 3, objects U111 to U114 are in the first layer, objects U211 to U214 are in the second layer, and objects U311 to U314 are in the third layer.
[0022] The license management system 10 has a hardware configuration that Fig. 4 to manage licenses granted to the objects described above. Although the license management system 10 with this hardware configuration corresponds to a single cloud server 40, the license management system 10 may be implemented by multiple cloud servers 40, which essentially Fig. 4, with several components cooperating with each other.
[0023] As in Fig. 4, the license management system 10 includes a processor 51, a main memory 52, an auxiliary memory 53, an input device 54, an output device 55, and a communication module 56. The main memory 52, the auxiliary memory 53, the input device 54, the output device 55, and the communication module 56 are connected to the processor 51 via an internal bus 57.
[0024] The processor 51 includes a central processing unit (CPU) as a processing unit. The processor 51 executes programs P1 and P2 stored in the auxiliary memory 53 to implement various functions to perform the processing described below.
[0025] Main memory 52 includes random access memory (RAM). Programs P1 and P2 are loaded into main memory 52 from auxiliary memory 53. Main memory 52 is used as a work area for processor 51.
[0026] The auxiliary memory 53 includes non-volatile memory, such as an electrically erasable programmable read-only memory (EEPROM) and a hard disk drive (HDD). The auxiliary memory 53 stores the program P1 for implementing the functions (described below) of the license management system 10 and the program P2 corresponding to the application 30. The auxiliary memory 53 also stores various pieces of data used for processing performed by the processor 51. The auxiliary memory 53 provides data to be used by the processor 51 to the processor 51 according to the instructions of the processor 51. The auxiliary memory 53 stores data provided by the processor 51.
[0027] Input device 54 is, for example, a hardware switch, an input key, a keyboard, or a pointing device. Input device 54 receives information input by an administrator of license management system 10 and notifies processor 51 of the received information.
[0028] The output device 55 includes, for example, a display device, such as a light-emitting diode (LED) or a liquid crystal display (LCD), and an acoustic device, such as a buzzer or a speaker. The output device 55 provides various pieces of information to the administrator according to instructions from the processor 51.
[0029] The communication module 56 includes an interface circuit for communicating with external devices. The communication module 56 receives signals via the network NW and outputs data contained in these signals to the processor 51. The communication module 56 also transmits signals containing data output by the processor 51 to the network NW.
[0030] By cooperating the above hardware components, the license management system 10 performs various functions. In particular, the license management system 10 comprises, as shown in Fig. 5, as functional components, a reference module 61 that obtains the application 30, an execution module 62 that executes the application 30, a provision section 63 that provides the functionalities of the application 30 to objects, a management module 64 that manages licenses granted to the objects, a collection module 65 that collects object data from the objects, an object database (DB) 650 that accumulates object data, and an output device 66 that outputs the object data.
[0031] The acquisition module 61 is implemented by the processor 51, the input device 54, and / or the communication module 56. The acquisition module 61 can acquire the application 30 by receiving the application 30 sent from the application provider 20, by reading the application 30 from a non-volatile recording medium such as a memory card or external storage, or by reading the application 30 pre-stored in the auxiliary memory 53. The acquisition module 61 can temporarily store the application 30 in the main memory 52 or the auxiliary memory 53. The acquisition module 61 provides the acquired application 30 to the execution module 62 when requested by the execution module 62. The acquisition module 61 corresponds to an example of acquisition means for acquiring application software.
[0032] The execution module 62 is essentially implemented by the processor 51. The execution module 62 executes the application 30 to generate information or data to be provided to an object. For example, the application 30 for updating a device's driver software monitors any updates to the latest version of the driver and distributes the latest version of the driver software when the software is updated. The application 30 for managing the quality of manufactured articles processes data sent from an object to monitor for any faults and notifies the object of the fault when a fault occurs.However, the execution module 62 references a license management database 640 to implement the functionalities of the application 30 to be provided to an object with the license, and it does not implement the functionalities of the application 30 for an object with an invalid license. The execution module 62 corresponds to an example of execution means for executing an application program.
[0033] The provision section 63 is essentially implemented by the processor 51 and the communication module 56 cooperating with each other. The provision section 63 provides the object with the functionalities implemented by the execution of the application 30. Instead of the execution module 62, the provision section 63 may refer to the license management database 640 and provide the functionalities of the application 30 to the object with a license, and may exclude an object with an invalid license from the targets for providing the functionalities of the application 30. The provision section 63 corresponds to an example of provision means for providing the functionalities of the application 30 to an object that has acquired a license via the network NW. The provision means provides the functionalities to the object to the extent that the license has been acquired by the object.
[0034] The management module 64 is essentially implemented by the processor 51, the auxiliary memory 53, and the communication module 56, which cooperate with each other. The management module 64 includes the license management database 640, which indicates the latest status of the licenses granted to various objects. For each change related to a license, the management module 64 writes data corresponding to the license change to the license management database 640 to update the license management database 640.
[0035] The upper part of Fig. Figure 6 shows the license management database 640, which specifies the details of the licenses granted to the objects U101 and U102 in the first layer. The license management database 640 includes an "object" entry, which specifies an identification number that is the same as the object's reference number, a "functionality scope" entry, which specifies the scope of functionality of the application 30 set as available to the object, and a "data provision" entry, which specifies whether the object data may be provided externally for use by the application 30. These entries are associated with the corresponding application 30. Each object is further associated with a "layer" entry, which specifies the object's hierarchical layer. Fig. 6, each application 30 is identified by an identification number that is the same as the reference number of the application 31 or 32. The consecutive circles representing the functionalities of the application 30 represent the number and order of the elements included in the functionalities of the corresponding application 30. For example, the application 31 with the functionalities indicated by the three circles has a first sub-functionality, a second sub-functionality, and a third sub-functionality, in this order.
[0036] The consecutive circles in the "Functionality Scope" entry indicate that all functionality of the application is available. The details in the "Functionality Scope" entry are set by the licensor. For example, the scope of functionality of application 31 available to object U101 is set by the license management system 10 to all functionality of application 31.
[0037] The circle in the "Data Provisioning" entry indicates that the object data may be provided externally. A cross in this entry indicates that the object data may not be provided externally. The "Data Provisioning" entry is set by the object to which the license is granted. For example, the circle in this entry indicates that object U101 allows the object data to be provided externally, while the cross indicates that object U102 does not allow the object data to be provided externally. The object data is provided based on the scope of functionality available with the license and is used together with the functionality of application 30. The scope of functionality and data provision are thus interdependent.
[0038] The object data includes data related to the use of the functionality of the application 30, such as a setting parameter and data input into the application 30, or data generated by the use of the application 30, such as an execution result of the application 30 and a response of the object to the execution. The object data related to an object that is a sensor can be sensor results from the use of the application 30 as driver software. Providing the object data externally can include periodically providing the sensor results. The license management system 10 collects the object data.
[0039] The middle part of the Fig. 6 shows the license management database 640, which stores data D11 and data D12 for a license granted by object U101 to objects U201 and U202. Specifically, object U101 sets the functionality scope of application 31 available to object U201, which does not include the second sub-functionality, and object U201 does not allow the object data to be provided externally. Data D11 is added in this way. Object U101 sets the functionality scope of application 31 available to object U202, which does not include the third sub-functionality, and object U202 does not allow the object data to be provided externally. Data D12 is added in this way. Data D11 and data D12 are added as data in the second layer, including data row 71 and data row 72.
[0040] This license granting setting is performed by the license-granting object accessing the license management system 10 and inputting information indicating the object that is a grant target and the functionality scope of the license to be granted, and by the license-acquiring object accessing the license management system and inputting information indicating whether the license-acquiring object allows the object data to be provided externally. The management module 64 generates data in an input format to receive input from the objects and outputs the input format via the network NW to receive the license granting settings between objects.
[0041] The license-granting object is an object that grants a license or an object that is to grant a license. The license-obtaining object is an object that obtains a license or an object that has obtained a license. Although all objects registered in the license management database 640 each correspond to the license-obtaining object, the objects may be referred to hereinafter as the license-obtaining object to emphasize that the object has obtained the license or is to obtain the license. Similarly, the object may be referred to as the license-granting object to emphasize that the object has granted a license.
[0042] The lower part of the Fig. Figure 6 shows the license management database 640, to which the details of the license granted to object U301 are added as data row 73. As shown in the lower part of the Fig. 6, the objects are classified into hierarchical layers defined in a column 74. The license management database 640 thus hierarchically manages the license-related objects that have acquired a license.
[0043] The management module 64 corresponds to an example of management means for managing a new license-related object created upon granting the license from the license-related object with a scope equivalent to a license scope of the functionality for which the license-related object has obtained the license or within the license scope, in a manner related to the application software that is a target for the license.
[0044] It again refers to Fig. 5. The collection module 65 is essentially implemented by the processor 51 and the communication module 56, which cooperate with each other. The collection module 65 collects object data from the objects that allow the object data to be used externally into the license management database 640, with reference to the license management database 640. The collection module 65 collects the collected object data in the object database 650. The collection module 65 corresponds to an example of collection means for collecting object data.
[0045] Fig. 7 schematically shows an exemplary license management database 640, which differs from the license management database 640 in Fig. 6, and it schematically shows the collection of object data based on this license management database 640. The license management database 640 in Fig. 7 specifies that the application has 31 subfunctionalities F1 to F3, and for each of the subfunctionalities F1 to F3, it specifies whether the object data may be exposed externally. For example, object U202 allows the object data associated with functionality F1 to be exposed externally, but does not allow the object data associated with functionality F3 to be exposed externally. For object U202, functionality F2 is not included in or excluded from the available scope. Therefore, the setting regarding allowing the object data associated with functionality F2 to be exposed externally is not set. In this way, the setting regarding whether data is exposed can be made for each subfunctionality.
[0046] For an object U401 in the fourth layer, it is permitted to provide the object data related to the functionality F1 externally, whereby the object data is set to be provided externally by the object U302. Fig. 7, the thick arrows indicate the paths of the object data collected by the collection module 65. Specifically, the collection module 65 collects object data from the objects U101, U202, and U302 with reference to the license management database 640, and it does not collect object data from the objects U201 and U301.
[0047] The collection module 65 also collects object data about the object U401 from the object U302. If the object U401 corresponds to an embedded device, and the object U302 includes a device acting as the object U401, the object 401 cannot simply provide the object data directly to the collection module 65. The object data is thus easily collected by the object U302.
[0048] In the license management database 640 in Fig. 7, each object is further assigned an upper limit of additional hierarchical layers. The upper limit of additional hierarchical layers specifies an upper limit of the number of hierarchical layers that may be newly added, or the remaining number of generations to which the license may be granted, which specifies an upper limit of the number of times the object that has obtained a license may repeatedly grant the license. For example, if, as in Fig. As shown in Figure 7, if a license with an upper limit of three additional hierarchical levels is granted to object U101, the upper limit of the additional hierarchical levels of the license granted by object U101 to objects U201 and U202 is decremented to two. For each repeated grant of the license between objects, starting with object U101, the upper limit of the additional hierarchical levels is decremented. Thus, although the license is granted between objects up to the fourth level, the object in the fourth level cannot grant the license to any further objects. Therefore, the fifth level is not formed.
[0049] It will be back on Fig. 5. The output device 66 is essentially implemented by the processor 51 and / or the communication module 56. The output device 66 reads data from the object data database 650 and outputs the data to the application provider 20, which provides the application 30 corresponding to the object data. This enables the application provider 20 to analyze the object data on multiple objects that use the application 30. For example, the application provider 20 can use the data to determine the amount of carbon dioxide emissions throughout the supply chain associated with production and to achieve carbon neutrality.
[0050] An application functionality provisioning process and a license management process executed in parallel by the license management system 10 will now be described with reference to the Fig. 8 to 10 described.
[0051] In the application functionality provisioning process, the reference module 61, as in Fig. 8, the application 30 (step S1). The provisioning section 63 then determines whether access has occurred from an object to use the functionalities of the application 30 (step S2). If no access from an object is detected (No in step S2), the determination in step S2 is repeated. If it is determined that access has occurred from an object (Yes in step S2), the execution module 62 searches the license management database 640 for data on the object that caused the access (step S3).
[0052] The execution module 62 then determines whether the object identified in the search has a license for the functionalities of the application 30 requested with the access (step S4). If it is determined that the object has not acquired the license (No in step S4), the functionalities of the application 30 are not made available to the object, and the processing in step S2 and subsequent steps is repeated. If it is determined that the object has acquired the license (Yes in step S4), the execution module 62 executes the application 30 to implement the requested functionalities (step S5), and the provision section 63 provides the functionalities in response to the access (step S6).
[0053] In Fig. 8, the functionalities of the application 30 are provided upon access by the object. However, the functionalities of the application 30 may be provided at a time different from the time of access by the object. For an application 30 that spontaneously notifies an object of information at a specific time, for example, the functionalities may be provided at the instantaneous time when the specific time is reached. Examples of a specific time include a periodic time and a time when an error or fault occurs.
[0054] In the Fig. 9, the management module 64 determines whether license information indicating the granting of a license has been obtained (step S11). The license information indicates an object that has newly obtained the license, as well as the creation of a new object that has obtained the license. For example, if the object U101 in the example in Fig. 6 grants a license for the application 31 to the object U202, data indicating the object U202 in association with the application 31 corresponds to the license information. If it is determined that the license information still needs to be obtained (No, step S11), processing in the license management system 10 proceeds to step S115.
[0055] If it is determined that the license information has been obtained (Yes in step S11), the management module 64 determines whether scope information is obtained (step S12). The scope information indicates the scope of the functionalities of the application 30 that are available with the newly granted license. For example, if the object U101 in the example of Fig. 6 grants object U202 a license for application 31, the data indicating the license scope without the third sub-functionality corresponds to the scope information. The license scope without the third sub-functionality is indicated by two circles followed by a cross.
[0056] If the application 30 has a single functionality and the functionality cannot be shared, or if the provider of the application 30 prohibits setting the license scope between objects, the functionalities available to the object that acquired the license are equivalent to the functionalities available to the object granting the license. Thus, the determination in step S12 can be omitted. If an object inputs the license granting target and the license scope at the same time, the determination in step S11 can be made as to whether the license information includes the scope information, possibly omitting step S12. However, the license scope is set for each object in each layer by the provider of the application 30 in advance or each time as needed.When an object grants the license by simply setting the grant target, the management module 64 separately obtains the license information indicating the grant target and the scope information indicating the license scope.
[0057] If it is determined that the scope information still needs to be acquired (No in step S12), the processing in the license management system 10 proceeds to step S15. If it is determined that the scope information has been acquired (Yes in step S12), the determination is made as to whether the setting for providing the object data has been executed (step S13). In the example, when the object U101 grants the license for the application 31 to the object U202, Fig. 6 the determination is made as to whether the object U202 has allowed the object data to be made available externally.
[0058] If it is determined that the setting for providing the object data has not yet been set (No in step S13), processing in the license management system 10 proceeds to step S15. If it is determined that the setting for providing the object data has been made (Yes in step S13), the license management database 640 is modified (step S14). Specifically, the management module 64 writes data indicating the settings for the license information, the scope information, and the object data to the license management database 640.The management module 64 corresponds to an example of management means for writing data indicating the new license-related object when acquiring license information indicating the creation of the new license-related object, to manage a database containing a plurality of license-related objects including a license-granting object that is the license-related object that has granted the license and the new license-related object.
[0059] The management module 64 then determines whether there is a change instruction to change the registered data about the license in the license management database 640 (step S15). The change instruction is, for example, an instruction to change the upper limit number of additional hierarchical layers for the object U101 from three to two, as shown in Fig. 10 is shown.
[0060] If it is determined that there is no change instruction (No in step S15), the license management system 10 repeats the processing in step S11 and the subsequent steps. If it is determined that there is a change instruction (Yes in step S15), the management module 64 determines whether the change instruction affects the other data (step S16). In the example in Fig. 10, changing the upper limit number of additional hierarchical layers in the first layer affects the upper limit number of additional hierarchical layers in the second layer and subsequent layers, and therefore the data in the second layer and subsequent layers are also changed.
[0061] If it is determined that the change instruction affects other data (Yes in step S16), the management module 64 changes data including the affected scope based on the change instruction (step S17). In the example of Fig. 10, the upper limit number of additional hierarchical layers in the second and third layers is changed. In the fourth layer, the upper limit number of additional hierarchical layers is changed to a negative value, which is not permitted. Therefore, all data related to the fourth layer is deleted. The management module 64 then repeats the processing in step S11 and subsequent steps.
[0062] If it is determined that the change instruction does not affect other data (No in step S16), the management module 64 changes data based on the change instruction (step S18). For example, if the license scope is changed or the object data provision setting is changed, the management module 64 changes the license management database 640 based on the change instruction. The management module 64 then repeats the processing in step S11 and subsequent steps.
[0063] As described above, when license information indicating the creation of a new license-related object is acquired, resulting from the granting of a license from a license-related object, the management module 64 of the present embodiment writes data indicating the new license-related object to the license management database 640. Thus, the functionalities of the application software can be provided based on a sublicense concluded between objects. This facilitates the use of the cloud service based on a license reflecting connections at FA sites, promoting the use of the cloud service by reducing the workload for using the cloud service at the FA sites.
[0064] The management module 64 obtains the license information and scope information indicating the license scope for the new license-related object with a scope equivalent to or within the license scope of the license-granting object, and manages the license management database 640 indicating a plurality of objects, each of which is associated with the license scope. This enables functionalities to be provided that sufficiently satisfy the requirements of individual objects.
[0065] The collection module 65 collects object data from each object. This allows for the analysis of data across connections at FA sites where the application is used.
[0066] The collection module 65 collects object data about an object via a license-granting object that has granted the object a license. This allows object data to be collected via various collection paths. Object data about an object can be collected via a license-obtaining object that has obtained the license granted by the object.
[0067] If an object has a setting that does not expose the object data, the collection module 65 excludes the object data from the collection targets. Thus, data that is not intended to be exposed externally can be kept secret.
[0068] When the license information is obtained, the management module 64 writes the data containing the new license-obtaining object in a layer below a layer of the license-granting object to the license management database 640, which specifies multiple objects in a hierarchical manner. This allows license management based on the depth of the hierarchical layer, as shown in Fig. 10 is shown.
[0069] Specifically, a new license-obtaining object, as a license-granting object, is allowed to grant the license repeatedly. When the upper limit of additional hierarchical layers, which indicates the number of times the new license-obtaining object is allowed to grant the license, is decreased, the management module 40 deletes data about an object in a layer below the layer corresponding to the upper limit of additional hierarchical layers from the license management database 640. Thus, the application provider 30 can control the upper limit of hierarchical license layers.
[0070] Although the upper limit of additional hierarchical layers is reduced in the above example, the upper limit of additional hierarchical layers can be increased. As in Fig. As shown in Figure 11, the management module 64 may transfer and store the data in the fourth layer deleted from the license management database 640 to a temporary database 641. When the upper limit number of additional hierarchical layers is increased, the management module 64 may restore the data in the fourth layer to the license management database 640.
[0071] The management module 64 may manage a license management database 640 without the entry "layer." In particular, the management module 64 may manage the license of each object regardless of the actual depth of the hierarchical layer. Embodiment 2
[0072] Embodiment 2 will be described by focusing on the differences from Embodiment 1 described above. Like reference numerals denote like or corresponding components in Embodiment 1. The license management database 640 in Embodiment 1, which indicates hierarchical layers of objects, does not indicate the target of granting the license of each object. The present embodiment differs from Embodiment 1 in that the license management database 640 indicates the license granting relationships.
[0073] The license management database 640 in the present embodiment includes, as shown in Fig. 12, a column 76 "granting object" and a column 77 "granted object." Column 76 "granting object" indicates license-granting objects that have each granted a license to a corresponding object. Column 77 "granted object" indicates license-related objects that have each been granted a license by the corresponding object. Thus, the license management database 64 essentially has a Fig. 13. When the license information is acquired, the management module 64 writes data indicating the granting of a license from a license-granting object to a new license-acquiring object to manage a database indicating the license granting relationship between multiple license-acquiring objects.
[0074] Thus, a change in the license of any object can be reflected in the license of a lower-level object that depends on that license. Examples of a change to a license include locking the license, changing the license scope, and changing the license duration. For example, if the license of the dark-shaded object U202 is locked, as shown in Fig. 13, the license of objects U301 and U302 to which the license is granted by object U202, and the license of object U401 to which the license is further granted by object U302, are blocked.
[0075] Thus, when the license acquired by a specific object is changed, the management module 64 changes data related to the license granted directly or indirectly by the specific object to another object. This allows the license management database 640 to be flexibly managed based on the license granting relationship.
[0076] The provided functionalities may have a dependency in a direction opposite to the grant of the license. More specifically, object data resulting from the provision of functionalities to an object in a lower layer may be used by the functionalities provided to an object in a higher layer. For example, in the tree structure in Fig. 13, a host computer may detect a fault based on the sensor readings obtained by a device in a lower layer. According to another example, an upgrade plan of a device manufacturer's device or a tool lifespan in a higher layer may be estimated based on the operation plan of a production line of a final object in a lower layer.
[0077] In such cases, the provisioning section 63 may refer to the license management database 640 to determine the functionalities to be provided to a particular object based on the functionalities provided to the license-related object to which the license is granted directly or indirectly by the particular object. This allows various functionalities to be provided to the object.
[0078] Although the embodiments of the present disclosure have been described above, the present disclosure is not limited to the above embodiments.
[0079] For example, the number of applications 30, the number of objects and the number of hierarchical layers are not limited to the above examples and can be changed as needed.
[0080] Although the license management database 640 is in the form of a table in the examples described above, the license management database may be in any other form.
[0081] The functions of the license management system 10 according to the above embodiments may be implemented by dedicated hardware or an ordinary computer system.
[0082] For example, programs P1 and P2 can be stored in a non-transitory computer-readable recording medium, such as a flexible disk, a compact disc read-only memory (CD-ROM), a digital versatile disc (DVD), or a magneto-optical disc (MO disc), and can be distributed. Programs P1 and P2 can be installed on a computer to provide a device that performs the above processing.
[0083] The programs P1 and P2 may be stored on a disk device included in a server or a communications network such as the Internet, or they may be modulated onto a carrier wave, for example, to be downloaded to a computer.
[0084] The above processing can also be performed by the programs P1 and P2 if they are activated and executed while being transmitted over a network such as the Internet.
[0085] The above processing may be performed in whole or in part by executing the programs P1 and P2 on a server while a computer sends or receives information about the processing via a communication network.
[0086] In the system in which the above functions are partially implementable by an operating system (OS) or by cooperation between the OS and applications, parts executable by applications other than the OS may be stored in a non-volatile recording medium that is distributed or can be downloaded to a computer.
[0087] Means for implementing the functions of the license management system 10 are not limited to software and may be implemented partially or entirely by dedicated hardware or dedicated circuitry.
[0088] The foregoing has described exemplary embodiments for illustrative purposes. Although the foregoing discussion has presented specific embodiments, those skilled in the art will recognize that changes in form and detail may be made without departing from the broader spirit and scope of the invention. Accordingly, the specification and drawings are to be considered in an illustrative rather than a restrictive sense. This detailed description, therefore, is not to be taken in a limiting sense, and the scope of the invention is limited only by the appended claims, along with the full range of equivalents to which the claims are entitled. Industrial applicability
[0089] The technique according to one or more embodiments of the present disclosure is suitable for managing a license obtained by a cloud service. List of reference symbols 10 License management system 20 to 22 application providers 30 to 33 applications 40 cloud servers 41 Cloud infrastructure 51 processor 52 main memory 53 auxiliary memory 54 Input device 55 Dispensing device 56 Communication module 57 internal bus 61 Reference module 62 Execution module 63 Provisioning section 64 Administration module 640 License management database 641 temporary database 65 collection module 650 object data database 66 Dispensing device 71 to 73 data series 74, 76, 77 column D11, D12 data NW Network P1, P2 programs U1, U101 to U103, U111 U306, U311 to U314 to U114, U2, U201 to U205, U211 to U214, U3, U301 to object QUOTES CONTAINED IN THE DESCRIPTION
[0000] This list of documents submitted by the applicant was generated automatically and is included solely for the convenience of the reader. This list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions. Cited patent literature
[0000] JP 2021 - 002128
[0003]
Claims
[1] License management system, comprising: Means of obtaining application software; Execution means for executing the application software; Provisioning means for providing a functionality implemented by executing the application software to a license-obtaining object that has acquired a license, via a network; and Management means for managing a new license-related object created upon granting of the license from the license-related object with a scope equivalent to a license scope of the functionality for which the license-related object has obtained the license, or within the license scope, in a manner related to the application software that is a target for the license. [2] The license management system according to claim 1, wherein the management means, when acquiring license information indicating creation of the new license-related object, records data indicating the new license-related object to manage a database indicating a plurality of license-related objects including a license-granting object which is the license-related object that has granted the license and the new license-related object. [3] A license management system according to claim 2, wherein the providing means provides the functionality of the application software to the license-obtaining object with the license scope for which the license-granting object has acquired the license, and the managing means acquires scope information indicating the license scope for the new license-obtaining object and the license information to manage the database indicating the plurality of license-obtaining objects each of which is assigned a corresponding license scope. [4] License management system according to one of claims 1 to 3, further comprising: Collection means for collecting object data from the license-related object, wherein the object data is data for the license-related object for using the functionality and / or data generated by the license-related object using the functionality. [5] A license management system according to claim 4, wherein the collecting means collects the object data on the license-obtaining object via another license-obtaining object that grants the license to the license-obtaining object or via another license-obtaining object to which the license is granted by the license-obtaining object. [6] The license management system according to claim 4 or 5, wherein when the license-related object has a setting not to provide the object data, the collecting means excludes the object data from collection targets. [7] A license management system according to claim 2 or 3, wherein the management means, when acquiring license information, records data indicating the new license-related object in a layer lower than a layer in which the license-granting object is included, to manage the database indicating the plurality of license-related objects in a hierarchical manner. [8] A license management system according to claim 7, wherein, when an upper limit of the number of sequential license grants in which a new license-related object grants the license as a license-granting object decreases, the management means deletes from the database data indicating the license-granting object in a layer lower than a layer corresponding to the upper limit of the number. [9] A license management system according to claim 2 or 3, wherein the management means, when acquiring license information, records data indicating granting of the license from the license-granting object to the new license-acquiring object to manage the database indicating a granting relationship of the license between the plurality of license-acquiring objects. [10] A license management system according to claim 9, wherein when the license acquired by a specific license-granting object is changed, the management means changes data on the license granted directly or indirectly to the license-acquiring object by the specific license-granting object. [11] A license management system according to claim 9, wherein the providing means refers to the database to determine the functionality to be provided to the particular license-granting object based on the functionality provided to the license-related object to which the license is directly or indirectly granted by a particular license-granting object. [12] Licence management procedures, including: Executing application software with execution tools; Providing functionality implemented by executing the application software to a license-related object that has obtained a license, over a network having delivery means; and Managing, with management means, a new license-related object created by the license-related object upon granting the license with a scope equivalent to, or within the scope of, a license of the functionality for which the license-related object has obtained the license, in a manner associated with the application software that is a target for the license. [13] A program for causing a computer connected to a network to act as: Means of obtaining application software; Execution means for executing the application software; Provisioning means for providing a functionality implemented by executing the application software to a license-obtaining object that has acquired a license, via a network; and Management means for managing a new license-related object created upon granting of the license from the license-related object with a scope equivalent to a license scope of the functionality for which the license-related object has obtained the license, or within the license scope, in a manner related to the application software that is a target for the license.
Citation Information
Patent Citations
Portal provision system and portal provision method
JP2021002128A
JP002019211932A
Server data structure for modelling distribution system
US20030084000A1