Software using system and software using method

The software usage system addresses the challenge of managing software usage across systems by encrypting packages with usage management information, ensuring secure and efficient tracking and payment, thereby enhancing software development processes.

JP2025116234AActive Publication Date: 2025-08-07帝都久利寿 +1
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2025093813
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-06-05
Publication Date
2025-08-07
Estimated Expiration
2041-06-25

AI Technical Summary

Technical Problem

Existing software development systems struggle to manage software usage effectively, especially when components are used across multiple systems, leading to challenges in tracking usage and payment for software components.

Method used

A software usage system that includes a storage unit for libraries and a package providing unit, which generates packages with usage management information, encrypts them with the software development device's public key, and provides them to the device for decryption and application development, incorporating identification and licensing information.

Benefits of technology

Enhances the management of software usage, ensuring secure and reliable tracking of library usage and payment, reducing unauthorized use, and facilitating efficient application development.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025116234000001_ABST
    Figure 2025116234000001_ABST
Patent Text Reader

Abstract

To provide a solution which can more easily implement management relating to use of software.SOLUTION: A software using system includes: a storage unit in which one or more libraries are stored; and package providing means which, in response to a request from a software developing device, generates a package where use management information is added to a requested library, and encrypts the generated package by a public key of the software developing device and then provides the package to the software developing device. The use management information includes identification information for specifying the software developing device. The software developing device decrypts the encrypted package by a secret key and then utilizes the package to provide an environment for development of an application.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to a software utilization system and a software utilization method. [Background technology]

[0002] With the recent advances in information and communication technology (ICT), various things are now connected to networks such as the Internet, making software development increasingly important.

[0003] It is common to increase the speed of software development by reusing existing software resources. For example, Japanese Patent Laid-Open Publication No. 2004-206586 (Patent Document 1) discloses a software component distribution support method that effectively promotes the distribution of software components used in project development. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] Japanese Patent Application Laid-Open No. 2004-206586 Summary of the Invention [Problem to be solved by the invention]

[0005] Japanese Patent Application Publication No. 2004-206586 (Patent Document 1) is based on the premise that software components are used within a single system, but in reality, software components are used in an area that cannot be managed by the software component provider.

[0006] A typical object of the present disclosure is to provide a solution that makes it easier to manage software usage. [Means for solving the problem]

[0007] A software usage system according to an embodiment of the present disclosure includes a storage unit that stores one or more libraries, and a package providing means that, in response to a request from a software development device, generates a package that adds usage management information to the requested library, encrypts the generated package with a public key of the software development device, and provides the 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 provides an environment for developing an application using the package.

[0008] The usage management information may include information on the library usage conditions and expiration date.

[0009] The software development device may include at least a part of the usage management information included in the package in the execution code that uses 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 a management means for managing payment of fees to the owner of the library in accordance with the use of the library.

[0012] According to another aspect of the present disclosure, a method for using software includes storing one or more libraries. and in response to a request from the 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 package to the software development device. The usage management information includes identification information for identifying the software development device. The software usage method includes the steps of decrypting the encrypted package with the private key in the software development device, and providing an environment for developing an application using the package. [Effects of the Invention]

[0013] According to the present disclosure, management of software usage can be more easily achieved. [Brief explanation of the drawings]

[0014] [Figure 1] FIG. 2 is a schematic diagram outlining a processing procedure in the software use system according to the present embodiment. [Figure 2] FIG. 10 is a sequence diagram illustrating an example of a processing procedure in the software use system according to the present embodiment. [Figure 3] FIG. 2 is a schematic diagram illustrating an example of a hardware configuration of a management server that constitutes the software use system according to the present embodiment. [Figure 4] FIG. 1 is a schematic diagram showing an example of a hardware configuration of a software development device that constitutes a software use system according to an embodiment of the present invention. [Figure 5] FIG. 2 is a schematic diagram showing an example of library usage management information held by a management server of the software usage system according to the present embodiment. [Figure 6] FIG. 10 is a schematic diagram showing an example of usage management information included in a package generated by a management server of the software usage system according to the present embodiment. [Figure 7] FIG. 2 is a schematic diagram showing an example of a functional configuration of a software development device in the software use system according to the present embodiment. [Figure 8]It is a schematic diagram showing an example of an executable code generated in the software utilization system according to this embodiment. [Figure 9] It is a schematic diagram showing another example of an executable code generated in the software utilization system according to this embodiment. [Figure 10] It is a schematic diagram showing yet another example of an executable code generated in the software utilization system according to this embodiment. [Figure 11] It is a schematic diagram showing yet another example of an executable code generated in the software utilization system according to this embodiment. [Figure 12] It is a schematic diagram showing yet another example of an executable code generated in the software utilization system according to this embodiment.

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. Overview> First, an example of the processing procedure related to the creation, distribution, and utilization of software in the software utilization system 1 according to this embodiment will be described.

