Software exploitation system and software exploitation method
Patent Information
- Application Number
- TW111123731
- Authority / Receiving Office
- TW · TW
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-06-25
- Filing Date
- 2022-06-24
- Publication Date
- 2026-10-01
- Estimated Expiration
- 2042-06-23
AI Technical Summary
Existing software component management systems fail to effectively manage and secure the use of software components across different development environments, leading to potential unauthorized use and lack of efficient fee management.
A software utilization system that includes a storage unit for component libraries and a kit providing mechanism, which encrypts packages with a public key and manages utilization information, ensuring secure distribution and fee payment, while integrating identification and license management for authorized use.
Enhances secure and efficient management of software components, reducing unauthorized use and facilitating reliable fee collection, thereby improving the efficiency of application development and enriching component libraries.
Smart Images

Figure TWG2TB001913259_001 
Figure TWG2TB001913259_002 
Figure TWG2TB001913259_003
Abstract
Description
Technical field
[0001] The present disclosure relates to a software utilization system and a software utilization method.
Prior Technology
[0002] With the advancement of information and communication technology (Information and Communication Technology: ICT) in recent years, various things (things) and networks are connected by networks. Therefore, software development becomes more and more important.
[0003] Generally, the speed of software development is improved by reusing existing software resources. For example, Japanese Unexamined Patent Application Publication No. 2004-206586 (Patent Document 1) discloses a software component circulation assisting method that effectively promotes the circulation of software components used in the development of a project. [Prior Art Document] [Patent Document]
[0004] Patent Document 1: Japanese Unexamined Patent Publication No. 2004-206586
Content of invention
[0006] A typical purpose of the present disclosure is to provide a solution that can more easily implement management related to the use of software. [Technical solutions for solving problems]
[0007] A software utilization system according to an embodiment of the present disclosure includes: a storage unit, which stores one or a plurality of component libraries; and a kit providing mechanism, which responds to a request from a software development device and generates in the requested component library A kit using management information is added, and the generated kit is encrypted with the public key of the software development device and provided to the software development device. The utilization management information includes identification information for identifying software development devices. After the software development device decrypts the encrypted package with the private key, the package is used to provide an environment for developing applications.
[0008] The use management information may also include information on the use conditions and validity period of the component library.
[0009] The software development device may also include at least a part of the utilization management information included in the kit in the execution code after using the component library included in the kit.
[0010] The software development device may also send a request including identification information for identifying the software development device.
[0011] The software utilization system may also include a management mechanism that manages the payment of the fee corresponding to the use of the component library for the owner of the component library.
[0012] The method of using software according to another embodiment of the present disclosure includes: a step of storing one or multiple component libraries; A step of encrypting the generated suite with the public key of the software development device and providing it to the software development device. The utilization management information includes identification information for identifying software development devices. The software utilization method includes the step of using the package to provide an environment for developing applications after decrypting the encrypted package with a private key in the software development device. (invention effect)
[0013] According to the present disclosure, management related to the use of software can be more easily realized.
Implementation
[0015] Embodiments of the present invention will be described in detail with reference to the drawings. In addition, the same figure code|symbol is attached|subjected to the same or equivalent part in a figure, and the description is not repeated.
[0016] <A. Outline> First, an example of a processing procedure related to creation, distribution, and utilization of software in the software utilization system 1 of this embodiment will be described.
[0017] FIG. 1 is a schematic diagram schematically showing the processing steps in the software utilization system 1 of the present embodiment. Referring to FIG. 1 , a software utilization system 1 includes a management server 100 and a software development device 200 as main components. Furthermore, in the software utilization system 1, the individual or legal person who develops the component library (hereinafter also referred to as "component library developer 10") and the individual or legal person who uses the component library to develop applications (hereinafter also referred to as "application developer 10") 20") can participate.
[0018] In this specification, "component library" includes software resources that can be used for application development. For example, component libraries can be circulated in arbitrary ways such as categories, functions, function blocks, procedures, and packages. Furthermore, as the distribution method of the component library, any form such as source code, intermediate representation, object form, and execution form may be used.
[0019] In this specification, "application" includes any program. That is, the application is not limited to a program for executing specific processing, and may include a program constituting at least a part of an OS (Operating System: operating system). Furthermore, the form of the application may be any of source code, intermediate representation, object form, execution form, and the like.
[0020] FIG. 2 is a sequence diagram showing an example of a processing procedure in the software utilization system 1 of the present embodiment. Each step shown in FIG. 2 is described corresponding to FIG. 1 .
[0021] Referring to FIG. 1 and FIG. 2, first, the component library developer 10 develops an arbitrary component library 50S (step S1). The component library developer 10 requests the management server 100 to register the developed component library 50S (step S2). In the request for registration, the component library 50S is sent to the management server 100 in the form of source code, and is assigned the owner ID 52 . The owner ID 52 is identification information for specifying the component library developer 10 who developed the component library, and is also used for specifying the payment destination of the usage fee and the like when the developed component library is used.
[0022] The management server 100 verifies the component library 50S from the component library developer 10, and if there is no problem with the verification result, it registers the component library 50 in correspondence with the owner ID 52 (step S3). In this way, the management server 100 sequentially stores the component library 50 associated with the owner ID 52 in the database 56 . That is, the management server 100 has a database 56 as a storage unit for storing one or a plurality of component libraries 50 . In addition, the component library 50 may directly register the component library 50S in the form of source code, or may register in the form of an intermediate representation or an object generated from the component library 50S.
[0023] The management server 100 has the component library utilization management information 80. Based on the registration of the component library 50 to the database 56 , the management server 100 adds an entry corresponding to the component library usage management information 80 . The component library use management information 80 includes information for managing the use of the component library 50 registered in the database 56 .
[0024] The above processing is performed every time the component library developer 10 develops and registers the component library 50. Next, a case where an application is developed using one or a plurality of component libraries 50 will be described.
[0025] The application developer 20 selects one or multiple component libraries required for application development, and requests the required component library 50 from the management server 100 (step S4). The component library request 60 sent from the software development device 200 to the management server 100 includes a machine ID 62 . The device ID 62 is identification information for specifying the software development device 200 that is the source of the component library request 60 . In this way, the software development apparatus 200 transmits a request (component library request 60 ) including identification information (apparatus ID 62 ) for specifying the software development apparatus 200 .
[0026] The management server 100 responds to the component library request 60, and generates the package 70 of the requested component library 50. More specifically, the management server 100 adds the use management information 54 to the object component library 50 (step S5). As the utilization management information 54, a data structure and management technology conforming to DRM (Digital Rights Management) may also be adopted. The use management information 54 includes the device ID 62 . For example, in the use management information 54, the use device ID 62 defines the use range of the corresponding component library.
[0027] Subsequently, the management server 100 encrypts the package 70 composed of the component library 50 to which the utilization management information 54 is added (step S6). The software development device 200 has a key pair of a private key 250 and a public key 252 . The public key 252 of the software development device 200 that sent the component library request 60 is used for encryption of the package 70 .
[0028] In this way, the management server 100 responds to the request from the software development device 200 (component library request 60), generates the package 70 with the usage management information 54 added to the requested component library 50, and sends the generated package 70 It is encrypted with the public key 252 of the software development device 200 and provided to the software development device 200 . In this case, the use management information 54 includes identification information (device ID 62 ) for specifying the software development device 200 .
[0029] Furthermore, the management server 100 performs billing processing related to the use of the component library 50 (step S7). More specifically, the management server 100 adds or updates information required for billing processing in the corresponding entry of the component library usage management information 80 .
[0030] Finally, the management server 100 downloads the encrypted package 70 to the software development device 200 (step S8).
[0031] The software development device 200 uses the private key 250 to decrypt the encrypted package 70 (step S9). Accordingly, the kit 70 (component library 50 ) can be used in the software development device 200 .
[0032] The application developer 20 uses the kit 70 (component library 50) to develop an application (step S10). The software development device 200 generates the execution code 90 from the developed application program (step S11 ). The generated execution code 90 is provided to an arbitrary device 300 .
[0033] Through the above processing steps, an application executed by any device 300 is developed. That is, after the software development device 200 decrypts the encrypted package 70 with the private key 250 , the package 70 provides an environment for developing applications.
[0034] Furthermore, the management server 100 pays the component library developer 10 the usage fee related to the use of the component library 50 (step S12). Any method may be adopted for the payment of the usage fee. In this manner, the management server 100 manages the payment of fees according to the use of the component library 50 to the owner of the component library 50 (the component library developer 10 ).
[0035] In the software utilization system 1, since the utilization management information 54 including the device ID 62 of the software development device 200 of the download destination is added to the downloaded component library 50, the software development device 200 other than the download destination , can reduce the possibility of the component library 50 being illegally used.
[0036] Furthermore, since the package 70 is encrypted using the public key 252 of the software development device 200 of the download destination, the possibility of illegal use of the component library 50 can be reduced outside the software development device 200 of the download destination. .
[0037] <B. Example of Hardware Configuration> Next, an example of the hardware configuration of the devices constituting the software utilization system 1 of 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 an example of the hardware configuration of the management server 100 constituting the software utilization system 1 of the present embodiment. Referring to FIG. 3 , the management server 100 includes one or a plurality of processors 102 , a main memory 104 , an input unit 106 , a display 108 , a storage device 110 , and a communication interface 120 as main components. These elements are connected via internal bus bars 122 .
[0040] The processor 102 is composed of, for example, a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), and the like. Multiple processors 102 can be configured, and processors 102 with multiple cores can also be used.
[0041] The main memory 104 is composed of a volatile storage device such as DRAM (Dynamic Random Access Memory: Dynamic Random Access Memory) and SRAM (Static Random Access Memory: Static Random Access Memory).
[0042] The storage device 110 is constituted by a nonvolatile storage device such as a hard disk or an SSD (Solid State Drive).
[0043] In the program stored in the storage device 110, the specified code is expanded on the main memory 104, and the processor 102 sequentially executes the computer-readable instructions (computer readable instructions) contained in the program code expanded on the main memory 104. -readable instructions), to achieve various functions described later.
[0044] The input unit 106 accepts any input operation. The display 108 displays processing results of the processor 102 and the like. The communication interface 120 exchanges data with any external device.
[0045] The storage device 110 stores the verification registration engine 112 for realizing the verification and registration processing of the component library 50 requesting registration, and the utilization for realizing the processing related to the use of the component library 50 in the software development device 200. Management engine 114 . Moreover, the storage device 110 implements the database 56 in which the component 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] FIG. 4 is a schematic diagram showing an example of the hardware configuration of the software development device 200 constituting the software utilization system 1 of the present embodiment. Referring to FIG. 4 , the software development device 200 includes a processor 202 , a main memory 204 , an input unit 206 , a display 208 , a storage device 210 , and a communication interface 220 as main components. These elements are connected via internal bus bars 222 .
[0048] The processor 202 is constituted by, for example, a CPU, a GPU, or the like. The main memory 204 is composed of a volatile storage device such as DRAM or SRAM. The storage device 210 is composed of a non-volatile storage device such as a hard disk or SSD, and maintains various programs and various data executed by the processor 202 .
[0049] In the program stored in the storage device 210, the specified code is expanded on the main memory 204, and the processor 202 executes the computer-readable instructions contained in the program code expanded on the main memory 204 in order to realize Various functions described later.
[0050] The input unit 206 accepts any input operation. The display 208 displays processing results of the processor 202 and the like. The communication interface 220 exchanges data with any external device.
[0051] The storage device 210 stores a software development program 212 for realizing an integrated development environment and an application 214 arbitrarily created by a user. In addition, the storage device 210 can store the package 70 downloaded by the management server 100 and the execution code 90 generated from the application 214 .
[0052] The software development device 200 may also have an element for reading the stored program or the like from a non-transitory medium storing the software development program 212 including computer-readable instructions. The medium may also be, for example, optical media such as DVD (Digital Versatile Disc), semiconductor media such as USB memory, and the like. In addition, the software development program 212 can not only be installed in the software development device 200 via a medium, but can also be provided from a distribution server on the network.
[0053] (b3: others) All or a part of the management server 100 and the software development device 200 may use hardware such as an ASIC (Application Specific Integrated Circuit) incorporating a circuit equivalent to a computer-readable instruction. wire circuit implementation. Or it can also be implemented on an FPGA (Field-Programmable Gate Array: Field-Programmable Gate Array) using circuits equivalent to computer-readable instructions. Furthermore, it can also be implemented by appropriately combining processors, main memory, ASIC, FPGA, and the like.
[0054] Moreover, the software development device used by the component library developer 10 can also be realized by a general-purpose computer.
[0055] <C. Functional Configuration and Processing of Management Server 100> Subsequently, the functional configuration and processing of the management server 100 will be described.
[0056] (c1: component library use management information) FIG. 5 is a schematic diagram showing an example of the component library use management information 80 included in the management server 100 of the software utilization system 1 according to this embodiment. Referring to FIG. 5 , component library usage management information 80 includes registration management information 82 and usage management information 84 . In FIG. 5, an example of managing data in the form of a key-value store is shown as an example, but any data management method may be used.
[0057] The registration management information 82 includes the information of the component library 50 registered in the management database 56. The use management information 84 includes information for managing the use of the component library 50 .
[0058] More specifically, the registration management information 82 includes a component library ID 821, a component library name 822, an owner ID 823, a verification date and time 824, an expiration date 825, and additional information 826 for each entry.
[0059] The component library ID 821 is stored as identification information for identifying the object component library 50 . The name of the object component library 50 is stored in the component library name 822 . The owner ID 823 is stored as identification information for specifying the owner of the object component library 50 . The date and time when the object component library 50 was verified is stored in the verification date and time 824 . The usable period of the object component library 50 is stored in the valid period 825 . Any information associated with the object component library 50 is stored in the additional information 826 .
[0060] The management server 100 requests to register a new component library 50. If the verification result is correct, the component library 50 is stored in the database 56, and a new entry is added to the registration management information 82.
[0061] The utilization management information 84 includes a component library ID 841, a machine ID 842, a license 843, and an expiration date 844 for each entry.
[0062] The identification information for identifying the object component library 50 is stored in the component library ID 841. The device ID 842 is stored as identification information for specifying the software development device 200 using the object component library 50 . Alternatively, identification information for specifying the software development program 212 using the object component library 50 may be stored in the machine ID 842 . The license type is stored in the license 843 as the utilization condition of the object component library 50 . As the type of license, for example, it is conceivable that the development of the application 214 in the software development device 200 and the execution of the execution code 90 generated from the application 214 can be performed without restriction, and the license can be performed without restriction only in the software development device 200. A license to develop the application 214, a license to execute the execution code 90 generated from the application 214, and the like. The expiration date of the corresponding license is stored in the expiration date 844 .
[0063] When the use of the component library 50 is requested, the management server 100 adds a new entry to the use management information 84 through predetermined processing.
[0064] The management server 100 can also manage the type and validity period of the license determined by the contract with the application developer 20 and the like. Alternatively, a body different from the management server 100 may have the license management function.
[0065] (c2: Verification of the component library 50) The verification of the component library 50 by the management server 100 includes confirmation of the vulnerability contained in the component library 50, confirmation of the redundancy of the code contained in the component library 50, and the like. Regarding the verification of the component library 50, arbitrary processing may be employed.
[0066] (c3: Use management information 54) FIG. 6 is a schematic diagram showing an example of use management information 54 included in the package 70 generated by the management server 100 of the software use system 1 according to this embodiment. Referring to FIG. 6, the usage management information 54 includes a component library ID 541, a component 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 as information.
[0067] The component library ID 541 is stored as identification information for identifying the object component library 50 . The hash value calculated according to the data of the object component library 50 is stored in the component library hash value 542 . It is stored in the device ID 543 as identification information for specifying the software development device 200 as a licensed object. The public key 544 stores the value of the public key 252 of the software development device 200 as a license object. In the license 545, the content or type of the license related to the use of the object component library 50 is stored. The expiration date of the permission to store the object in expiration date 546 . The management server address 547 stores the IP address of the management server 100 and the like.
[0068] In addition, the information included in the usage management information 54 is not limited to the information shown in FIG. 6, and may include any information as needed.
[0069] According to the use management information 54 shown in FIG. 6, the use of the object component library 50 and the package 70 including the component 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 utilization system 1 according to this embodiment.
[0072] The modules shown in FIG. 7 can also be implemented by the processor 202 of the software development device 200 executing the software development program 212.
[0073] The software development device 200 includes a package storage unit 230, a decryption module 232, a license management module 234, an editor 236, and an execution code generation module 238 as functional structures.
[0074] The package storage unit 230 stores one or a plurality of packages 70 downloaded by the software development device 200 . The decryption module 232 uses the private key 250 to decrypt the encrypted package 70 . The license management module 234 refers to the component library use management information 80, and confirms the existence and content of the license with the management server 100. Editor 236 provides an environment for developing applications. The user operates the editor 236 to generate the source code 240 of the application.
[0075] The executable code generation module 238 generates the executable code 90 equivalent to the application from the source code 240. The execution code generation module 238 includes a parser, a compiler, a linker, and so on. The execution code generation module 238 refers to the component library 50 included in the package 70 and generates the appropriate execution code 90 from the source code 240 . When the execution code generation module 238 generates the execution code 90 , the license management module 234 obtains the license information, and generates the execution code 90 corresponding to the obtained license information.
[0076] <E. Execution Code> Next, an example of the execution code 90 generated by the software development device 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 of this embodiment.
[0078] FIG. 8(A) shows a case where a part of the source code 240 of the application is loaded with the component library 50 in the form of the source code. The execution code 90 is generated by compiling the source code 240 including the component library 50 or the like.
[0079] In FIG. 8B, the source code 240 of the application refers to the component library 50 in the form of objects. In this case, when the execution code 90 is generated from the source code 240 of the application, the component library 50 in the form of an object is loaded. Furthermore, instead of directly loading the component library 50 in the form of an object into the execution code 90 , the component library 50 in the form of an object may be directly referenced in the execution code 90 .
[0080] In this way, the execution code 90 can be generated by a method corresponding to the distribution form of the component library 50.
[0081] In the example shown in FIG. 8 , it is assumed that the software development device 200 can execute the application (execution code 90 ) generated using the component library 50 without restriction. However, it is also possible to confirm the permission of the component library 50 when installing or executing the application (executing the code 90).
[0082] FIG. 9 is a schematic diagram showing another example of the execution code 90 generated in the software utilization system 1 of this embodiment. An example of confirming permission when the execution code 90 is executed by the device 300 is shown in FIG. 9 .
[0083] Referring to FIG. 9, the execution code 90 includes a component library 50 in the form of an object, use management information 54A and a license management module 92. The software development device 200 generates the usage management information 54A including all or part of the usage management information 54 included in the package 70 and loads it into the execution code 90 . Furthermore, the software development apparatus 200 loads the execution code 90 with the license management module 92 for realizing the process of confirming the license.
[0084] In this way, the software development device 200 may also include at least a part of the usage management information 54 included in the package 70 in the execution code 90 that utilizes the component 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 required license. For example, the license management module 92 sends the component library ID and the machine ID included in the use management information 54A to the management server 100 to confirm that there is a license required for the use of the component library 50 . Execution of code 90 may also be initiated only if the required permissions exist. Alternatively, the license management module 92 may activate the execution code 90 only when a code indicating a license is input.
[0086] Thus, in the example shown in FIG. 9 , by generating the execution code 90 including the license management module 92 and the utilization management information 54A by the software development device 200, the frequency and time of execution of the execution code 90 can be changed. The utilization of the component library 50 included in the execution code 90 is reliably grasped.
[0087] FIG. 10 is a schematic diagram showing still another example of the execution code 90 generated in the software utilization system 1 of the present embodiment. FIG. 10 shows an example of confirmation of permission when the executable code 90 is installed in the device 300 .
[0088] Referring to FIG. 10, the execution code 90 immediately after generation includes the component library 50 and the use management information 54A in the form of objects. When installing the executable code 90 from the software development device 200 to the device 300, the license management module 234 of the software development device 200 refers to the use management information 54A to confirm the required license.
[0089] For example, the license management module 234 sends the component library ID and the machine ID included in the use management information 54A to the management server 100 to confirm that there is a license required for the use of the component library 50 . License management module 234 may load startup information 94 into executable code 90 only if the required license is present. Alternatively, the license management module 234 may also load the activation information 94 into the execution code 90 only when the code representing the license is input.
[0090] Executable code 90 can only be executed in device 300 or the like if valid activation information 94 is loaded.
[0091] In this way, in the example shown in FIG. 10, when the software development device 200 installs the execution code 90 to the device 300, the permission is confirmed, so the use of the component library 50 included in the execution code 90 can be grasped more reliably.
[0092] FIG. 11 is a schematic diagram showing yet another example of the execution code 90 generated in the software utilization system 1 of the present embodiment. An example of confirming the execution environment when the execution code 90 is executed is shown in FIG. 11 .
[0093] Referring to FIG. 11, the execution code 90 is executed on an execution environment 96 of a device or the like. The execution environment 96 includes hardware resources and software resources of the device where 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 judges whether the execution environment 96 for executing the execution code 90 meets the preset 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 pre-set requirements include, for example, processor capability, remaining memory capacity, presence or absence of a network interface, presence or absence of a security chip, and the like. In addition, in the execution environment 96 using the authenticated IP address, it is also possible to determine whether it is a preset IP address or the like. Such requirements may be included in the usage management information 54A, or may be coded inside the license management module 92 .
[0095] The license management module 92 may also perform the process of confirming the license as described above.
[0096] As described above, the execution code 90 can be properly executed by judging whether the execution environment 96 meets the preset requirements by the license management module 92 .
[0097] FIG. 12 is a schematic diagram showing still another example of the execution code 90 generated in the software utilization system 1 of the present embodiment. An example in which the license management module 92 is prepared in the execution environment 96 is shown in FIG. 12 . The execution environment 96 may also be provided, for example, by the firmware of the device executed by the execution code 90 .
[0098] When the execution of the execution code 90 is instructed from the execution environment 96, the license management module 92 of the execution environment 96 refers to the use management information 54A included in the execution code 90 to confirm necessary permissions. In addition, the license management module 92 can further perform any processing described above.
[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 loading and distribution to devices can be made easier.
[0100] <F. Other installation methods> The software development device 200 has a key pair of the private key 250 and the public key 252, but the public key 252 can also be used as the authenticated IP address. By using the public key 252 of the software development device 200 as an IP address, the software development device 200 to which the license of the software development device 70 is granted can distribute the software development device 70 . Thereby, the possibility that the sending destination of the kit 70 is forged can be reduced.
[0101] <G. Advantages> According to the software utilization system of this embodiment, the application developer 20 can use any component library 50 developed by the component library developer 10 to develop an application. When the component library 50 is used, the component library 50 includes the component library usage management information 80 corresponding to the software development device 200 of the use destination, so that the utilization performance of the component library 50 or the usage fee involved in the use can be managed more reliably. . By employing such a structure, there are advantages for both the component library developer 10 and the application developer 20, and it is possible to enrich the component library and improve the efficiency of application development.
[0102] It should be considered that the embodiments disclosed this time are illustrative and not restrictive in any respect. The scope of the present invention is shown not by the above description but by the scope of the claims, and it is intended that all changes within the meaning and scope equivalent to the scope of the claims are included. [Simple description of the diagram]
[0014] FIG. 1 is a schematic diagram schematically showing the processing steps in the software utilization system of this embodiment. FIG. 2 is a sequence diagram showing an example of a processing procedure in the software utilization system of this embodiment. FIG. 3 is a schematic diagram showing an example of a hardware configuration of a management server constituting the software utilization system of the present embodiment. FIG. 4 is a schematic diagram showing an example of a hardware configuration of a software development device constituting the software utilization system of the present embodiment. FIG. 5 is a schematic diagram showing an example of component library use management information included in the management server of the software use system according to this embodiment. FIG. 6 is a schematic diagram showing an example of usage management information included in a package generated by the management server of the software usage system according to this embodiment. FIG. 7 is a schematic diagram showing an example of the functional configuration of the software development device of the software utilization system of the present embodiment. FIG. 8 is a schematic diagram showing an example of the execution code generated in the software utilization system of this embodiment. FIG. 9 is a schematic diagram showing another example of the execution code generated in the software utilization system of this embodiment. FIG. 10 is a schematic diagram showing still another example of the execution code generated in the software utilization system of this embodiment. FIG. 11 is a schematic diagram showing yet another example of the execution code generated in the software utilization system of the present embodiment. FIG. 12 is a schematic diagram showing still another example of the execution code generated in the software utilization system of the present embodiment.
Claims
1. A software utilization system comprising: a storage unit storing one or more component libraries; a mechanism for managing utilization conditions of the one or more component libraries in association with a public key of a software development device; and a kit providing mechanism that, in response to a request from the software development device, generates an encrypted kit containing the requested component library and utilization management information using the public key of the software development device, and provides it to the software development device, wherein the software development device, after decrypting the encrypted kit using a private key, utilizes the kit to provide an environment for application development.
2. The software utilization system described in Request 1, wherein the utilization management information includes information on the utilization conditions and validity period of the component library.
3. The software utilization system as described in claim 1, wherein the software development apparatus includes at least a portion of the utilization management information included in the kit in the executable code after utilizing the component library included in the kit.
4. The software utilization system described in any of claims 1 to 3, wherein the software development device sends a request including identification information for identifying the software development device.
5. The software utilization system described in any one of claims 1 to 3, wherein the software utilization system further comprises a management organization that manages the payment of fees corresponding to the utilization of the component library for the owner of the component library.
6. A software exploitation method, comprising: The steps for storing one or more component libraries on the server; The server, associated with the public key of the software development apparatus, manages the access conditions of one or more component libraries; and the server responds to a request from the software development apparatus by using the public key of the software development apparatus to generate an encrypted package containing the requested component library and access management information, and provides it to the software development apparatus. The software access method includes the step of the software development apparatus decrypting the encrypted package using a private key and then using the package to provide an environment for application development.
Citation Information
Patent Citations
Secure key generation
TW201334493A
Platform configurations
TW201939339A
Software component, software component management method, and software component management system
US20080141380A1
Method and System for Resolving a Naming Conflict
US20120324219A1
Compiler that decrypts encrypted source code
US6684389B1
