WO2023218875A1 - システム構築装置 - Google Patents
システム構築装置 Download PDFInfo
- Publication number
- WO2023218875A1 WO2023218875A1 PCT/JP2023/015440 JP2023015440W WO2023218875A1 WO 2023218875 A1 WO2023218875 A1 WO 2023218875A1 JP 2023015440 W JP2023015440 W JP 2023015440W WO 2023218875 A1 WO2023218875 A1 WO 2023218875A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- source code
- construction device
- unit
- user
- system construction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
Definitions
- the present invention relates to a system construction device that constructs a system on a predetermined execution environment.
- Patent Document 1 a technology is disclosed that automates the deployment of resources by converting the order sheet into source code based on the order sheet in which system requirements are described.
- Patent Document 1 By using the technology described in Patent Document 1, it is possible to automatically construct a system in accordance with system requirements even if the user does not have coding knowledge. On the other hand, when a user changes the configuration of a deployed system without changing the source code, there is a problem in that the source code of the target system and the configuration of the target system are different.
- Patent Document 2 describes a technique for detecting the presence or absence of a system setting change and reflecting the detected setting change in the source code.
- Patent Document 2 devices included in a system to be constructed are monitored, and there is a problem in that changes such as adding new devices to the system cannot be reflected in the source code. Further, since coding rules for writing source code often differ depending on the user, there is a risk that coding rules for modified source code may lack consistency depending on how the code is reflected in the source code. Therefore, in order to facilitate source code management and user understanding, it is necessary to modify the source code so that it is consistent after reflection.
- the present invention was made in view of the above-mentioned problems, and it is possible to change the user's writing style, including adding new resources to the system, when the user changes the system configuration without changing the source code.
- the purpose is to correct the differences between the source code and system configuration.
- a system construction device is a system construction device that constructs a system including infrastructure resources and setting values for the infrastructure resources on a predetermined execution environment, and inputs a request for system construction that satisfies desired requirements.
- a system source code creation part that creates a first source code that defines a system that satisfies desired requirements; a deployment part that deploys and builds the system based on the requirements on the execution environment; a configuration change detection unit that detects a difference between a second source code and a first source code that define the changed system when the system built on the system is changed;
- a settings change reflection unit that reflects the difference in the first source code, the setting change reflection unit reflects the difference in the first source code based on the coding rule applied to the first source code.
- the original system construction information and the changed system can be combined with the original system construction information in a form with unified coding rules. Differences with the configuration can be corrected.
- FIG. 1 is a hardware configuration diagram of a system construction device 100 according to a first embodiment.
- FIG. 1 is a functional block configuration diagram of a system construction device 100 according to a first embodiment.
- 5 is a flowchart of processing executed by the system construction device 100 according to the first embodiment.
- FIG. 4 is a diagram illustrating a specific example of step S101 in the flowchart of FIG. 3.
- 4 is a diagram illustrating a specific example of step S102 in the flowchart of FIG. 3.
- FIG. 4 is a diagram illustrating a specific example of step S103 in the flowchart of FIG. 3.
- FIG. 4 is a diagram illustrating a specific example of step S103 in the flowchart of FIG. 3.
- FIG. 4 is a diagram illustrating a specific example of step S103 in the flowchart of FIG. 3.
- FIG. 4 is a diagram illustrating an example of system source code related to the deployment process in step S104 and step S105 in FIG. 3.
- FIG. 4 is a flowchart illustrating a specific example of steps S106 and S107 in the flowchart of FIG. 3.
- 8 is a diagram illustrating a specific example of a method for determining an existing setting value 282, which is referred to in step S202 in the flowchart of FIG. 7.
- FIG. 8 is a flowchart illustrating a specific example of step S209 in the flowchart of FIG. 7.
- 7 is a flowchart of processing executed by the system construction device 100 according to the second embodiment.
- FIG. 1 shows an example of the hardware configuration of a system construction apparatus 100 according to this embodiment.
- the system construction device 100 includes hardware such as an arithmetic unit 110, a storage device 120, an input/output I/F (Interface) 130, and a communication I/F (Interface) 140.
- hardware such as an arithmetic unit 110, a storage device 120, an input/output I/F (Interface) 130, and a communication I/F (Interface) 140.
- the arithmetic device 110 is, for example, a CPU (Central Processing Unit), and performs various functions described below through processing by the CPU.
- a CPU Central Processing Unit
- the storage device 120 includes, for example, a RAM (Random Access Memory) and a ROM (Read Only Memory), and stores data used by the arithmetic device 110.
- a RAM Random Access Memory
- ROM Read Only Memory
- the input/output I/F 130 is, for example, a display having a touch panel function, and displays processing results by the arithmetic device 110 and a user interface of a portal screen 210, which will be described later, on the screen.
- the communication I/F 140 is, for example, a communication chip or NIC (Network Interface Card), and is used for communication with an execution environment 280 and a user 201, which will be described later.
- NIC Network Interface Card
- the data When each part of the system construction device 100 accepts data, the data may be accepted via the input/output I/F 130, or the data may be accepted via the communication I/F 140.
- FIG. 2 is a functional block diagram showing an example of the configuration of each functional unit included in the system construction device 100.
- the system construction device 100 includes a portal screen 210, a repository 220, a system source code creation section 230, a deployment section 240, a settings change detection section 250, a settings change reflection section 260, and a coding rule storage section 270. It consists of:
- the source code of the deployment template 221 and module 222 is registered in advance in the designated repository 220.
- Examples of the repository 220 include GitHub (https://github.com/) for cloud services and GitLab for OSS. An example of the source code will be described later using FIG. 6.
- FIG. 2 shows an example in which multiple templates 221 and modules 222 are managed by one repository 220, the repository 220 may be separated for each source code corresponding to each of multiple projects. It's okay.
- the source code is used to construct a specific system 281.
- the source code includes not only a configuration in which one system 281 corresponds to one template 221, but also a module 222 that is a set of functions that constitute a part of the system 281.
- the system source code of one system 281 is created by combining a plurality of modules 222.
- the various types of information to be managed and displayed by the device 100 include the template 221 and the module 222, which are the source code for constructing the system 281, the entity or reference of the system source code, and the like.
- the system construction device 100 displays a portal screen 210 to the user 201 of the system construction device 100 on a display device (not shown).
- An example of the portal screen 210 will be described later using FIGS. 4 and 5.
- the portal screen 210 is equipped with a CPU (not shown), and presents system candidates from templates 221 and modules 222 in the repository 220 according to the user's selection, as will be described later.
- the user 201 uses the portal screen 210 to select the system 281 that he wishes to construct this time. For example, the user 201 inputs functional requirements and non-functional requirements of the cloud service, and presents a template 221 prepared in advance.
- the template 221 is a service that is a combination of public cloud services, private cloud services, etc. that satisfy each requirement based on past performance.
- Non-functional requirements may include requirements regarding the network.
- Examples of network-related requirements include whether to use a public IP, whether to use a firewall, whether to use an encryption function, etc., but are not limited to these, and may include various network-related requirements.
- the functional requirements may include information indicating whether the execution environment 280 to be used is one of multiple types of clouds.
- the functional requirements may include various requirements related to the purpose and infrastructure of the system 281.
- each infrastructure resource 283 of the presented template 221 is changed to another infrastructure resource 283 that can realize a similar function, or infrastructure resources 283 are added or deleted to customize.
- the system 281 to be constructed is selected by inputting the setting values 282 required for each infrastructure resource 283 to be deployed from a parameter sheet or the like.
- the system source code creation unit 230 creates the system source code using the template 221 and module 222 of the selected system 281 from the repository 220.
- Execution environment 280 is an environment for operating system 281.
- the execution environment 280 is, for example, a public cloud service, a private cloud service, a cluster of IT resources managed by an orchestration tool such as OpenStack, Kubernetes, or the like.
- the execution environment 280 for operating the system 281 selected by the user 201 may be specified by the user 201.
- the execution environment 280 may be a different execution environment for each user 201, or one execution environment may be shared.
- a system 281 is constructed in the execution environment 280, including an infrastructure resource 283, a setting value 282 of the infrastructure resource 283, etc. based on the system source code.
- the user 201 makes necessary changes to the constructed system 281 on the execution environment 280, and performs development (changes to the system 281) suitable for the user 201's purpose.
- the setting change detection unit 250 detects whether there is a setting change in the system 281 to be constructed. When there is a change in the settings of the system 281, the settings change detection unit 250 detects the difference between the configuration of the system 281 defined by the system source code created by the system source code creation unit 230 and the current system 281 in the execution environment. Detect and extract settings changes.
- the settings change reflection unit 260 reflects the difference detected by the settings change detection unit 250 in the system source code created by the system source code creation unit 230 based on the coding rule stored in the coding rule storage unit 270.
- the coding rules include, for example, being derived from standard variable names provided by each vendor as variable name definitions, and that variables such as IDs are not hard-coded.
- the execution environment 280 is an IaaS (Infrastructure as a Service) public cloud
- the deployment process is Terrafrom
- the template 221 and module 222 are HCL (HCL)
- HCL HCL
- the execution environment 280 may be Kubernetes
- the object to be built in the execution environment 280 may be a container
- the deployment process may be Helm.
- FIG. 3 is a flowchart illustrating an example of processing executed by the system construction apparatus 100 according to the first embodiment of the present invention. Each step in FIG. 3 will be explained below. Further, an outline of each step shown in FIG. 3 will be explained below, and details thereof will be described later.
- the user 101 inputs desired requirements (functional requirements and non-functional requirements) from the portal screen 210 (step S101).
- the user 201 inputs information necessary to deploy the system 281 presented on the portal screen 210 (step S103).
- the necessary information is, for example, the setting value 282 of each infrastructure resource 283 included in the system 281.
- the setting values 282 include, for example, the name of each infrastructure resource 283 and the billing destination for fees generated by employing and operating the infrastructure resource 283.
- the setting value 282 may be defined by the provider of each infrastructure resource 283.
- the user 201 may change each infrastructure resource 283 to another infrastructure resource 283.
- the system source code generation unit 230 generates a system source code by inputting information on infrastructure resources 283 included in the system 281 presented on the portal screen 210 and information necessary for deploying the system 281 (step S104).
- the deployment unit 240 constructs a system 281 on the execution environment 280 using the system source code generated by the system source code creation unit 230.
- the setting change detection unit 250 monitors and detects whether the user 201 directly changes the system 281. If a setting change is detected, the setting change detection unit 250 detects and extracts the change (step S106). The setting change detection unit 250 may detect the changed contents using any method. The setting change detection unit 250 may extract only the difference.
- the settings change reflection unit 260 refers to the coding rules adopted by the system source code creation unit 230, which are stored in the coding rule storage unit 270, and reflects the differences extracted by the settings change detection unit 250 in the system source code. The process ends with the above steps.
- FIG. 4 is a diagram illustrating a specific example of the screen displayed on the portal screen 210 in step S101 of FIG. 3.
- a requirement input screen 300 is displayed on the portal screen 210.
- the user 201 selects, on the portal screen 210, the purpose to be achieved by the system 281, the availability and performance required for the system 281, and the network conditions for operating the system on the requirement input screen 300.
- FIG. 4 an example is shown in which options such as development type, analysis type, and cooperation type are displayed in the service type 301 as the purpose to be achieved by the system 281.
- options such as development type, analysis type, and cooperation type are displayed in the service type 301 as the purpose to be achieved by the system 281.
- the types of infrastructure resources 283 of the system 281 displayed on the portal screen 210 change according to the purpose.
- system 281 is designed to collect data and perform analysis.
- Such automation allows the user 201 to reduce the number of steps normally required in designing the system 281.
- the options are just examples, and other options may be used.
- FIG. 4 an example is shown in which options for production and PoC (Proof of Concept) are displayed in the item Availability 302 as availability.
- PoC refers to verification and demonstration at the pre-prototype development stage for the purpose of verifying new concepts, theories, principles, and ideas.
- the configuration and setting values 282 of the infrastructure resources 283 of the system 281 displayed on the portal screen 210 change according to the selected availability. For example, if production use is selected, the system 281 is distributed and deployed in multiple regions (for example, Tokyo and Osaka), so that the system 281 continues to operate even if a disaster occurs in one region. Designed to. In other words, redundancy is ensured. This option is just one example, and other options may be used.
- FIG. 4 an example is shown in which options of level 1, level 2, and level 3 are displayed in the item of performance 303 as performance.
- the setting value 282 of the infrastructure resource 283 of the system 281 displayed on the portal screen 210 changes according to the performance.
- the model number of the infrastructure resource 283 of the system 281 is set to the most expensive model number.
- the options are just examples, and other options may be used.
- an example is shown in which, as a network condition, an item called external connection 304 displays whether there is an external connection or there is no external connection.
- the infrastructure resources 283 and setting values 282 related to the network connection of the system 281 displayed on the portal screen 210 change according to the network conditions.
- a firewall is deployed as a network connection infrastructure resource assuming external connection.
- the options are just examples, and other options may be used.
- the requirements displayed in FIG. 4 are just examples, and other requirements may be used. Furthermore, in FIG. 4, instead of the purpose desired to be achieved by the system 281, the past system 281 may be displayed as an option. In that case, the requirements when the past system 281 was deployed are input.
- FIG. 5A is a diagram illustrating a specific example of the process performed in step S102 in FIG. 3.
- the system construction device 100 presents on the portal screen 210 a system 281 plan that realizes the functional requirements and non-functional requirements input in step S101.
- the user 201 inputs information necessary to deploy the system 281 presented on the portal screen 210 (see FIG. 5B). Furthermore, the user 201 may change each infrastructure resource 283 to another infrastructure resource 283.
- FIG. 5B is an example of a method for inputting information necessary to deploy the system 281 presented on the portal screen 210 in step S103 in FIG. 3.
- a screen 301 shown in FIG. 5B is displayed.
- an Excel sheet containing various parameters necessary for deploying the infrastructure resource selected in FIG. 5A is uploaded as a parameter sheet, and the settings required for each infrastructure resource 283 are uploaded.
- An example of inputting the value 282 is shown.
- FIG. 5C is an example of changing each service to another service in step S103 in FIG. 3.
- screen 320 in FIG. 5C is displayed.
- an example was shown in which a resource for storing data is changed. If the user selects another resource, the resource is changed to the user's selected resource.
- FIG. 6 is a diagram showing an example of the system source code related to the deployment process in step S104 and step S105 in FIG. 3.
- Terrafrom is used for the deployment process.
- Terraform is an open source automatic infrastructure construction tool developed by HashiCorp.
- the template 221 generally includes a main.
- a source code such as Tf (400), variables.
- a variable file in a format such as Tf (410) and auto. input. and a variable input file in a format such as tfvars(420).
- the template file may include program elements, such as if statements.
- the deployment unit 240 deploys the infrastructure resource 283 on the execution environment 280 using the deployment tool based on the system source code generated in step S104.
- FIG. 7 is a flowchart showing an example of a specific processing procedure in step S106 and step S107 in FIG. Each step in FIG. 7 will be explained below.
- the setting change detection unit 250 detects that the user 201 has directly changed the system 281 on the execution environment 280 (step S201).
- the standard source code is created using a function to export the system 281 prepared by the cloud vendor as the source code of each cloud vendor. After the acquisition, the difference between the acquired source code and the reference source code may be acquired using the sequential export function.
- each cloud vendor provides metadata as standard indicating that the system 281 is the same, and this makes it possible to detect the addition of new equipment to the system 281.
- each cloud vendor provides metadata as standard indicating that the system 281 is the same, and this makes it possible to detect the addition of new equipment to the system 281.
- the setting change detection unit 250 checks whether a setting change has been detected (step S202). If a setting change is detected, the process advances to step S203; if a setting change is not detected, the process ends.
- step S203 the setting change detection unit 250 checks the type of setting change.
- settings changes related to the infrastructure resource 283 include adding or deleting a new infrastructure resource 283, and setting changes regarding the setting value 282 of the infrastructure resource 283 include changing the setting value 282 of the infrastructure resource 283. It is. If a setting change regarding the infrastructure resource 283 is detected, the process advances to step S207, and if a setting change regarding the setting value 282 of the infrastructure resource 283 is detected, the process advances to step S204.
- the set value 282 here is a parameter written on the parameter sheet shown in FIG. 5B.
- the setting change reflection unit 260 checks whether the setting change is related to the existing setting value 282 (step S204).
- the existing setting value 282 refers to a setting value 282 that has already been defined in the system source code.
- a VM Virtual Machine
- a VM is a virtual environment that is created on a physical hardware system (off-premises or on-premises), has its own CPU, memory, network interface, and storage, and functions as a virtual computer system.
- the VM size is set to small in the part where the VM is defined as the system source code. After that, when the VM size is manually changed to medium by the user 201, the VM size is determined to be the existing setting value 282 because it is the setting value 282 that has already been defined as the system source code. . Further, if a setting value that is not defined as the system source code, for example, a VM tag is added, it is determined that the setting value 282 is not an existing setting value 282 because it is not defined as the system source code. If the setting is to be changed regarding the existing setting value 282, the process advances to step S205; otherwise, the process advances to step S206.
- FIG. 8 is a diagram illustrating a specific example of a method for determining the existing setting value 282, which is referred to in step S202.
- the system construction device 100 has information as a system source code as to which infrastructure resource 283 defines which variable. For example, if the infrastructure resource 283 is a VM, a certain variable is defined in lines 1-9 of the path "./tempA,” in the system source code, and a variable is defined in the path "./module" in the system source code. You can see that it is called on lines 10-20 of the path. By using this, the infrastructure resource 283 name detected as a difference and its variable name are input, and it is searched and determined whether the existing setting value 282 exists.
- the setting change reflection unit 260 updates the current setting value of the corresponding setting value 282 using information about which infrastructure resource 283 defines which variable as the system source code. Change the value to the difference setting value. This allows configuration changes to be modified based on the original coding rules.
- the setting change reflection unit 260 uses the information about which infrastructure resource 283 defines which variable as the system source code to update the corresponding setting value 282 as a new setting value. It is added to the system source code (step S206). After that, the process advances to step S205, and the current setting value 282 is set. This allows configuration changes to be modified based on the original coding rules.
- the setting change reflection unit 260 checks whether the setting change is related to an existing infrastructure resource 283 (step S207).
- Existing infrastructure resources 283 refer to infrastructure resources 283 that have already been defined in the system source code. For example, if the infrastructure resource 283 of a VM is defined as a system source code, and the user 201 manually adds another VM, the VM is determined to be an existing infrastructure resource 283. Furthermore, if a new VM that is not defined as an infrastructure resource 283 is added, it is determined that it is not an existing infrastructure resource 283.
- the process advances to step S208; otherwise, the process advances to step S209.
- the configuration change reflection unit 260 adds the existing infrastructure resource 283 to the system source code (step S208).
- the source code program of each infrastructure resource 283 registered in the repository 220 in advance is searched using the name of the added infrastructure resource 283 obtained as a difference. Thereafter, the source code program of the identified infrastructure resource 283 is added to the system source code.
- the setting change may also be the deletion of a resource, in which case it is sufficient to delete the portion that defines the relevant resource in the source code program.
- the source code program of the system source code includes a part that defines the infrastructure resources 283 to be used and a part that defines and sets the setting values 282 of the infrastructure resources 283. That is, when there is a change in the system source code, a part that defines the infrastructure resource 283 of the registered source code program is added to the part that defines the infrastructure resource 283 to be used in the system source code. . Further, a part defining variables used by the registered source code program is added to a part defining variables used by the infrastructure resource 283 in the system source code. Then, a portion for setting the setting value 282 used by the registered source code program is added to each portion of the system source code for setting the setting value 282 used by the infrastructure resource 283.
- mapping methods have been proposed in the past. For example, there is a method of manually associating variable names output as difference information with variable names of the source code program, or a method of calculating the similarity between variable names output as difference information and variable names of the source code program. and how to do so. This allows configuration changes to be modified based on the original coding rules.
- FIG. 9 is a flowchart showing an example of a specific processing procedure in step S209. Each step in FIG. 9 will be explained below.
- the setting change reflection unit 260 searches for the source code program of the corresponding infrastructure resource 283 from the name of the infrastructure resource 283 included in the difference information (step S301).
- Terraform publishes an API (Application Programming Interface) for searching, and it is possible to obtain search results by adding search parameters to a specific URL.
- a shared repository may be set up that is managed by an organization to which the user 201 belongs.
- an example of a source code program may be obtained by web scraping from a page explaining the relevant infrastructure resource described in the official page of the relevant infrastructure resource 283.
- the setting change reflection unit 260 examines the source code program of the acquired infrastructure resource 283 (step S302).
- the source code program of the acquired infrastructure resource 283 it is a possibility that there is a source code program among the candidates that does not include the corresponding infrastructure resource. Therefore, multiple candidate source code programs are analyzed to check whether they contain the characters of the corresponding infrastructure resource. After that, source code programs that do not include that character are deleted from the candidates.
- candidates may be examined using metadata possessed by the source code program.
- a source code program with a large number of stars indicating the popularity of the source code program may be selected. Thereby, one source code program is selected from a plurality of acquired source code programs.
- the setting change reflection unit 260 checks whether a candidate exists based on the scrutiny performed in step S302 (step S303). If the number of candidates is 1, the process advances to step S304, and if the number of candidates is 0, the process ends.
- step S304 modifying the source code program refers to rewriting the obtained source code program based on the coding rule specified by the user 201.
- a specific example of the coding rule is a method of converting variable names in a source code program according to a naming rule specified by the user 201. This is because although configuration item names are defined for resources in the construction tool, the variable names for those configuration item names are named by the developer, so the naming rules are not necessarily unified. This is because there is no
- a source code program is lexically analyzed based on the grammar of the programming language and converted into a token string. Convert the converted token string to a tree structure. Based on the tree structure of the conversion result, check the variable names and perform conversion according to the naming rules. For example, adding the resource name to the front of the setting item name and connecting it with an underscore, or using all uppercase letters.
- Another example of a coding rule is to match the directory structure to the original source code program. For example, there is a method of cutting out each resource as a separate source code program file and calling each resource as a module.
- the directory structure differs depending on the method of calling the directory structure as a module and the method of realizing the directory structure with one source code program.
- the obtained source code program is placed on the module directory, and the part that calls the obtained source code program is added to the original source code program.
- the setting change reflection unit 260 automatically adds a source code program, but the method is not necessarily limited to automatic addition, and other users 201 are notified and the user 201 is informed of the new resource. It is also possible to prompt the user to create a source code program and obtain the created source code program.
- the system construction device 100 detects a change in the settings of the system 281, and reflects the change in setting to the system source code based on the coding rule.
- the system construction device 100 does not require extra man-hours to automatically reflect settings changes made manually by the user 201 in the construction information, and the system construction device 100 does not require any extra man-hours to automatically reflect settings changes made manually by the user 201 in the construction information. Since there is no need to make corrections based on coding rules, the number of man-hours required to reflect setting changes can be reduced.
- the user 201 inputs the functional requirements and non-functional requirements of the system 281 on the portal screen 210, presents the system 281 that meets the requirements, and the user 201 customizes the system 281. Then, the system 281 is automatically constructed. Thereby, even if the user 201 has no knowledge of the design of the system 281 or the automatic construction technology of the system 281, the user 201 can create the system 281 that meets the requirements.
- Example 2 Next, a system construction apparatus according to a second embodiment of the present invention will be described.
- the user 201 inputs the functional requirements and non-functional requirements of the system 281 on the portal screen 210, the system 281 that satisfies the requirements is presented, and the user 201 customizes the system 281.
- a requirement input screen is not displayed on the portal screen 210, and the system is constructed based on the system source code written by the user 201. This makes it possible to create and manage the system 281 based on the system source code even if the user 201 creates the system source code himself, such as when the user 201 is familiar with automatic construction technology for the system 281. can.
- FIG. 10 is a flowchart illustrating a procedure for the system construction device 100 to construct and manage a system in the second embodiment. Each step in FIG. 10 will be explained below.
- the system construction device 100 receives the system source code from the user 201 (step S401).
- a screen similar to that shown in FIG. 5B may be displayed on the portal screen 210 to allow uploading of the system source code.
- a text editor capable of writing system source code may be displayed on the portal screen 210, and the user 201 may directly write the system source code.
- the deployment unit 240 performs deployment processing based on the system source code received in step S401 (step S402). This process is similar to step S104 in FIG.
- the user may perform the deployment process.
- a system is constructed using Terrafrom construction commands in the user's environment.
- Steps S403 and S404 are similar to steps S106 and S107 in FIG. 3.
- the user when the user 201 performs the deployment process, the user inputs information regarding the system 281 for which configuration changes are to be detected and construction information based on system source code, and the configuration changes are detected and reflected.
- a system is constructed based on the system source code written by the user 201.
- the system can be created and managed based on the system source code.
- a system construction device is a system construction device that constructs a system including infrastructure resources and setting values for the infrastructure resources on a predetermined execution environment, and is capable of building a system that satisfies desired requirements.
- An input section for inputting requests, a system source code creation section for creating a first source code that defines a system that satisfies desired requirements, and a deployment section for deploying and building a system on the execution environment based on the requests.
- a settings change detection unit detects a difference between a second source code and a first source code that define the changed system; and a settings change detection unit.
- a settings change reflection unit that reflects the detected difference in the first source code
- the setting change reflection unit reflects the difference in the first source code based on a coding rule applied to the first source code.
- the setting change reflection unit corrects the setting value in the second source code based on the coding rule, and corrects the first source code. Furthermore, if the difference includes the addition of an infrastructure resource, the configuration change reflection unit obtains the source code of the added infrastructure resource, modifies the source code based on the coding rules, and updates the first source code. Correct. This allows any changes made to the system source code to be reflected appropriately.
- the settings change detection unit determines whether the added infrastructure resource is a new infrastructure resource based on metadata that specifies the system. This makes it possible to appropriately modify the source code even if a new resource is added that was not anticipated in the prior art.
- the input section includes a portal screen display section, the requirements include functional requirements and non-functional requirements, and the portal screen display section presents the user with system candidates that satisfy the input functional requirements or non-functional requirements. do. This allows the user to select candidates by separating functional requirements and non-functional requirements, improving convenience for the user. Additionally, desired requirements can be added to the user by automatically selecting and presenting system candidates. It becomes possible to give notice for correction.
- the deploying unit creates construction information for constructing the system selected by the user based on the user's selection of the presented system candidates, and constructs the system on the execution environment. Thereby, it is possible to realize rapid system construction by utilizing the information stored in the repository of the system construction device.
- the present invention is not limited to the embodiments described above, and includes various modifications.
- the above-described embodiments have been described in detail to explain the present invention in an easy-to-understand manner, and the present invention is not necessarily limited to having all the configurations described.
- System construction device 100: System construction device, 210: Portal screen (input section/portal screen display section), 220: Repository, 230: System source code creation section, 240: Deployment section, 250: Settings change detection section, 260: Settings change reflection section , 270: Coding rule storage section, 280: Execution environment, 281: System, 282: Setting value, 283: Infrastructure resource
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
Description
図1は、本実施例に係るシステム構築装置100のハードウェア構成の一例を示している。システム構築装置100は、図1に示すように、演算装置110と、記憶装置120と、入出力I/F(Interface)130と、通信I/F(Interface)140等のハードウェアを備える。
次に、本発明の実施例2に係るシステム構築装置について説明する。実施例1においては、利用者201がポータル画面210上でシステム281の機能要件と非機能要件を入力し、要件を満たすシステム281を提示し、利用者201がカスタマイズする例を説明した。実施例2では、ポータル画面210上での要件入力画面の表示を行わず、利用者201が記述したシステムソースコードに基づいてシステム構築を行う。これにより、利用者201がシステム281の自動構築技術に精通しているなど、利用者201が自らシステムソースコードを作成する場合においても、システムソースコードに基づいてシステム281を作成、管理することができる。
(1)本発明に係るシステム構築装置は、所定の実行環境上にインフラストラクチャーリソース及び該インフラストラクチャーリソースの設定値を含むシステムを構築するシステム構築装置であって、所望の要件を満たすシステム構築の要求を入力する入力部と、所望の要件を満たすシステムを定義する第一ソースコードを作成するシステムソースコード作成部と、実行環境上に、システムを要求に基づいてデプロイして構築するデプロイ部と、実行環境上に構築されたシステムが変更された場合に、変更された該システムを定義する第二ソースコードと第一ソースコードとの差分を検出する設定変更検出部と、設定変更検出部により検出された差分を第一ソースコードに反映させる設定変更反映部と、を備え、設定変更反映部は、第一ソースコードに適用されたコーディングルールに基づいて差分を第一ソースコードに反映させる。
Claims (6)
- 所定の実行環境上にインフラストラクチャーリソース及び該インフラストラクチャーリソースの設定値を含むシステムを構築するシステム構築装置であって、
所望の要件を満たすシステム構築の要求を入力する入力部と、
前記所望の要件を満たすシステムを定義する第一ソースコードを作成するシステムソースコード作成部と、
前記実行環境上に、前記システムを前記要求に基づいてデプロイして構築するデプロイ部と、
前記実行環境上に構築された前記システムが変更された場合に、変更された該システムを定義する第二ソースコードと前記第一ソースコードとの差分を検出する設定変更検出部と、
前記設定変更検出部により検出された前記差分を前記第一ソースコードに反映させる設定変更反映部と、を備え、
前記設定変更反映部は、前記第一ソースコードに適用されたコーディングルールに基づいて前記差分を前記第一ソースコードに反映させる、
ことを特徴とするシステム構築装置。 - 請求項1に記載のシステム構築装置であって、
前記差分に前記設定値の変更が含まれる場合に、前記設定変更反映部は、前記第二ソースコードの設定値を前記コーディングルールに基づいて修正し、前記第一ソースコードを修正する
ことを特徴とするシステム構築装置。 - 請求項1に記載のシステム構築装置であって、
前記差分に前記インフラストラクチャーリソースの追加が含まれる場合に、前記設定変更反映部は、追加された前記インフラストラクチャーリソースのソースコードを取得し、該ソースコードを前記コーディングルールに基づいて修正し、前記第一ソースコードを修正する
ことを特徴とするシステム構築装置。 - 請求項3に記載のシステム構築装置であって、
前記設定変更検出部は、前記システムを特定するメタデータに基づいて、
追加された前記インフラストラクチャーリソースが新規のインフラストラクチャーリソースであるか否か判定する
ことを特徴とするシステム構築装置。 - 請求項1に記載のシステム構築装置であって、
前記入力部はポータル画面表示部を含み、前記要件は機能要件と非機能要件とを含み、 前記ポータル画面表示部は、入力された前記機能要件または前記非機能要件を満たすシステムの候補を利用者に提示する
ことを特徴とするシステム構築装置。 - 請求項5に記載のシステム構築装置であって、
前記デプロイ部は、前記提示されたシステムの候補に対する前記利用者の選択に基づいて、前記利用者が選択したシステムを構築するための構築情報を作成し、前記システムを前記実行環境上に構築する
ことを特徴とするシステム構築装置。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP23803357.5A EP4524722A4 (en) | 2022-05-13 | 2023-04-18 | SYSTEM CONSTRUCTION DEVICE |
| CN202380019637.2A CN118633076A (zh) | 2022-05-13 | 2023-04-18 | 系统构建装置 |
| US18/842,447 US20250190193A1 (en) | 2022-05-13 | 2023-04-18 | System construction device |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022-079548 | 2022-05-13 | ||
| JP2022079548A JP7744294B2 (ja) | 2022-05-13 | 2022-05-13 | システム構築装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2023218875A1 true WO2023218875A1 (ja) | 2023-11-16 |
Family
ID=88730261
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2023/015440 Ceased WO2023218875A1 (ja) | 2022-05-13 | 2023-04-18 | システム構築装置 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US20250190193A1 (ja) |
| EP (1) | EP4524722A4 (ja) |
| JP (1) | JP7744294B2 (ja) |
| CN (1) | CN118633076A (ja) |
| WO (1) | WO2023218875A1 (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2025248719A1 (ja) * | 2024-05-30 | 2025-12-04 | 三菱電機株式会社 | アプリケーション管理システム、アプリケーション管理方法及びプログラム |
| US12541342B1 (en) * | 2025-10-09 | 2026-02-03 | ExlService Holdings, Inc. | Platform for automated infrastructure-as-code generation and deployment using multi-agent architecture |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006018735A (ja) * | 2004-07-05 | 2006-01-19 | Hitachi Software Eng Co Ltd | コーディング規準遵守状況監視システム |
| JP2007200125A (ja) * | 2006-01-27 | 2007-08-09 | Fujitsu Ltd | コーディング規約選択プログラム |
| JP2020042679A (ja) * | 2018-09-12 | 2020-03-19 | 株式会社日立製作所 | ビジュアルプログラミングツールを用いてフローを作成することを支援する装置および方法 |
| JP2021140372A (ja) | 2020-03-04 | 2021-09-16 | 三菱電機インフォメーションネットワーク株式会社 | 構成管理装置、構成管理方法、及び、構成管理プログラム |
| JP2021157612A (ja) | 2020-03-27 | 2021-10-07 | ソフトバンク株式会社 | 情報処理システム、プログラム、及び情報処理方法 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006260165A (ja) | 2005-03-17 | 2006-09-28 | Ricoh Co Ltd | プログラムルールチェック装置 |
| JP7231518B2 (ja) * | 2019-08-30 | 2023-03-01 | 株式会社日立製作所 | パッケージ化支援システムおよびパッケージ化支援方法 |
-
2022
- 2022-05-13 JP JP2022079548A patent/JP7744294B2/ja active Active
-
2023
- 2023-04-18 WO PCT/JP2023/015440 patent/WO2023218875A1/ja not_active Ceased
- 2023-04-18 EP EP23803357.5A patent/EP4524722A4/en active Pending
- 2023-04-18 CN CN202380019637.2A patent/CN118633076A/zh active Pending
- 2023-04-18 US US18/842,447 patent/US20250190193A1/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006018735A (ja) * | 2004-07-05 | 2006-01-19 | Hitachi Software Eng Co Ltd | コーディング規準遵守状況監視システム |
| JP2007200125A (ja) * | 2006-01-27 | 2007-08-09 | Fujitsu Ltd | コーディング規約選択プログラム |
| JP2020042679A (ja) * | 2018-09-12 | 2020-03-19 | 株式会社日立製作所 | ビジュアルプログラミングツールを用いてフローを作成することを支援する装置および方法 |
| JP2021140372A (ja) | 2020-03-04 | 2021-09-16 | 三菱電機インフォメーションネットワーク株式会社 | 構成管理装置、構成管理方法、及び、構成管理プログラム |
| JP2021157612A (ja) | 2020-03-27 | 2021-10-07 | ソフトバンク株式会社 | 情報処理システム、プログラム、及び情報処理方法 |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP4524722A4 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP4524722A4 (en) | 2026-04-22 |
| JP2023167974A (ja) | 2023-11-24 |
| US20250190193A1 (en) | 2025-06-12 |
| JP7744294B2 (ja) | 2025-09-25 |
| EP4524722A1 (en) | 2025-03-19 |
| CN118633076A (zh) | 2024-09-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11385892B1 (en) | Optimal software architecture recommendations by an application modernization service | |
| CN107766126B (zh) | 容器镜像的构建方法、系统、装置及存储介质 | |
| US10901804B2 (en) | Apparatus and method to select services for executing a user program based on a code pattern included therein | |
| CN108304201B (zh) | 对象更新方法、装置及设备 | |
| US20200050446A1 (en) | Intelligent discovery and application of api changes for application migration | |
| CN112214980B (zh) | 树结构模板的定制和推荐 | |
| US11714625B2 (en) | Generating applications for versatile platform deployment | |
| US9996336B2 (en) | Apparatus and method for validating application deployment topology in cloud computing environment | |
| US20230075183A1 (en) | Migrating infrastructure as code between different cloud providers | |
| EP2299360A1 (en) | process for installing a software application and platform operating system | |
| JPH0944361A (ja) | アプリケーション・プログラムのネットワーク導入のための導入計画オブジェクト | |
| JPH0934723A (ja) | ネットワークでのアプリケーション・プログラムの導入のための導入計画オブジェクトのコミット | |
| US10574724B2 (en) | Automatic discovery of management nodes and generation of CLI using HA module | |
| US12524214B1 (en) | Automated error troubleshooting via generative AI software development assistant | |
| WO2023218875A1 (ja) | システム構築装置 | |
| CN106406999A (zh) | 计算系统和计算系统的执行控制方法 | |
| WO2016145009A1 (en) | Method and system for rapid deployment and execution of customized functionality across multiple distinct platforms | |
| CN119895384A (zh) | 自动化机器学习模型部署 | |
| CN118228698A (zh) | 动态表单生成方法、装置、设备及存储介质 | |
| US20250244972A1 (en) | Generating Graphical User Interfaces from Design Specifications and Design Specifications from Graphical User Interfaces | |
| CN112181401A (zh) | 应用构建方法及应用构建平台 | |
| CN111722881B (zh) | 一种容器云平台的资源扩展方法、系统及装置 | |
| CN113268232B (zh) | 一种页面皮肤生成方法、装置和计算机可读存储介质 | |
| US20250244973A1 (en) | Generating Graphical User Interface Designs Using Natural Language Processing | |
| CN116149650B (zh) | 数据集成策略的配置方法、数据集成方法、装置、设备及存储介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23803357 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 202380019637.2 Country of ref document: CN |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 18842447 Country of ref document: US |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2023803357 Country of ref document: EP |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| ENP | Entry into the national phase |
Ref document number: 2023803357 Country of ref document: EP Effective date: 20241213 |
|
| WWP | Wipo information: published in national office |
Ref document number: 18842447 Country of ref document: US |