[0017] FIG. 1 is a schematic diagram outlining the processing procedure in the software utilization system 1 according to this embodiment. Referring to FIG. 1, the software utilization system 1 includes, as main components, a management server 100 and a software development device 200. Also, in the software utilization system 1, 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") can be involved. Hereinafter, it will also be referred to as "application developer 20".

[0018] In this specification, the term "library" encompasses software assets that can be used in application development. For example, libraries can be distributed in any form, such as classes, functions, function blocks, procedures, or packages. Libraries can also be distributed in any form, such as source code, intermediate representation, object format, or executable format.

[0019] In this specification, the term "application" encompasses any program. In other words, applications are not limited to programs for executing specific processes, but may also include programs that constitute at least a part of an OS (Operating System). Furthermore, applications may be in any format, such as source code, intermediate representation, object format, or executable format.

[0020] 2 is a sequence diagram showing an example of a processing procedure in software use system 1 according to the present embodiment. Each step shown in FIG. 2 is described in correspondence with FIG.

[0021] 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 to the library 50S. The owner ID 52 is identification information for identifying the library developer 10 who developed the library, and is also used to identify the payee of usage fees and the like when the developed library is used.

[0022] The management server 100 verifies the library 50S from the library developer 10, and if the verification result is satisfactory, registers the library 50 in association with the owner ID 52 (step S3). In this way, the management server 100 sequentially stores the libraries 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 that stores one or more libraries 50. The library 50S may be registered as it is in the form of source code, or may be registered in the form of an intermediate representation or object generated from the library 50S.

[0023] The management server 100 has library usage management information 80. In response to the registration of a library 50 in the database 56, the management server 100 adds a corresponding entry 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] The above processing is executed every time the library developer 10 develops and registers a library 50. Next, a case where an application is developed using one or more libraries 50 will be described.

[0025] The application developer 20 selects one or more libraries required for developing the application and requests the required libraries 50 from the management server 100 (step S4). The library request 60 sent from the software development device 200 to the management server 100 includes a machine ID 62. The machine ID 62 is identification information for identifying the software development device 200 that has sent the library request 60. In this way, the software development device 200 sends a request (library request 60) that includes 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 for the requested library 50. More specifically, the management server 100 adds usage management information 54 to the target library 50 (step S5). The usage management information 54 employs a data structure and management technology that conforms to DRM (Digital Rights Management). The usage management information 54 includes a 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] Next, the management server 100 encrypts the package 70 consisting of the library 50 to which the usage management information 54 has been added (step S6). The software development device 200 has a key pair consisting of a private key 250 and a public key 252. The public key 252 of the software development device 200 that sent the library request 60 is used to encrypt the package 70.

[0028] In this way, in response to a request (library request 60) from software development device 200, management server 100 generates a package 70 by adding usage management information 54 to the requested library 50, and encrypts the generated package 70 with public key 252 of software development device 200 before providing it to software development device 200. At this time, usage management information 54 includes identification information (machine ID 62) for identifying software development device 200.

[0029] Furthermore, the management server 100 executes the billing process for the use of the library 50 (step S7). More specifically, the management server 100 adds or updates information necessary for the billing process to the corresponding entry in 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 encrypted package 70 using the private key 250 (step S9). This makes the package 70 (library 50) available for use 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 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-described processing procedure, an application to be executed on any 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] The management server 100 also pays the library developer 10 a usage fee for the use of the library 50 (step S12). Any method can be used to pay the usage fee. In this way, the management server 100 manages the payment of fees for the use of the library 50 to the owner of the library 50 (library developer 10).

