Software usage system and software usage method
The software usage system addresses software component management across systems by encrypting libraries with usage information and managing licenses, improving utilization and fee management for enhanced security and efficiency.
Patent Information
- Application Number
- JP2021105471
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-06-25
- Publication Date
- 2025-07-11
- Estimated Expiration
- 2041-06-25
AI Technical Summary
Existing software component management systems struggle to manage software components across multiple systems effectively, leading to challenges in software utilization and fee management.
A software usage system that includes a storage unit and package providing means to encrypt libraries with usage management information, using public and private keys for secure distribution and management, along with a management server for fee payment and license control.
Enhances software utilization management and fee management, reducing unauthorized use and facilitating efficient application development.
Smart Images

Figure 0007706054000001 
Figure 0007706054000002 
Figure 0007706054000003
Abstract
Description
Technical Field
[0001] The present disclosure relates to a software utilization system and a software utilization method.
Background Art
[0002] With the recent progress of information and communication technology (ICT), various things have come to be connected to networks such as the Internet. Therefore, software development has become increasingly important.
[0003] It is common to increase the software development speed by reusing existing software resources. For example, Japanese Patent Application Laid-Open No. 2004-206586 (Patent Document 1) discloses a software component distribution support method that effectively promotes the distribution of software components used when developing a project.
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0005] Japanese Patent Application Laid-Open No. 2004-206586 (Patent Document 1) assumes that software components are used within a single system, but in reality, software components are used in a range that cannot be managed by the provider of the software components.
[0006] A typical object of the present disclosure is to provide a solution that can more easily realize management related to software utilization.
Means for Solving the Problems
[0007] A software usage system according to an aspect of the present disclosure includes a storage unit that stores one or more libraries, and package providing means that, in response to a request from a software development device, generates a package in which usage management information is added to the requested library, encrypts the generated package with the public key of the software development device, and provides the encrypted package to the software development device. The usage management information includes identification information for identifying the software development device. The software development device decrypts the encrypted package with a private key and then provides an environment for developing an application using the package.
[0008] The usage management information may include information on usage conditions and expiration dates of the library.
[0009] The software development device may include at least a part of the usage management information included in the package in the execution code using the library included in the package.
[0010] The software development device may transmit a request including identification information for identifying the software development device.
[0011] The software usage system may further include management means for managing payment of a fee corresponding to the use of the library to the owner of the library.
[0012] Another form of software usage method according to the present disclosure includes storing one or more libraries, and in response to a request from a software development device, generating a package with usage management information added to the requested library, encrypting the generated package with the public key of the software development device, and providing the encrypted package to the software development device. The usage management information includes identification information for identifying the software development device. The software usage method includes, in the software development device, decrypting the encrypted package with a private key and providing an environment for developing an application using the package.
Effect of the Invention
[0013] According to the present disclosure, management related to software usage can be more easily realized.
Brief Description of the Drawings
[0014]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Embodiments for Carrying Out the Invention
[0015] Embodiments according to the present disclosure will be described in detail with reference to the drawings. Note that the same or corresponding parts in the drawings are denoted by the same reference numerals and their descriptions will not be repeated.
[0016] <A. Outline> First, an example of a processing procedure related to the creation, distribution, and utilization of software in a software utilization system 1 according to the present embodiment will be described.
[0017] FIG. 1 is a schematic diagram outlining the processing procedure in a software utilization system 1 according to the present embodiment. Referring to FIG. 1, the software utilization system 1 includes, as main components, a management server 100 and a software development apparatus 200. In addition, a software utilization system 1 may involve an individual or a corporation that develops a library (hereinafter also referred to as "library developer 10"), and an individual or a corporation that develops an application using the library (hereinafter also referred to as "application developer 20").
[0018] In this specification, "library" includes software assets that can be used for the development of applications. For example, a library can be distributed in any form such as classes, functions, function blocks, procedures, packages, etc. Also, as the distribution form of a library, it can be in any form such as source code, intermediate representation, object form, executable form, etc.
[0019] In this specification, "application" includes any program. That is, an application is not limited to a program for executing specific processing, and may include a program that constitutes at least a part of an OS (Operating System). Also, the form of an application can be any of source code, intermediate representation, object form, executable form, etc.
[0020] FIG. 2 is a sequence diagram showing an example of a processing procedure in the software utilization system 1 according to the present embodiment. Each step shown in FIG. 2 is described in association with FIG. 1.
[0021] Referring to FIGS. 1 and 2, first, a library developer 10 develops an arbitrary library 50S (step S1). The library developer 10 requests the management server 100 to register the developed library 50S (step S2). In the registration request, the library 50S is transmitted to the management server 100 in the form of source code, and an owner ID 52 is assigned. The owner ID 52 is identification information for identifying the library developer 10 who developed the library, and is also used for identifying the payment destination such as usage fees when the developed library is used.
[0022] The management server 100 verifies the library 50S from the library developer 10, and if there is no problem with the verification result, registers the library 50 in association with the owner ID 52 (step S3). In this way, the management server 100 sequentially stores the library 50 associated with the owner ID 52 in the database 56. That is, the management server 100 has the database 56 as a storage unit for storing one or more libraries 50. Note that the library 50 may be registered as the library 50S in the form of source code as it is, or may be registered in an intermediate representation or object form generated from the library 50S.
[0023] The management server 100 has library usage management information 80. In response to the registration of the library 50 in the database 56, the management server 100 adds an entry corresponding to the library usage management information 80. The library usage management information 80 includes information for managing the usage of the library 50 registered in the database 56.
[0024] Every time the library developer 10 develops and registers a library 50, the above processing is executed. Next, a case of developing an application using one or more libraries 50 will be described.
[0025] The application developer 20 selects one or more libraries required for the development of the application and requests the necessary library 50 from the management server 100 (step S4). The library request 60 transmitted from the software development device 200 to the management server 100 includes the machine ID 62. The machine ID 62 is identification information for identifying the software development device 200 that is the transmission source of the library request 60. In this way, the software development device 200 transmits a request (library request 60) including identification information (machine ID 62) for identifying the software development device 200.
[0026] In response to the library request 60, the management server 100 generates a package 70 of the requested library 50. More specifically, the management server 100 adds usage management information 54 to the target library 50 (step S5). As the usage management information 54, a data structure and management technology compliant with DRM (Digital Rights Management) may be adopted. The usage management information 54 includes the machine ID 62. For example, in the usage management information 54, the usage range of the corresponding library is defined using the machine ID 62.
[0027] Subsequently, the management server 100 encrypts the package 70 composed of the library 50 with the added usage management information 54 (step S6). The software development device 200 has a key pair of a private key 250 and a public key 252. For encrypting the package 70, the public key 252 of the software development device 200 that sent the library request 60 is used.
[0028] In this way, in response to the request (library request 60) from the software development device 200, the management server 100 generates a package 70 with the usage management information 54 added to the requested library 50, encrypts the generated package 70 with the public key 252 of the software development device 200, and provides it to the software development device 200. At this time, the usage management information 54 includes identification information (machine ID 62) for identifying the software development device 200.
[0029] Also, the management server 100 executes a charging process related to the use of the library 50 (step S7). More specifically, the management server 100 adds or updates information necessary for the charging process to the corresponding entry of the library usage management information 80.
[0030] Finally, the encrypted package 70 is downloaded from the management server 100 to the software development device 200 (step S8).
[0031] The software development device 200 decrypts the package 70 encrypted using the private key 250 (step S9). As a result, the package 70 (library 50) becomes available in the software development device 200.
[0032] The application developer 20 develops an application using the package 70 (library 50) (step S10). The software development device 200 generates the execution code 90 from the developed application (step S11). The generated execution code 90 is provided to an arbitrary device 300.
[0033] Through the above processing procedure, an application to be executed on an arbitrary device 300 is developed. That is, the software development device 200 decrypts the encrypted package 70 with the private key 250 and then provides an environment for developing an application using the package 70.
[0034] Also, the management server 100 pays the usage fee related to the use of the library 50 to the library developer 10 (step S12). Any method can be adopted for the payment of the usage fee. In this way, the management server 100 manages the payment of the fee corresponding to the use of the library 50 to the owner (library developer 10) of the library 50.
[0035] In the software usage system 1, since the usage management information 54 including the machine ID 62 of the software development device 200 at the download destination is added to the downloaded library 50, the possibility of unauthorized use of the library 50 can be reduced outside the software development device 200 at the download destination.
[0036] Also, since the package 70 is encrypted using the public key 252 of the software development device 200 at the download destination, the possibility of unauthorized use of the library 50 can be reduced outside the software development device 200 at the download destination.
[0037] <B. Hardware Configuration Example> Next, a hardware configuration example of the devices that make up the software utilization system 1 according to the present embodiment will be described.
[0038] (b1: Management Server 100) The management server 100 is typically realized by a general-purpose computer.
[0039] FIG. 3 is a schematic diagram showing a hardware configuration example of the management server 100 that makes up the software utilization system 1 according to the present embodiment. Referring to FIG. 3, the management server 100 includes, as main components, one or more processors 102, a main memory 104, an input unit 106, a display 108, a storage 110, and a communication interface 120. These components are connected via an internal bus 122.
[0040] The processor 102 is composed of, for example, a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), or the like. A plurality of processors 102 may be arranged, or a processor 102 having a plurality of cores may be employed.
[0041] The main memory 104 is composed of, for example, a volatile storage device such as a DRAM (Dynamic Random Access Memory) or an SRAM (Static Random Access Memory).
[0042] The storage 110 is composed of, for example, a non-volatile storage device such as a hard disk or an SSD (Solid State Drive).
[0043] Among the programs stored in the storage 110, the specified code is expanded onto the main memory 104, and the processor 102 sequentially executes computer-readable instructions included in the program code expanded onto the main memory 104 to realize various functions as described later.
[0044] The input unit 106 receives an arbitrary input operation. The display 108 displays the processing result in the processor 102 and the like. The communication interface 120 exchanges data with an arbitrary external device.
[0045] The storage 110 stores a verification registration engine 112 for realizing the verification and registration processing of the library 50 for which registration is requested, and a usage management engine 114 for realizing the processing related to the use of the library 50 in the software development device 200. Further, the storage 110 realizes a database 56 in which the library 50 is registered.
[0046] (b2: Software development device 200) The software development device 200 is typically realized by a general-purpose computer.
[0047] FIG. 4 is a schematic diagram showing a hardware configuration example of a software development device 200 constituting the software utilization system 1 according to the present embodiment. Referring to FIG. 4, the software development device 200 includes, as main components, a processor 202, a main memory 204, an input unit 206, a display 208, a storage 210, and a communication interface 220. These components are connected via an internal bus 222.
[0048] The processor 202 is composed of, for example, a CPU, a GPU, etc. The main memory 204 is composed of a volatile memory device such as DRAM or SRAM. The storage 210 is composed of a non-volatile memory device such as a hard disk or an SSD, and holds various programs and various data executed by the processor 202.
[0049] Among the programs stored in the storage 210, the specified code is expanded onto the main memory 204, and the processor 202 sequentially executes the computer-readable instructions included in the program code expanded onto the main memory 204 to realize various functions as described later.
[0050] The input unit 206 accepts any input operation. The display 208 displays the processing results of the processor 202, etc. The communication interface 220 exchanges data with any external device.
[0051] Stored in the storage 210 are a software development program 212 for realizing an integrated development environment and an application 214 arbitrarily created by the user. Further, the storage 210 may store a package 70 downloaded from the management server 100 and an execution code 90 generated from the application 214.
[0052] The software development device 200 may further have a component for reading out the stored program, etc. from a non-transitory medium storing a software development program 212 including computer-readable instructions. The medium may be, for example, an optical medium such as a DVD (Digital Versatile Disc), a semiconductor medium such as a USB memory, etc. Note that the software development program 212 may not only be installed in the software development device 200 via the medium, but may also be provided from a distribution server on the network.
[0053] (b3: Others) All or part of the management server 100 and the software development device 200 may be realized using a hardwired circuit such as an ASIC (Application Specific Integrated Circuit) in which a circuit corresponding to computer-readable instructions is incorporated. Alternatively, it may be realized using a circuit corresponding to computer-readable instructions on an FPGA (Field-Programmable Gate Array). Further, it may be realized by appropriately combining a processor, a main memory, an ASIC, an FPGA, and the like.
[0054] Note that the software development device used by the library developer 10 can also be realized by a general-purpose computer.
[0055] <C. Functional Configuration and Processing of Management Server 100> Next, the functional configuration and processing of the management server 100 will be described.
[0056] (c1: Library Usage Management Information) FIG. 5 is a schematic diagram showing an example of the library usage management information 80 of the management server 100 of the software usage system 1 according to the present embodiment. Referring to FIG. 5, the library usage management information 80 includes registration management information 82 and usage management information 84. In FIG. 5, as an example, an example of managing data in a key-value store format is shown, but any data management method may be adopted.
[0057] The registration management information 82 includes information for managing the library 50 registered in the database 56. The usage management information 84 includes information for managing the usage of the library 50.
[0058] More specifically, the registration management information 82 includes, for each entry, a library ID 821, a library name 822, an owner ID 823, a verification date and time 824, an expiration date 825, and additional information 826.
[0059] Library ID 821 stores identification information for identifying the target library 50. Library name 822 stores the name of the target library 50. Owner ID 823 stores identification information for identifying the owner of the target library 50. Verification date and time 824 stores the date and time when the target library 50 was verified. Expiration date 825 stores the available period of the target library 50. Additional information 826 stores any information related to the target library 50.
[0060] When a request is made to register a new library 50 and there are no problems with the verification result, the management server 100 stores the library 50 in the database 56 and adds a new entry to the registration management information 82.
[0061] The usage management information 84 includes, for each entry, a library ID 841, a machine ID 842, a license 843, and an expiration date 844.
[0062] Library ID 841 stores identification information for identifying the target library 50. Machine ID 842 stores identification information for identifying the software development device 200 that uses the target library 50. Alternatively, machine ID 842 may store identification information for identifying the software development program 212 that uses the target library 50. License 843 stores the type of license as the usage condition of the target library 50. Examples of the type of license include a license that allows unrestricted development of the application 214 in the software development device 200 and execution of the execution code 90 generated from the application 214, a license that allows unrestricted development of only the application 214 in the software development device 200, and a license for executing the execution code 90 generated from the application 214. Expiration date 844 stores the expiration date of the corresponding license.
[0063] When the use of the library 50 is requested, the management server 100 adds a new entry to the usage management information 84 after undergoing a predetermined process.
[0064] The management server 100 may manage the type and expiration date of the license determined by a contract with the application developer 20 or the like. Alternatively, a party other than the management server 100 may have a license management function.
[0065] (c2: Verification of Library 50) The verification of the library 50 by the management server 100 includes confirmation of vulnerabilities included in the library 50 and confirmation of code redundancy included in the library 50. For the verification of the library 50, any process can be adopted.
[0066] (c3: Usage Management Information 54) FIG. 6 is a schematic diagram showing an example of the usage management information 54 included in the package 70 generated by the management server 100 of the software usage system 1 according to the present embodiment. Referring to FIG. 6, the usage management information 54 includes, as information, a library ID 541, a library hash value 542, a machine ID 543, a public key 544, a license 545, an expiration date 546, and a management server address 547.
[0067] The library ID 541 stores identification information for specifying the target library 50. The library hash value 542 stores the hash value calculated from the data of the target library 50. The machine ID 543 stores identification information for specifying the software development device 200 that is the license target. The public key 544 stores the value of the public key 252 of the software development device 200 that is the license target. The license 545 stores the content or type of the license related to the use of the target library 50. The expiration date 546 stores the expiration date of the target license. The management server address 547 stores the IP address of the management server 100 or the like.
[0068] Note that the information included in the usage management information 54 is not limited to that shown in FIG. 6, and any information can be included as necessary.
[0069] In accordance with the usage management information 54 as shown in FIG. 6, the usage of the target library 50 and the package 70 including the library 50 is managed.
[0070] <D. Functional Configuration and Processing of Software Development Device 200> Next, the functional configuration and processing of the software development device 200 will be described.
[0071] FIG. 7 is a schematic diagram showing an example of the functional configuration of the software development device 200 of the software usage system 1 according to the present embodiment.
[0072] Each module shown in FIG. 7 may be realized by the processor 202 of the software development device 200 executing the software development program 212.
[0073] The software development device 200 includes, as a functional configuration, a package storage unit 230, a decoding module 232, a license management module 234, an editor 236, and an execution code generation module 238.
[0074] The package storage unit 230 stores one or more packages 70 downloaded by the software development device 200. The decoding module 232 decrypts the encrypted package 70 using the private key 250. The license management module 234 refers to the library usage management information 80 and checks the presence or absence and content of the license with the management server 100. The editor 236 provides an environment for developing an application. The user operates the editor 236 to create the source code 240 of the application.
[0075] The execution code generation module 238 generates the execution code 90 corresponding to the application from the source code 240. The execution code generation module 238 includes a parser, a compiler, a linker, and the like. The execution code generation module 238 refers to the library 50 included in the package 70 and the like, and generates the appropriate execution code 90 from the source code 240. When generating the execution code 90, the execution code generation module 238 acquires license information from the license management module 234 and generates the execution code 90 according to the acquired license information.
[0076] <E. Execution Code> Next, an example of the execution code 90 generated by the software development apparatus 200 will be described.
[0077] FIG. 8 is a schematic diagram showing an example of the execution code 90 generated in the software utilization system 1 according to the present embodiment.
[0078] FIG. 8(A) shows a case where the library 50 is incorporated in the form of source code into a part of the source code 240 of the application. The execution code 90 is generated by compiling the source code 240 including the library 50 and the like.
[0079] FIG. 8(B) shows a case where the source code 240 of the application refers to the library 50 in object form. In this case, when generating the execution code 90 from the source code 240 of the application, the library 50 in object form is incorporated. Instead of directly incorporating the library 50 in object form into the execution code 90, the execution code 90 may indirectly refer to the library 50 in object form.
[0080] In this way, the execution code 90 can be generated by a method according to the distribution form of the library 50.
[0081] In the example shown in FIG. 8, it is assumed that the software development apparatus 200 generates a license that allows the application (execution code 90) generated using the library 50 to be executed without restriction. However, the license of the library 50 may be checked at the time of installation or execution of the application (execution code 90).
[0082] FIG. 9 is a schematic diagram showing another example of the execution code 90 generated in the software utilization system 1 according to the present embodiment. FIG. 9 shows an example of checking a license when the execution code 90 is executed by the device 300.
[0083] Referring to FIG. 9, the execution code 90 includes the object-form library 50, the usage management information 54A, and the license management module 92. The software development apparatus 200 generates the usage management information 54A including all or part of the usage management information 54 included in the package 70 and incorporates it into the execution code 90. Further, the software development apparatus 200 incorporates the license management module 92 for realizing the process of checking the license into the execution code 90.
[0084] In this way, the software development apparatus 200 may include at least a part of the usage management information 54 included in the package 70 in the execution code 90 that uses the library 50 included in the package 70.
[0085] When the execution code 90 is executed in the device 300, the license management module 92 checks the necessary license with reference to the usage management information 54A. For example, the license management module 92 checks that there is a license necessary for using the library 50 by transmitting the library ID and the machine ID included in the usage management information 54A to the management server 100. The execution code 90 may be activated only when the necessary license exists. Alternatively, the license management module 92 may activate the execution code 90 only when a code indicating the license is input.
[0086] As described above, in the example shown in FIG. 9, the software development apparatus 200 generates the execution code 90 including the license management module 92 and the usage management information 54A, so that the usage of the library 50 included in the execution code 90 can be more reliably grasped according to the frequency and time of execution of the execution code 90.
[0087] FIG. 10 is a schematic diagram showing still another example of the execution code 90 generated in the software usage system 1 according to the present embodiment. FIG. 10 shows an example of checking a license when installing the execution code 90 in the device 300.
[0088] Referring to FIG. 10, the execution code 90 immediately after generation includes the object-form library 50 and the usage management information 54A. When installing the execution code 90 from the software development apparatus 200 to the device 300, the license management module 234 of the software development apparatus 200 checks the necessary license with reference to the usage management information 54A.
[0089] For example, the license management module 234 checks that there is a license necessary for using the library 50 by transmitting the library ID and the machine ID included in the usage management information 54A to the management server 100. Only when there is a necessary license, the license management module 234 may incorporate the activation information 94 into the execution code 90. Alternatively, the license management module 234 may incorporate the activation information 94 into the execution code 90 only when a code indicating a license is input.
[0090] The execution code 90 can be executed in the device 300 or the like only when valid activation information 94 is incorporated.
[0091] As described above, in the example shown in FIG. 10, when the software development device 200 installs the execution code 90 on the device 300, it checks the license, so that the use of the library 50 included in the execution code 90 can be more reliably grasped.
[0092] FIG. 11 is a schematic diagram showing still another example of the execution code 90 generated in the software utilization system 1 according to the present embodiment. FIG. 11 shows an example of checking the execution environment when the execution code 90 is executed.
[0093] Referring to FIG. 11, the execution code 90 is executed on an execution environment 96 such as a device. The execution environment 96 includes the hardware resources and software resources of the device on which the execution code 90 is executed. When the execution of the execution code 90 is instructed, the license management module 92 included in the execution code 90 determines whether the execution environment 96 for executing the execution code 90 meets predetermined requirements. If the execution environment 96 does not meet the requirements, the license management module 92 interrupts the execution of the execution code 90.
[0094] The predetermined requirements include, for example, processor capacity, available memory capacity, presence or absence of a network interface, presence or absence of a security chip, and the like. Further, in the execution environment 96 using an authenticated IP address, it may also be determined whether the IP address is a predetermined IP address or not. Such requirements may be included in the usage management information 54A or may be coded inside the license management module 92.
[0095] Also, the license management module 92 may execute the process of checking the license as described above.
[0096] As described above, by having the license management module 92 determine whether the execution environment 96 meets the predetermined requirements, it is possible to ensure that the execution code 90 is properly executed.
[0097] FIG. 12 is a schematic diagram showing still another example of the execution code 90 generated in the software utilization system 1 according to the present embodiment. FIG. 12 shows an example in which the license management module 92 is prepared in the execution environment 96. The execution environment 96 may be provided by, for example, the firmware of the device on which the execution code 90 is executed.
[0098] When an instruction to execute the execution code 90 is given from the execution environment 96, the license management module 92 in the execution environment 96 refers to the usage management information 54A included in the execution code 90 and checks the necessary license. Further, the license management module 92 may further execute any of the above-described processes.
[0099] In this way, by preparing the license management module 92 in the execution environment 96, the size of the execution code 90 itself can be reduced, and the incorporation and distribution of the execution code 90 into the device can be made easier.
[0100] <F. Other implementation forms> The software development device 200 has a key pair of a private key 250 and a public key 252, but the public key 252 may be used as an authenticated IP address. By also using the public key 252 of the software development device 200 as an IP address, the package 70 can be transmitted to the software development device 200 to which the license of the package 70 is granted. Thereby, the possibility that the transmission destination of the package 70 is disguised can be reduced.
[0101] <G. Advantages> According to the software utilization system according to this embodiment, the application developer 20 can develop an application by using any library 50 developed by the library developer 10. When using the library 50, since the library 50 includes library utilization management information 80 corresponding to the software development device 200 to be used, the usage record of the library 50 and the usage fee related to the usage can be managed more reliably. By adopting such a mechanism, there are merits for both the library developer 10 and the application developer 20, and the enrichment of the library and the efficiency of application development can be realized.
[0102] The embodiments disclosed this time should be considered as illustrative in all respects and not restrictive. The scope of the present invention is shown not by the above description but by the claims, and it is intended that all modifications within the meaning and scope equivalent to the claims are included.
Explanation of Reference Numerals
[0103] 1 Software utilization system, 10 Library developers, 20 Application developers, 50,50S Library, 52,823 Owner ID, 54,54A,84 Utilization management information, 56 Database, 60 Library request, 62,543,842 Machine ID, 70 Package, 80 Library utilization management information, 82 Registration management information, 90 Execution code, 92,234 License management module, 94 Activation information, 100 Management server, 102,202 Processor, 104,204 Main memory, 106,206 Input section, 108,208 Display, 110,210 Storage, 112 Verification registration engine, 114 Utilization management engine, 120,220 Communication interface, 122,222 Internal bus, 200 Software development device, 212 Software development program, 214 Application, 230 Package storage section, 232 Decryption module, 236 Editor, 238 Execution code generation module, 240 Source code, 250 Secret key, 252,544 Public key, 300 Device, 541,821,841 Library ID, 542 Library hash value, 545,843 License, 546,825,844 Expiration date, 547 Management server address, 822 Library name, 824 Verification date and time, 826 Additional information.
Claims
1. A storage unit that stores one or more libraries; Means for managing the usage conditions of one or more libraries in association with the public key of the software development device; Package providing means for generating an encrypted package including the requested library and usage management information using the public key of the software development device in response to a request from the software development device, and providing the encrypted package to the software development device; The software development device decrypts the encrypted package using a private key, and provides an environment for developing an application using the package, a software usage system.
2. The software usage system according to claim 1, wherein the usage management information includes information on usage conditions and expiration dates of the library.
3. The software usage system according to claim 1, wherein the software development device includes at least a part of the usage management information included in the package in the execution code using the library included in the package.
4. The software usage system according to claim 1, wherein the software development device transmits a request including identification information for identifying the software development device.
5. The software usage system according to claim 1, further comprising management means for managing payment of a fee corresponding to the usage of the library to the owner of the library.
6. A step in which a server stores one or more libraries; A step in which the server manages the usage conditions of one or more libraries in association with the public key of the software development device; A step in which the server generates an encrypted package including the requested library and usage management information using the public key of the software development device in response to a request from the software development device, and provides the encrypted package to the software development device; A software usage method comprising a step in which the software development device decrypts the encrypted package using a private key, and provides an environment for developing an application using the package.
Citation Information
Patent Citations
Software component distribution supporting method, software component distribution supporting system realizing it, and program
JP2004206586A
Software component, software component management method and software component management system
JP2008146479A
Hybrid encryption method and system for protecting reusable software components
US5343527A