[0035] In the software use system 1, the downloaded library 50 is added with use management information 54 including the machine ID 62 of the software development device 200 to which the library is downloaded. This reduces the possibility of 50 being used fraudulently.

[0036] Furthermore, since the package 70 is encrypted using the public key 252 of the software development device 200 to which it is downloaded, the possibility that the library 50 will be used illegally in a place other than the software development device 200 to which it is downloaded can be reduced.

[0037] <B. Hardware Configuration Example> Next, a hardware configuration example of the devices constituting 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 constituting 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 a volatile memory device such as, for example, 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 memory device such as a hard disk or an SSD (Solid State Drive).

[0043] ​Of the programs stored in storage 110, specified code is expanded onto main memory 104, and processor 102 sequentially executes computer-readable instructions contained in the program code expanded onto main memory 104, thereby realizing various functions as described below.

[0044] The input unit 106 accepts any input operation. The display 108 displays the processing results of the processor 102. The communication interface 120 exchanges data with any external device.

[0045] The storage 110 stores a verification and registration engine 112 for implementing the process of verifying and registering the library 50 for which registration has been requested, and a usage management engine 114 for implementing the process related to the use of the library 50 in the software development device 200. The storage 110 also implements a database 56 in which the library 50 is registered.

[0046] (b2: Software development device 200) The software development device 200 is also typically realized by a general-purpose computer.

[0047] 4 is a schematic diagram showing an example of a hardware configuration of software development device 200 constituting software use system 1 according to the present embodiment. Referring to FIG. 4, 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 212. These components are connected via an internal bus 222.

[0048] The processor 202 is configured, for example, by a CPU or a GPU. The main memory 204 is configured by a volatile storage device such as a DRAM or an SRAM. The storage 210 is configured, for example, by a non-volatile storage device such as a hard disk or an SSD, and stores various programs executed by the processor 202 and various data.

[0049] Of the programs stored in storage 210, specified code is expanded onto main memory 204, and processor 202 sequentially executes computer-readable instructions contained in the program code expanded onto main memory 204, thereby realizing various functions as described below.

[0050] The input unit 206 accepts any input operation. The display 208 displays the processing results of the processor 202. The communication interface 220 exchanges data with any external device.

[0051] The storage 210 stores a software development program 212 for realizing an integrated development environment and an application 214 created by a user. Furthermore, 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] Software development device 200 may further include a component for reading software development program 212 including computer-readable instructions from non-transitory media that stores the stored program. The media may be, for example, optical media such as a DVD (Digital Versatile Disc) or semiconductor media such as a USB memory. Note that software development program 212 may not only be installed in software development device 200 via media, but may also be provided from a distribution server on a network.

[0053] (b3:Other) All or part of the management server 100 and the software development device 200 may be implemented using a hardwired circuit such as an ASIC (Application Specific Integrated Circuit) incorporating a circuit corresponding to computer-readable instructions. Further or alternatively, it may be implemented using a circuit corresponding to computer-readable instructions on an FPGA (Field-Programmable Gate Array). It may also be implemented by appropriately combining a processor, main memory, ASIC, FPGA, etc.

[0054] Note that the software development device used by the library developer 10 can also be implemented using 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 possessed by 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] The library ID 821 stores identification information for identifying the target library 50. The library name 822 stores the name of the target library 50. The owner ID 823 stores identification information for identifying the owner of the target library 50. The verification date and time 824 stores the date and time when the target library 50 was verified. The expiration date 825 stores the expiration date until which the target library 50 can be used. The additional information 826 stores any information related to the target library 50.

[0060] When a request to register a new library 50 is received and the verification results are satisfactory, 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 a library ID 841, a machine ID 842, a license 843, and an expiration date 844 for each entry.

[0062] The library ID 841 stores identification information for identifying the target library 50. The machine ID 842 stores identification information for identifying the software development device 200 that uses the target library 50. Alternatively, the machine ID 842 may store identification information for identifying the software development program 212 that uses the target library 50. The license 843 stores the type of license as a usage condition for the target library 50. Possible license types include, for example, a license that allows unlimited development of the application 214 in the software development device 200 and unlimited execution of the executable code 90 generated from the application 214, a license that allows unlimited development of only the application 214 in the software development device 200, and a license for executing the executable code 90 generated from the application 214. The expiration date 844 stores the expiration date of the corresponding license.

[0063] When a request to use the library 50 is received, the management server 100 performs a predetermined process and adds a new entry to the usage management information 84 .

[0064] The management server 100 may manage the types and expiration dates of licenses determined by contracts with the application developer 20, etc. Alternatively, an entity 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 checking for vulnerabilities contained in the library 50 and checking for redundancy of the code contained in the library 50. Any process can be adopted for verifying the library 50.

[0066] (c3:Usage management information 54) 6 is a schematic diagram showing an example of usage management information 54 included in package 70 generated by management server 100 of software usage system 1 according to the present embodiment. Referring to FIG. 6, usage management information 54 includes, as information, library ID 541 and 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 identifying the target library 50. The library hash value 542 stores a hash value calculated from the data of the target library 50. The machine ID 543 stores identification information for identifying the software development device 200 that is the target of the license. The public key 544 stores the value of the public key 252 of the software development device 200 that is the target of the license. The license 545 stores the content or type of the license for 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, etc.

[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 functional components, 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 secret key 250. The license management module 234 refers to the library usage management information 80 and checks the presence 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 generates appropriate execution code 90 from the source code 240 by referring to the library 50 included in the package 70 and the like. When generating the execution code 90, the execution code generation module 238 obtains license information from the license management module 234 and generates the execution code 90 according to the obtained 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 or 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] 8, a license is assumed that allows unlimited execution of an application (execution code 90) generated by the software development device 200 using the library 50. However, the license of the library 50 may be checked when the application (execution code 90) is installed or executed.

[0082] 9 is a schematic diagram showing another example of execution code 90 generated in software use system 1 according to the present embodiment. Fig. 9 shows an example in which a license is checked when execution code 90 is executed by device 300.

[0083] 9, execution code 90 includes object-format library 50, usage management information 54A, and a license management module 92. Software development device 200 generates usage management information 54A that includes all or part of usage management information 54 included in package 70, and incorporates it into execution code 90. Software development device 200 also incorporates into execution code 90 a license management module 92 for implementing a process for checking a license.

[0084] In this way, the software development device 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 refers to the usage management information 54A to confirm the necessary license. For example, the license management module 92 confirms that the license necessary to use the library 50 exists by transmitting the library ID and machine ID included in the usage management information 54A to the management server 100. The execution code 90 may be activated only if the necessary license exists. Alternatively, the license management module 92 may be activated only if a code indicating a license is input.

[0086] Thus, in the example shown in Figure 9, the software development device 200 generates the execution code 90 including the license management module 92 and the usage management information 54A, thereby enabling more reliable understanding of the usage of the library 50 included in the execution code 90 depending on the frequency and time at which the execution code 90 is executed.

[0087] 10 is a schematic diagram showing yet another example of execution code 90 generated in software use system 1 according to the present embodiment. Fig. 10 shows an example of checking the license when execution code 90 is installed in device 300.

[0088] 10, immediately after generation, execution code 90 includes object-format library 50 and usage management information 54A. When installing execution code 90 from software development device 200 to device 300, license management module 234 of software development device 200 refers to usage management information 54A to confirm the necessary license.

[0089] For example, license administration module 234 confirms that a license required to use library 50 exists by transmitting the library ID and machine ID included in usage management information 54A to management server 100. Only when the required license exists, license administration module 234 may incorporate activation information 94 into executable code 90. Alternatively, license administration module 234 may incorporate activation information 94 into executable code 90 only when a code indicating a license is input.

[0090] The executable code 90 can be executed on a device such as the device 300 only if valid activation information 94 is embedded in the executable code 90 .

[0091] In this way, in the example shown in FIG. 10, when the software development apparatus 200 installs the executable code 90 in the device 300, the license is checked, so that the use of the library 50 included in the executable code 90 can be grasped more reliably.

[0092] Fig. 11 is a schematic diagram showing yet another example of execution code 90 generated in software use system 1 according to the present embodiment. Fig. 11 shows an example of checking the execution environment when execution code 90 is executed.

[0093] 11, executable code 90 is executed in an execution environment 96 such as a device. The execution environment 96 includes the hardware and software resources of the device on which the executable code 90 is executed. When execution of the executable code 90 is instructed, a license management module 92 included in the executable code 90 determines whether the execution environment 96 in which the executable code 90 is executed complies with predetermined requirements. If the execution environment 96 does not comply with the requirements, the license management module 92 suspends the execution of the executable code 90.

[0094] Examples of predetermined requirements include processor performance, available memory space, the presence or absence of a network interface, the presence or absence of a security chip, etc. Furthermore, in execution environment 96 that uses an authenticated IP address, it may also be determined whether the IP address is a predetermined IP address. Such requirements may be included in usage management information 54A or may be coded inside license administration module 92.

[0095] License administration module 92 may also perform the license verification process described above.

[0096] As described above, license administration module 92 determines whether execution environment 96 satisfies predetermined requirements, thereby ensuring that executable code 90 is executed appropriately.

[0097] FIG. 12 is a schematic diagram showing yet another example of the executable code 90 generated in the software utilization system 1 according to the present embodiment. FIG. 12 shows an example in which a 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 executable code 90 is executed.

[0098] When an instruction to execute the executable 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 executable code 90 and checks the required license. Also, the license management module 92 may further execute any of the above-described processes.

[0099] Thus, by preparing the license management module 92 in the execution environment 96, the size of the executable code 90 itself can be reduced, and the incorporation and distribution of the executable code 90 into the device can be facilitated.

[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 usage system of the present embodiment, an application developer 20 can develop an application by using any library 50 developed by a library developer 10. When using the library 50, the library 50 contains library usage management information 80 corresponding to the software development device 200 where the library 50 is to be used, so that the usage history of the library 50 and the usage fees associated with the usage can be more reliably managed. By adopting such a mechanism, it is possible to benefit both the library developer 10 and the application developer 20, and to realize an enriched library and more efficient application development.

[0102] The embodiments disclosed herein should be considered to be illustrative in all respects and not restrictive. The scope of the present invention is defined by the claims, not by the above description, and is intended to include all modifications within the meaning and scope of the claims. [Explanation of symbols]

[0103] 1 Software usage system, 10 Library developer, 20 Application developer, 50, 50S Library, 52, 823 Owner ID, 54, 54A, 84 Usage management information, 56 Database, 60 Library request, 62, 543, 842 Machine ID, 70 Package, 80 Library usage 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 unit, 108, 208 Display, 110, 210 Storage, 112 Verification registration engine, 114 Usage management engine, 120, 220 Communication interface, 122, 222 Internal bus, 200 Software development device, 212 Software development program, 214 Application, 230 Package storage unit, 232 Decryption module, 236 Editor, 238 Execution code generation module, 240 Source code, 250 Private 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 Validation date and time, 826 Additional information.

Claims

1. a storage unit for storing one or more libraries; a package providing means for generating a package in which usage management information is added to the requested library in response to a request from the software development device, encrypting the generated package with a public key of the software development device, and providing the package to the software development device, wherein 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.

2. 2. The software usage system according to claim 1, wherein the usage management information includes information on library usage conditions and expiration dates.

3. 2. The software utilization system according to claim 1, wherein the software development device includes at least a part of utilization management information included in the package in execution code that utilizes a library included in the package.

4. The software utilization system according to claim 1 , wherein the software development device transmits a request including identification information for identifying the software development device.

5. 2. The software utilization system according to claim 1, further comprising a management means for managing payment of fees to owners of said libraries in accordance with the use of said libraries.

6. storing one or more libraries; generating a package in which usage management information is added to the requested library in response to a request from the software development device, encrypting the generated package with a public key of the software development device, and providing the package to the software development device, wherein the usage management information includes identification information for identifying the software development device; The software use method includes a step of, in the software development device, decrypting the encrypted package with a private key, and then providing an environment for developing an application using the package.

Citation Information

Patent Citations

  • Software component, software component management method and software component management system

    JP2008146479A

  • Hybrid encryption method and system for protecting reusable software components

    US5343527A

  • Software component distribution supporting method, software component distribution supporting system realizing it, and program

    JP2004206586A