WO2013042618A1 - 配備装置、配備方法、及び、プログラム - Google Patents

配備装置、配備方法、及び、プログラム Download PDF

Info

Publication number
WO2013042618A1
WO2013042618A1 PCT/JP2012/073557 JP2012073557W WO2013042618A1 WO 2013042618 A1 WO2013042618 A1 WO 2013042618A1 JP 2012073557 W JP2012073557 W JP 2012073557W WO 2013042618 A1 WO2013042618 A1 WO 2013042618A1
Authority
WO
WIPO (PCT)
Prior art keywords
module
deployment
configuration information
extracted
specified
Prior art date
Application number
PCT/JP2012/073557
Other languages
English (en)
French (fr)
Inventor
栄 島村
Original Assignee
日本電気株式会社
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Publication of WO2013042618A1 publication Critical patent/WO2013042618A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Definitions

  • the present invention relates to a program deployment apparatus, a deployment method, and a program.
  • Non-Patent Document 1 describes an example of a deployment system that deploys an application module (AP module) and a plurality of software modules such as libraries and middleware on which the AP module depends in a data center.
  • FIG. 23 is a diagram illustrating a configuration of the deployment system of Non-Patent Document 1.
  • the deployment system includes a development environment input unit 1, an external repository 2, a deployment device 900, and a data center 10.
  • the deployment apparatus 900 includes a module management unit 901, a module storage unit 902, and a related module deployment unit 903.
  • the related module deployment unit 903 acquires the library on which the AP depends from the module management unit 901 according to the information on the library on which the AP module depends input from the development environment input unit 1.
  • the related module deployment unit 903 deploys the library module acquired on the middleware of the processing apparatus 11 and the AP module input from the development environment 1.
  • An object of the present invention is to solve the above-described problems and provide a deployment device, a deployment method, and a program that can change a system configuration related to an AP module according to operational requirements.
  • the deployment apparatus includes, for each of a plurality of modules, specifications of a related module that is a module on which the module depends, and one or more to one or more processing apparatuses that the module and the related module can take.
  • Module configuration information storage means for storing configuration information including the deployment format, and extracting the related module that satisfies the specifications of the related module included in the configuration information of the specified module from the plurality of modules,
  • the deployment format of the designated module and the extracted related module is the designated deployment format of the one or more deployment formats included in the configuration information of the designated module.
  • the designated module and the extracted related module are selected from one or more processing devices.
  • Each of the installation destination of the processing apparatus determines the, and a deployment unit for outputting.
  • the deployment method includes, for each of a plurality of modules, a specification of a related module that is a module on which the module depends, and one or more to one or more processing apparatuses that the module and the related module can take.
  • the configuration information including the deployment format, and extracting the related module satisfying the specification of the related module included in the configuration information of the specified module from the plurality of modules, and the specified module.
  • the one or more processing devices are arranged such that a deployment format with the extracted related module is a designated deployment format among the one or more deployment formats included in the configuration information of the designated module. From among them, the processing device to which each of the designated module and the extracted related module is deployed is determined. , And outputs.
  • the computer-readable recording medium can have a specification of a related module that is a module on which the module depends on each of a plurality of modules, the module and the related module, Configuration information including one or more deployment formats for the above processing devices is stored, and the related module satisfying the specification of the related module included in the configuration information of the specified module is extracted from the plurality of modules
  • the deployment format of the designated module and the extracted related module is the designated deployment format among the one or more deployment formats included in the configuration information of the designated module.
  • the specified module and the extracted from the one or more processing devices Determining the respective installation destination of the processing apparatus related module, for storing a program for executing a process of outputting.
  • the effect of the present invention is that the system configuration related to the AP module can be changed according to the operational requirements.
  • FIG. 2 is a block diagram showing a configuration of the deployment system in the first exemplary embodiment of the present invention.
  • the deployment system includes a development environment input unit 1, an external repository 2, a deployment device 100, and a data center 10.
  • the development environment input unit 1 inputs an application module (AP module) and configuration information 200 of the AP module to the deployment device 100.
  • AP module is an application program developed by an AP module developer or the like.
  • the external repository 2 is a repository that stores platform modules (PF modules), related modules, and configuration information 200 thereof.
  • the PF module exists in a lower layer of the AP module such as a middleware module (MW module), an OS module, a virtual machine module (VM module or VM image), and is necessary for executing the AP module.
  • Platform program infrastructure
  • the related module is another program that exists in the same layer as the AP module, such as a library executed on the MW module, and is used by the AP module.
  • the AP module, PF module, and related modules are collectively referred to as modules.
  • the deployment device 100 acquires from the external repository 2 related modules and PF modules (depending on the AP module) necessary for executing the AP module.
  • the AP module is deployed to the processing device 11 after being deployed to the processing device 11 of the data center 10.
  • deployment refers to sending a program (module) to the processing apparatus 11 and requesting an installation program in the processing apparatus 11 to install.
  • the data center 10 includes one or more processing devices 11.
  • the processing device 11 is, for example, a computer including a basic OS having a communication function, an installation program, and the like.
  • the processing apparatus 11 receives the PF module, the related module, and the AP module, performs installation, and then executes the PF module, the related module, and the AP module.
  • the internal configuration of the deployment device 100 will be described in detail.
  • the deployment apparatus 100 includes a module management unit 101, a module storage unit 102, a module configuration management unit 103, a module configuration information storage unit 104, a deployment unit 105, and an operation requirement input unit 113.
  • the module management unit 101 stores the AP module acquired from the development environment input unit 1 and the PF module and related modules acquired from the external repository 2 in the module storage unit 102.
  • the module configuration management unit 103 acquires the configuration information 200 of each module stored in the module storage unit 102 from the development environment input unit 1 or the external repository 2 and stores it in the module configuration information storage unit 104.
  • the configuration information 200 is information that designates another module such as a PF module or a related module on which the module depends, and a deployment format and additional processing related to the module and the related module.
  • the configuration information 200 exists for each module.
  • an AP module developer or the like depends on an AP module configuration information 200 in which the AP module depends, not the specific module name of the dependent module. Specify according to the specifications of the module. Then, in an operation phase for constructing a system using the AP module, as will be described later, the provisioning unit 106 uses the configuration information 200 and the AP module operation requirements 300 input by the system developer, etc.
  • the specific module name of the module on which the AP module depends and the processing device 11 that is the deployment destination of the dependent module are determined.
  • dependency resolution determining a specific module name of a module on which the module depends and a processing apparatus 11 as a deployment destination are referred to as dependency resolution.
  • FIG. 7 is a diagram schematically illustrating an example of an AP module dependency relationship (before dependency resolution) in the first exemplary embodiment of the present invention.
  • FIG. 8 is a diagram showing an example of AP module configuration information 200 in the first embodiment of the present invention.
  • the configuration information 200 in FIG. 8 corresponds to the dependency relationship in FIG.
  • the solid rectangle indicates the module
  • the dotted rectangle indicates the specification of the module.
  • the arrows between the rectangles indicate that the original module of the arrow depends on the module with the specifications at the end of the arrow.
  • the AP module with the module name “AP_1” depends on the related module having the specification “Lib_A” and the PF module (MW module) having the specification “MW_A”. Referring to FIG.
  • the AP module configuration information 200 includes a module name 201, an infrastructure dependency definition 210, and one or more related module dependency definitions 220.
  • items indicated by diagonal lines are not set at the time of acquisition from the development environment input unit 1 or the external repository 2, but are set by a deployment process by the deployment apparatus 100.
  • the module name 201 is an identifier for identifying the AP module.
  • the infrastructure dependency definition 210 includes an infrastructure specification 211, an infrastructure name 212, and an infrastructure setting 213.
  • the infrastructure specification 211 indicates a specification that the PF module on which the AP module depends should have.
  • the infrastructure name 212 indicates a specific module name of the dependent PF module.
  • the infrastructure setting 213 indicates a setting for the dependent PF module. In the example of FIG.
  • the related module dependency definition 220 includes a related module specification 221, an interface 222, an annotation 223, a related module name 224, and a related module setting 225.
  • the related module specification 221 and the interface 222 indicate the specification and interface that the related module on which the AP module depends should have, respectively.
  • the annotation 223 includes one or more deployment formats.
  • the deployment format is a deployment pattern to one or more processing devices that the AP module and related modules can take.
  • the annotation 223 may include one or more additional processes.
  • the additional process indicates a predetermined process for the output of the AP module that can be inserted between the AP module and the related module.
  • encryption for example, encryption (“confidential”), decryption, predetermined calculation processing, predetermined processing processing, or the like for the output of the AP module is used.
  • the related module name 224 indicates the module name of the related module that depends on it.
  • the related module setting 225 indicates a setting for a related module depending on the related module.
  • “Lib_A” is specified in the related module specification 221
  • “function A” and “function B” are specified in the interface 222
  • the deployment formats “remote deployment”, “distributed deployment”, and additional processing “confidential” are specified in the annotation 223.
  • the related module name 224 and the related module setting 225 are not set before starting the deployment process.
  • FIG. 11 is a diagram schematically illustrating an example of the dependency relationship (before dependency resolution) of the PF module in the first embodiment of the present invention.
  • FIG. 12 is a diagram illustrating an example of the configuration information 200 of the PF module according to the first embodiment of the present invention.
  • the configuration information 200 in FIG. 12 corresponds to the dependency relationship in FIG.
  • the example of FIG. 11 indicates that the PF module with the module name “MW_A_1” depends on the PF module (OS module) having the specification “OS_A”.
  • PF module configuration information 200 includes a module name 201 and an infrastructure dependency definition 210.
  • FIG. 12 is a diagram schematically illustrating an example of the dependency relationship (before dependency resolution) of the PF module in the first embodiment of the present invention.
  • FIG. 12 is a diagram illustrating an example of the configuration information 200 of the PF module according to the first embodiment of the present invention.
  • the configuration information 200 in FIG. 12 corresponds to the dependency relationship in FIG.
  • the example of FIG. 11 indicates that
  • OS_A is specified as the infrastructure specification 211, but the infrastructure name 212 and the infrastructure setting 213 are not set before the deployment process is started.
  • the configuration information 200 is similarly set for the OS module and the VM module and stored in the module configuration information storage unit 104. However, for example, when there is no dependent PF module such as a VM module, the infrastructure dependency definition 210 is not set. Further, when a module is deployed to the processing device 11 in the deployment processing described later, for example, the infrastructure name 212 of the module configuration information 200, the related module is installed by the installation program of each processing device 11 or the deployment units 108 to 112.
  • FIG. 13 is a diagram schematically illustrating an example of the dependency relationship of related modules (before dependency resolution) in the first exemplary embodiment of the present invention.
  • FIG. 14 is a diagram illustrating an example of the configuration information 200 of the related module in the first embodiment of the present invention.
  • the configuration information 200 in FIG. 14 corresponds to the dependency relationship in FIG.
  • the related module configuration information 200 includes a module name 201, an infrastructure dependency definition 210, and one or more related module dependency definitions 220, similar to the AP module configuration information 200.
  • “MW_B” is specified as the infrastructure specification 211, but the infrastructure name 212 and the infrastructure setting 213 are not set before the deployment process is started.
  • “Lib_B” is specified as the related module specification 221, but the related module name 224 and the related module setting 225 are not set before the deployment process is started.
  • the related module configuration information 200 may not include the related module dependency definition 220.
  • the configuration information 200 may be described in other formats such as XML (Extensible Markup Language).
  • the operation requirement input unit 113 receives an input of the operation requirement 300 by a system development person or the like in the operation phase or the like.
  • the operation requirement 300 designates a deployment format, additional processing, and settings for a module that are not fixed in the configuration information 200 of the AP module.
  • FIG. 9 is a diagram illustrating an example of the operation requirements 300 of the AP module in the first embodiment of the present invention. Referring to FIG. 9, the AP module operation requirement 300 includes a module name 301, an infrastructure requirement 310, and one or more related module requirements 320.
  • the module name 301 is an identifier for identifying the AP module.
  • the infrastructure requirement 310 includes an infrastructure specification 311 and an infrastructure setting 312.
  • the infrastructure specification 311 indicates the specification of the PF module on which the AP module depends.
  • the infrastructure setting 312 indicates a setting for a dependent PF module. In the example of FIG. 9, the value “MW_A” is set in the infrastructure specification 211 and the value “property c1” is set in the infrastructure setting 312.
  • the related module requirement 320 includes a related module specification 321, an annotation 322, and a related module setting 323.
  • the related module specification 321 indicates the specification of the related module on which the AP module depends.
  • An annotation 322 indicates a deployment format and an additional process to be applied in a system using the AP module among one or more deployment formats and one or more additional processes specified by the annotation 223 of the AP module configuration information 200.
  • the related module setting 323 indicates a setting for the related module.
  • “Lib_A” is specified in the related module specification 321
  • “distributed deployment” is specified in the annotation 322.
  • the operation requirement 300 may be input to each PF module and each related module in addition to the AP module. Further, the operation requirement 300 may be described in another format such as XML, similarly to the configuration information 200. In addition to the above-described information, the operation requirement 300 may include requirements regarding the reliability and cost of the PF module and related modules.
  • the deployment unit 105 deploys the AP module input from the development environment input unit 1 and related modules and PF modules on which the AP module depends on the processing device 11 based on the configuration information 200.
  • the deployment unit 105 includes a provisioning unit 106, an annotation interpretation unit 107, an AP module deployment unit 108, a related module deployment unit 109, an MW deployment unit 110, an OS deployment unit 111, and a VM deployment unit 112.
  • the provisioning unit 106 determines the module name of the module on which each module depends and the processing device 11 that is the deployment destination of the dependent module.
  • the provisioning unit 106 uses the AP module deployment unit 108, the related module deployment unit 109, the MW deployment unit 110, the OS deployment unit 111, and the VM deployment unit 112 to deploy each module to the processing device 11.
  • the annotation interpretation unit 107 determines the deployment format and additional processing to be applied to the system based on the annotation 223 of the configuration information 200 and the annotation 322 of the operation requirement 300.
  • the AP module deploying unit 108, the related module deploying unit 109, the MW deploying unit 110, the OS deploying unit 111, and the VM deploying unit 112 are respectively sent to the processing apparatus 11 that is the deployment destination of each module according to an instruction from the provisioning unit 106. Deploy the module.
  • the deployment apparatus 100 may be a computer that includes a CPU (Central Processing Unit) and a storage medium that stores a program, and that operates by control based on the program.
  • the module storage unit 102 and the module configuration information storage unit 104 may be configured as individual storage media or a single storage medium.
  • one or more processes capable of deploying a module such as a processing apparatus 11 in which a module is not deployed (free) in the data center 10 by a system development person or the like in advance.
  • the processing device name of the device 11 and the processing device name of the processing device 11 that deploys the AP module among the one or more processing devices 11 are given to the deployment device 100.
  • the processing devices 11 “SV1”, “SV2”, and “SV3” are designated as the processing devices 11 that can deploy modules
  • the processing device 11 “SV1” is designated as the processing device 11 that deploys AP modules.
  • the deployment device 100 detects one or more vacant processing devices 11 from the processing devices 11 in the data center 10 and determines a module as a processing device 11 that can deploy a module. You may determine with the processing apparatus 11 which arrange
  • the provisioning unit 106 acquires the AP module configuration information 200 via the module configuration management unit 103 (step S101).
  • the provisioning unit 106 acquires the operation requirement 300 for the AP module via the operation requirement input unit 113 (step S102).
  • the provisioning part 106 solves the infrastructure dependence of AP module (step S103).
  • the provisioning unit 106 determines the module name of the PF module on which the AP module depends, and deploys the PF module to the processing apparatus 11 in which the AP module is deployed.
  • the provisioning unit 106 resolves the related module dependency of the AP module (step S104).
  • the provisioning unit 106 determines the module name of the related module on which the AP module depends and the processing apparatus 11 as the deployment destination, and deploys the related module to the processing apparatus 11. Further, when the AP module and the related module are connected by a connector module described later, the module name of the connector module is determined, and the connector module is deployed in the processing device 11 in which the AP module is deployed.
  • the provisioning unit 106 deploys the AP module on the processing apparatus 11 that is the deployment destination (step S105).
  • FIG. 4 is a flowchart showing the infrastructure dependency solving process in the first embodiment of the present invention.
  • the provisioning unit 106 has acquired the configuration information 200 in FIG. 8 and the operation requirement 300 in FIG. 9 in steps S101 and S102.
  • the provisioning unit 106 extracts the infrastructure dependency definition 210 from the AP module configuration information 200 (step S201).
  • the provisioning unit 106 determines the module name of the PF module on which the AP module depends (step S202).
  • the provisioning unit 106 sets the determined module name in the infrastructure name 212 of the configuration information 200.
  • the provisioning unit 106 extracts the PF module corresponding to the specification specified by the infrastructure specification 211 from the module of the external repository 2 or the module storage unit 102 via the module management unit 101, thereby Determine the module name.
  • the correspondence between the specification of the PF module and the PF module having the specification is given to the deployment apparatus 100 in advance as a correspondence table or a conversion rule.
  • the provisioning unit 106 sets the property value in the infrastructure setting 213 of the configuration information 200.
  • the provisioning unit 106 may determine a PF module based on the reliability requirement and the cost requirement included in the operation requirement 300. For example, the provisioning unit 106 determines the module name of the PF module corresponding to the infrastructure specification 211 “MW_A” as “MW_A_1”, and sets the module name to the infrastructure name 212 as illustrated in FIG. Further, the value of “property c1” specified in the infrastructure setting 312 of the operation requirement 300 in FIG. 9 is set in the infrastructure setting 213 as shown in FIG.
  • the provisioning part 106 determines the deployment destination of PF module to the same processing apparatus 11 as the processing apparatus 11 by which AP module is deployed (step S203). For example, the provisioning unit 106 determines the deployment destination of the PF module “MW_A_1” as the processing device 11 “SV1”.
  • the provisioning unit 106 acquires the configuration information 200 of the PF module via the module configuration management unit 103 (step S204). For example, the provisioning unit 106 acquires the configuration information 200 of FIG. 12 for the PF module “MW_A_1”.
  • the provisioning part 106 performs an infrastructure dependence solution process (step S103) recursively about a PF module (step S205).
  • the provisioning unit 106 executes step S103 using the PF module configuration information 200 acquired in step S204 instead of the AP module configuration information 200.
  • the provisioning unit 106 determines that the infrastructure dependency definition 210 does not exist in the configuration information 200 of the PF module (in the PF module, there is no more dependent PF module) in the infrastructure dependency solution processing (step S103).
  • the recursive execution of S103 is terminated.
  • the OS module on which the MW module depends is deployed in the processing device 11 in which the MW module is deployed.
  • the VM module on which the OS module depends is also deployed in the processing apparatus 11 in which the OS module is deployed.
  • the provisioning unit 106 determines the module name of the OS module on which the PF module “MW_A_1” depends as “OS_A_1”, and sets the module name in the infrastructure name 212 of the configuration information 200 of the PF module “MW_A_1” as illustrated in FIG. . Then, the provisioning unit 106 deploys the OS module “OS_A_1” in the processing device 11 “SV1”. Further, the provisioning unit 106 deploys the VM module “VM_A_1” on which the OS module “OS_A_1” depends on the processing device 11 “SV1” before deploying the OS module “OS_A_1”.
  • the provisioning unit 106 deploys the PF module to the deployment destination processing apparatus 11 determined in Step S203 (Step S206).
  • the PF module set in the infrastructure name 212 of the configuration information 200 of the PF module is set to the connection destination of the deployed PF module.
  • the property specified in the infrastructure setting 213 of the AP module configuration information 200 is set for the PF module.
  • the provisioning unit 106 deploys the MW module “MW_A_1” to the processing device 11 “SV1”.
  • the OS module “OS_A_1” specified by the PF module configuration information 200 in FIG. 12 is set as the connection destination of the MW module “MW_A_1”.
  • FIG. 15 is a diagram schematically illustrating an example of a dependency relationship (after dependency resolution) between modules in the first exemplary embodiment of the present invention.
  • the infrastructure dependency solution processing (step S103) for the AP module the PF module on which the AP module depends and the PF module on which the PF module depends are deployed as shown in FIG. 15, for example.
  • ⁇ Related module dependency resolution processing> details of the related module dependency solving process (step S104) by the deployment apparatus 100 will be described.
  • the provisioning unit 106 extracts one related module dependency definition 220 from the AP module configuration information 200 (step S301).
  • the annotation interpretation unit 107 determines whether or not a deployment format or additional processing is specified in the annotation 223 of the related module dependency definition 220 (step S302).
  • the deployment format or the additional process is specified in step S302 (step S302 / Yes)
  • the annotation interpretation unit 107 corresponds to the related module dependency definition 220 extracted in step S301 in the operation requirement 300.
  • the requirement 320 is extracted (step S303).
  • the annotation interpretation unit 107 extracts the related module requirement 320 having the related module specification 321 in which the same specification as the specification specified in the related module specification 221 of the related module dependency definition 220 is specified. Then, the annotation interpretation unit 107 matches one of the deployment formats specified in the annotation 223 with the deployment format specified in the annotation 322 of the extracted related module requirement 320 or specified in the annotation 223. It is determined whether any of the addition processing matches the addition processing specified by the annotation 322 (step S304). In step S304, if they match (step S304 / Yes), the provisioning unit 106 implements the matched deployment format or additional processing using a connector module (connection module) corresponding to the deployment format or additional processing. 16, FIG. 17, and FIG.
  • FIG. 18 are diagrams showing examples of connector module deployment according to the first embodiment of the present invention.
  • a connector module “Lib_ASC — 1” that transmits the output of the AP module to a related module on the processing device 11 different from the AP module.
  • the output of the AP module is the same as that on a plurality (predetermined number) of processing devices 11 different from the AP module.
  • the connector module “Lib_APC_1” distributed to the modules is used.
  • FIG. 16 when performing deployment corresponding to the deployment format “remote deployment”, as shown in FIG. 16, a connector module “Lib_ASC — 1” that transmits the output of the AP module to a related module on the processing device 11 different from the AP module.
  • a connector module “Lib_ACC — 1” that encrypts the output of the AP module and transmits it to the related module is used.
  • a module that performs the predetermined process is used.
  • the connector module is stored in advance in the external repository 2 or the module storage unit 102 for each set of related module specifications and deployment types, and for each set of related module specifications and additional processing.
  • the connector module configuration information 200 is also stored in the external repository 2 or the module configuration information storage unit 104.
  • the connector module corresponding to the set of the related module specification and the deployment format and the set of the related module specification and the additional processing is given to the deployment apparatus 100 as a correspondence table or a conversion rule in advance.
  • the provisioning part 106 determines the module name of the connector module according to the arrangement
  • the provisioning unit 106 sets the determined module name in the related module name 224 of the AP module configuration information 200.
  • the provisioning unit 106 via the module management unit 101, from the module of the external repository 2 or the module storage unit 102, a set of a specification and a deployment format specified by the related module specification 221 of the related module dependency definition 220, Alternatively, the module name of the connector module is determined by extracting a related module corresponding to the set of specifications and additional processing. For example, since the deployment format “distributed deployment” matches between the annotation 223 of the configuration information 200 in FIG.
  • the provisioning unit 106 deploys the related module specification 221 “Lib_A” and the deployment
  • the module name of the connector module corresponding to the set of format “distributed deployment” is determined as “Lib_APC — 1”, and is set to the related module name 224 as shown in FIG.
  • the provisioning part 106 determines the deployment destination of a connector module to the processing apparatus 11 same as the processing apparatus 11 by which AP module is deployed (step S306).
  • the provisioning unit 106 determines the deployment destination of the connector module “Lib_APC_1” as the processing device 11 “SV1”.
  • the provisioning unit 106 acquires the connector module configuration information 200 via the module configuration management unit 103 (step S307).
  • FIG. 10 is a diagram illustrating an example of the connector module configuration information 200 in the first embodiment of the present invention.
  • the infrastructure specification 211 and the related module specification 221 that are the same as the configuration information 200 of the corresponding related module are set in the configuration information 200 of the connector module.
  • the provisioning unit 106 acquires the configuration information 200 of the connector module “Lib_APC_1” as illustrated in FIG.
  • the provisioning part 106 performs an infrastructure dependence solution process (step S103) recursively about a connector module (step S308).
  • the provisioning unit 106 executes step S103 using the connector module configuration information 200 instead of the AP module configuration information 200.
  • the provisioning unit 106 determines a dependent PF module in the infrastructure dependency solving process (step S103), the PF module corresponding to the specification specified in the infrastructure specification 211 has already been deployed.
  • the module name of the PF module may be set as the infrastructure name 212, and the recursive execution of step S103 may be terminated.
  • the provisioning unit 106 sets the MW module “MW_A_1” of the infrastructure specification 211 “MW_A” already set in the processing apparatus 11 “SV1” in the infrastructure name 212.
  • the provisioning part 106 determines the module name of the related module on which AP module depends (step S309).
  • the provisioning unit 106 transmits a related module corresponding to the specification specified by the related module specification 221 of the connector module configuration information 200 from the module of the external repository 2 or the module storage unit 102 via the module management unit 101. By extracting, the module name of the related module is determined.
  • the correspondence between the specification of the related module and the module having the specification is given to the deployment apparatus 100 in advance as a correspondence table or a conversion rule.
  • the provisioning unit 106 may extract a related module having an interface specified by the interface 222 in addition to the specification specified by the related module specification 221.
  • the provisioning unit 106 may determine the related module based on the reliability requirement and the cost requirement included in the operation requirement 300.
  • the provisioning unit 106 determines the module name of the related module corresponding to the related module specification 221 “Lib_A” of the connector module configuration information 200 as “Lib_A_1”.
  • the provisioning part 106 determines the processing apparatus 11 of the deployment destination of a related module (step S310).
  • the provisioning unit 106 sets, in the related module name 224 of the connector module configuration information 200, the processing device name of the deployment destination processing device 11 determined in step S310 and the module name of the related module determined in step S309.
  • the provisioning unit 106 omits the name of the processing device of the deployment destination, and only the module name is the related module name 224. May be set.
  • the provisioning unit 106 selects a processing device 11 that is different from the processing device 11 to which the AP module is deployed, from the given processing devices 11. Further, when performing deployment for the deployment format “distributed deployment”, the provisioning unit 106 selects a plurality (a predetermined number) of processing devices 11 different from the processing device 11 from the given processing devices 11.
  • the provisioning unit 106 selects the same processing device 11 as the processing device 11 that is the deployment destination of the AP module.
  • the provisioning unit 106 sets the selected processing device 11 as a deployment destination of the related module. For example, the provisioning unit 106 determines the deployment destination of the related module corresponding to the deployment format “distributed deployment” as the processing devices 11 “SV2” and “SV3”. Then, the provisioning unit 106 sets the deployment destination processing apparatus name and the module names “SV2 / Lib_A_1” and “SV3 / Lib_A_1” to the related module name 224 as illustrated in FIG. Next, the provisioning part 106 acquires the related module configuration information 200 via the module configuration management part 103 (step S311).
  • the provisioning unit 106 recursively executes the infrastructure dependency solving process (step S103) and the related module dependency solving process (step S104) for the related module (step S312).
  • the provisioning part 106 performs step S103 and step S104 using the related module configuration information 200 instead of the AP module configuration information 200.
  • the provisioning unit 106 does not include the related module dependency definition 220 in the related module configuration information 200 in the related module dependency solving process (step S104) (the related module does not have a related module further dependent on the related module). Then, the recursive execution of step S104 is terminated.
  • step S103 when the PF module corresponding to the infrastructure specification 211 has already been deployed when the provisioning unit 106 determines the PF module to depend on in the infrastructure dependency solving process (step S103), the provisioning unit 106 The module name may be set to the infrastructure name 212, and the recursive execution of step S103 may be terminated.
  • the provisioning unit 106 performs infrastructure dependency resolution processing (step S ⁇ b> 103) and related module dependency for the related modules in each processing device 11.
  • a solution process step S104 is executed.
  • step S312 the infrastructure dependency and the related module dependency are also resolved for the related module on which the AP module depends.
  • the provisioning unit 106 determines the module name of the MW module on which the related module “Lib_A_1” deployed in the processing apparatus 11 “SV2” depends as “MW_B_1”, and the infrastructure name in the configuration information 200 as illustrated in FIG. Set to 212. Then, the provisioning unit 106 deploys the MW module “MW_B_1” to the processing device 11 “SV2”. Further, the provisioning unit 106 determines the module name of the related module on which the related module “Lib_A_1” depends as “Lib_B_1”, and sets the module name in the related module name 224 in the configuration information 200 as illustrated in FIG. Then, the provisioning unit 106 deploys the related module “Lib_B_1” to the processing device 11 “SV2”.
  • the provisioning unit 106 processes the OS module “OS_B_1” on which the MW module “MW_B_1” depends and the VM module “VM_B_1” on which the OS module “OS_B_1” depends before the deployment of the MW module “MW_B_1”. 11 Deploy to “SV2”. Similarly, the provisioning unit 106 performs the infrastructure dependency solution processing and the related module dependency solution processing for the related module “Lib_A_1” deployed in the processing device 11 “SV3”. Next, the provisioning part 106 deploys a related module to the processing apparatus 11 of the deployment destination determined by step S310 (step S313).
  • the PF module set in the infrastructure name 212 of the configuration information 200 of the related module and the related module set in the related module name 224 are set in the connection destination of the deployed related module.
  • the provisioning unit 106 deploys the related module “Lib_A_1” in the processing device 11 “SV2”.
  • the MW module “MW_B_1” and the related module “Lib_B_1” specified by the configuration information 200 of the related module in FIG. 14 are set.
  • the provisioning part 106 deploys a connector module in the processing apparatus 11 of the deployment destination determined by step S305 (step S314).
  • the PF module set in the infrastructure name 212 of the configuration information 200 of the connector module and the related module set in the related module name 224 are set in the connection destination of the deployed connector module.
  • the provisioning unit 106 deploys the connector module “Lib_APC_1” to the processing device 11 “SV1”.
  • the MW module “MW_B_1” and the related modules “SV2 / Lib_A_1” and “SV3 / Lib_A_1” specified by the connector module configuration information 200 of FIG. 10 are set.
  • step S302 if neither the deployment format nor the additional process is specified in step S302 (step S302 / No), or if neither the deployment format nor the additional process matches in step S304 (step S304). / No), the provisioning unit 106 deploys the related module without using the connector module.
  • the provisioning unit 106 determines the module name of the related module and the processing device name of the processing apparatus 11 at the deployment destination, resolves the dependency of the related module, and deploys the related module. (Steps S315 to S319).
  • step S ⁇ b> 315 the provisioning unit 106 extracts a related module corresponding to the specification specified by the related module specification 221 of the configuration information 200 of the AP module, and sets the related module name 224.
  • step S316 the provisioning unit 106 determines the deployment destination of the related module to be the same processing apparatus 11 as the processing apparatus 11 in which the AP module is deployed.
  • the provisioning part 106 determines whether the process about all the related module dependence definitions 220 of the AP module configuration information 200 has been performed (step S320). In step S320, when all the related module dependency definitions 220 are not processed (step S320 / No), the provisioning unit 106 repeatedly executes steps S301 to S320.
  • step S306 when all the related module dependency definitions 220 have been processed (step S320 / Yes), the provisioning unit 106 ends the related module dependency solving process.
  • step S104 the related module on which the AP module depends, the PF module on which the related module depends and the related module, and the connection module for connecting the AP module to the related module Is deployed as shown in FIG. 15, for example.
  • step S104 the provisioning part 106 arrange
  • the connection destination of the AP module the MW module “MW_A_1” and the connector module “Lib_APC_1” specified by the AP module configuration information 200 in FIG. 8 are set.
  • FIG. 19 is a diagram illustrating another example of the AP module configuration information 200 according to the first embodiment of this invention.
  • FIG. 20 is a diagram illustrating another example of the AP module operation requirement 300 according to the first embodiment of this invention.
  • the deployment format “remote deployment”, “distributed deployment”, and additional processing “confidential” are specified in the annotation 223 of the configuration information 200 of the AP module.
  • FIG. 19 the deployment format “remote deployment”, “distributed deployment”, and additional processing “confidential” are specified in the annotation 223 of the configuration information 200 of the AP module.
  • the additional process “confidentiality” is specified in the annotation 322 of the operation requirement 300.
  • the provisioning unit 106 deploys the additional process “confidentiality” because the additional process “confidentiality” matches between the annotation 223 in FIG. 19 and the annotation 322 in FIG. 20.
  • the provisioning unit 106 determines the module name of the connector module corresponding to the set of the related module specification 221 “Lib_A” and the additional process “confidential” as “Lib_ACC_1”, and the related module name 224 of the AP module as shown in FIG. Set to.
  • the provisioning unit 106 determines the deployment destination of the connector module “Lib_ACC_1” as the processing device 11 “SV1”.
  • the provisioning unit 106 determines the module name of the related module corresponding to the related module specification 221 “Lib_A” of the connector module configuration information 200 as “Lib_A_1”. Then, the provisioning unit 106 determines the deployment destination of the related module corresponding to the additional process “confidentiality” as the processing device 11 “SV1”. The provisioning unit 106 sets the module name “Lib_A_1” of the related module to the related module name 224 of the connector module configuration information 200 as shown in FIG. The provisioning unit 106 deploys the related module “Lib_A_1” to the processing device 11 “SV1”.
  • FIG. 22 is a diagram schematically illustrating another example of the dependency relationship between modules (after dependency resolution) in the first exemplary embodiment of the present invention.
  • FIG. 1 is a block diagram showing a characteristic configuration of the first embodiment of the present invention.
  • the deployment device 100 includes a module configuration information storage unit 104 and a deployment unit 105.
  • the module configuration information storage unit 104 includes, for each of a plurality of modules, specifications of a related module that is a module on which the module depends, and one or more deployments to one or more processing devices 11 that the module and the related module can take.
  • the configuration information 200 including the format is stored.
  • the deployment unit 105 extracts a related module satisfying the specification of the related module included in the specified module configuration information 200 from the plurality of modules, and the deployment format of the specified module and the extracted related module is Deployment of each of the specified module and the extracted related module from the one or more processing apparatuses 11 so as to become the designated deployment format among the one or more deployment formats included in the configuration information 200.
  • the previous processing device 11 is determined and output. According to the first embodiment of the present invention, the system configuration related to the AP module can be changed according to the operational requirements.
  • the deployment unit 105 extracts a related module that satisfies the specifications included in the configuration information 200 of the AP module, and the deployment format of the AP module and the extracted related module is the specified deployment format. This is to determine the processing device 11 that is the deployment destination of each of the AP module and the extracted related module. Further, in the deployment system described in Non-Patent Document 1 described above, the procedure for deploying the related module or PF module to which the AP module depends and the deployment of the AP module to the processing device 11 is specifically described. It is necessary to prepare a construction procedure that specifies a specific module name and a processing device name according to operational requirements.
  • a system according to operational requirements can be constructed without preparing a system construction procedure for each operational requirement.
  • the reason is that the deployment unit 105 extracts the related module and the PF module based on the AP module configuration information 200 and the operation requirement 300, and sets the deployment destination of each of the AP module, the related module, and the PF module. This is because the processing apparatus 11 to be determined is determined. While the present invention has been described with reference to the embodiments, the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
  • the deployment device 100 deploys each module to the processing device 11 determined as the deployment destination of the module.
  • the deployment device 100 does not include the module name of each module and the deployment destination of the module.
  • the processing device name of the processing device 11 may be output to a storage unit (not shown) or another device, and the other device may deploy each module based on the information output from the deployment device 100.
  • the deployment process when the deployment format or the additional process is specified in the operation requirement 300 is shown.
  • You may use both the connector module corresponding to the said deployment format, and the connector module corresponding to the said addition process.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

運用要件に応じて、APモジュールに係るシステム構成を変更する。 配備装置100のモジュール構成情報記憶部104は、複数のモジュールの各々について、当該モジュールが依存するモジュールである関連モジュールの仕様と、当該モジュール及び関連モジュールがとりうる、1以上の処理装置11への1以上の配備形式と、を含む構成情報200を記憶する。配備部105は、複数のモジュールから、指定されたモジュールの構成情報200に含まれる仕様を満たす関連モジュールを抽出し、指定されたモジュールと抽出された関連モジュールとの配備形式が、当該構成情報200に含まれる1以上の配備形式の内の指定された配備形式となるように、指定されたモジュール、及び、抽出された関連モジュールの各々の配備先の処理装置11を決定し、出力する。

Description

配備装置、配備方法、及び、プログラム
 本発明は、プログラムの配備装置、配備方法、及び、プログラムに関する。
 データセンタ等において、アプリケーションモジュール(APモジュール)とそのAPモジュールが依存するライブラリやミドルウェア等の複数のソフトウェアモジュールを処理装置に配備する配備システムの一例が、非特許文献1に記載されている。
 図23は、非特許文献1の配備システムの構成を示す図である。図23に示すように、配備システムは、開発環境入力部1、外部レポジトリ2、配備装置900、及び、データセンタ10を含む。配備装置900は、モジュール管理部901、モジュール記憶部902、及び、関連モジュール配備部903を含む。関連モジュール配備部903は、開発環境入力部1から入力されたAPモジュールが依存するライブラリの情報に従って、そのAPが依存するライブラリをモジュール管理部901から取得する。関連モジュール配備部903は処理装置11のミドルウェア上に取得したライブラリモジュールと開発環境1から入力されたAPモジュールとを配備する。
http://maven.apache.org/maven−features.html
 上述した非特許文献1に記載された配備システムでは、APモジュールの開発フェーズにおいて、APモジュールが依存する具体的なライブラリや、ライブラリの数、APモジュールが配備される処理装置とライブラリが配備される処理装置との関係、APモジュールとライブラリ間での暗号化等のオプション処理等、APモジュールに係るシステム構成を指定する必要がある。このため、運用フェーズにおいて、開発されたAPモジュールを用いてシステムを構築するときに、運用要件に応じてシステム構成を変更することができないという課題がある。
 本発明の目的は、上述の課題を解決し、運用要件に応じて、APモジュールに係るシステム構成を変更できる配備装置、配備方法、及び、プログラムを提供することである。
 本発明の一態様における配備装置は、複数のモジュールの各々について、当該モジュールが依存するモジュールである関連モジュールの仕様と、当該モジュール及び前記関連モジュールがとりうる、1以上の処理装置への1以上の配備形式と、を含む構成情報を記憶するモジュール構成情報記憶手段と、前記複数のモジュールから、指定されたモジュールの前記構成情報に含まれる前記関連モジュールの仕様を満たす前記関連モジュールを抽出し、前記指定されたモジュールと前記抽出された関連モジュールとの配備形式が、前記指定されたモジュールの前記構成情報に含まれる前記1以上の配備形式の内の指定された配備形式となるように、前記1以上の処理装置の中から、前記指定されたモジュール、及び、前記抽出された関連モジュールの各々の配備先の処理装置を決定し、出力する配備手段とを含む。
 本発明の一態様における配備方法は、複数のモジュールの各々について、当該モジュールが依存するモジュールである関連モジュールの仕様と、当該モジュール及び前記関連モジュールがとりうる、1以上の処理装置への1以上の配備形式と、を含む構成情報を記憶し、前記複数のモジュールから、指定されたモジュールの前記構成情報に含まれる前記関連モジュールの仕様を満たす前記関連モジュールを抽出し、前記指定されたモジュールと前記抽出された関連モジュールとの配備形式が、前記指定されたモジュールの前記構成情報に含まれる前記1以上の配備形式の内の指定された配備形式となるように、前記1以上の処理装置の中から、前記指定されたモジュール、及び、前記抽出された関連モジュールの各々の配備先の処理装置を決定し、出力する。
 本発明の一態様におけるコンピュータが読み取り可能な記録媒体は、コンピュータに、複数のモジュールの各々について、当該モジュールが依存するモジュールである関連モジュールの仕様と、当該モジュール及び前記関連モジュールがとりうる、1以上の処理装置への1以上の配備形式と、を含む構成情報を記憶し、前記複数のモジュールから、指定されたモジュールの前記構成情報に含まれる前記関連モジュールの仕様を満たす前記関連モジュールを抽出し、前記指定されたモジュールと前記抽出された関連モジュールとの配備形式が、前記指定されたモジュールの前記構成情報に含まれる前記1以上の配備形式の内の指定された配備形式となるように、前記1以上の処理装置の中から、前記指定されたモジュール、及び、前記抽出された関連モジュールの各々の配備先の処理装置を決定し、出力する処理を実行させるプログラムを格納する。
 本発明の効果は、運用要件に応じて、APモジュールに係るシステム構成を変更できることである。
本発明の第1の実施の形態の特徴的な構成を示すブロック図である。 本発明の第1の実施の形態における、配備システムの構成を示すブロック図である。 本発明の第1の実施の形態における、配備装置100の配備処理の概要を示すフローチャートである。 本発明の第1の実施の形態における、インフラ依存性解決処理を示すフローチャートである。 本発明の第1の実施の形態における、関連モジュール依存性解決処理を示すフローチャート(1/2)である。 本発明の第1の実施の形態における、関連モジュール依存性解決処理を示すフローチャート(2/2)である。 本発明の第1の実施形態における、APモジュールの依存関係(依存性解決前)の例を模式的に示す図である。 本発明の第1の実施形態における、APモジュールの構成情報200の例を示す図である。 本発明の第1の実施形態における、APモジュールの運用要件300の例を示す図である。 本発明の第1の実施形態における、コネクタモジュールの構成情報200の例を示す図である。 本発明の第1の実施形態における、PFモジュールの依存関係(依存性解決前)の例を模式的に示す図である。 本発明の第1の実施形態における、PFモジュールの構成情報200の例を示す図である。 本発明の第1の実施形態における、関連モジュールの依存関係(依存性解決前)の例を模式的に示す図である。 本発明の第1の実施形態における、関連モジュールの構成情報200の例を示す図である。 本発明の第1の実施形態における、各モジュール間の依存関係(依存性解決後)の例を模式的に示す図である。 本発明の第1の実施の形態における、コネクタモジュールの配備例を示す図である。 本発明の第1の実施の形態における、コネクタモジュールの他の配備例を示す図である。 本発明の第1の実施の形態における、コネクタモジュールの他の配備例を示す図である。 本発明の第1の実施形態における、APモジュールの構成情報200の他の例を示す図である。 本発明の第1の実施形態における、APモジュールの運用要件300の他の例を示す図である。 本発明の第1の実施形態における、コネクタモジュールの構成情報200の他の例を示す図である。 本発明の第1の実施形態における、各モジュール間の依存関係(依存性解決後)の他の例を模式的に示す図である。 非特許文献1の配備システムの構成を示す図である。
 次に、本発明の第1の実施の形態について説明する。
 はじめに、本発明の第1の実施の形態の構成について説明する。図2は、本発明の第1の実施の形態における、配備システムの構成を示すブロック図である。
 図2を参照すると、配備システムは、開発環境入力部1、外部レポジトリ2、配備装置100、及び、データセンタ10を含む。
 開発環境入力部1は、アプリケーションモジュール(APモジュール)と当該APモジュールの構成情報200とを配備装置100に入力する。ここで、APモジュールは、APモジュール開発者等により開発されたアプリケーションプログラムである。
 外部レポジトリ2は、プラットフォームモジュール(PFモジュール)、関連モジュール、及び、それらの構成情報200を記憶するレポジトリである。ここで、PFモジュールは、例えば、ミドルウェアモジュール(MWモジュール)、OSモジュール、仮想マシンモジュール(VMモジュール、または、VMイメージ)等、APモジュールの下位レイヤに存在し、APモジュールを実行するために必要なプラットフォームプログラム(インフラ)である。また、関連モジュールは、MWモジュール上で実行されるライブラリ等、APモジュールと同一レイヤに存在し、APモジュールが利用する他のプログラムである。
 なお、APモジュール、PFモジュール、及び、関連モジュールをまとめてモジュールと呼ぶ。
 配備装置100は、開発環境入力部1から入力された構成情報200をもとに、APモジュールを実行するために必要な(APモジュールが依存する)関連モジュールやPFモジュールを外部レポジトリ2から取得して、データセンタ10の処理装置11に配備し、その上でAPモジュールを処理装置11に配備する。ここで、配備とは、処理装置11にプログラム(モジュール)を送信して、処理装置11内のインストール用プログラムにインストールの要求をすることである。
 データセンタ10は、1以上の処理装置11を含む。ここで、処理装置11は、例えば、通信機能を持つ基本OSやインストールプログラム等を備えたコンピュータである。処理装置11は、PFモジュール、関連モジュール、及び、APモジュールを受信して、インストールを行い、その後、PFモジュール、関連モジュール、及び、APモジュールを実行する。
 次に、配備装置100の内部構成について詳細に説明する。配備装置100は、モジュール管理部101、モジュール記憶部102、モジュール構成管理部103、モジュール構成情報記憶部104、配備部105、及び、運用要件入力部113を含む。
 モジュール管理部101は、開発環境入力部1から取得したAPモジュール、及び、外部レポジトリ2から取得したPFモジュールと関連モジュールをモジュール記憶部102に保存する。
 モジュール構成管理部103は、モジュール記憶部102に記憶された各モジュールの構成情報200を、開発環境入力部1、または、外部レポジトリ2から取得し、モジュール構成情報記憶部104に保存する。
 構成情報200は、モジュールが依存するPFモジュールや関連モジュール等の他のモジュール、及び、モジュールと関連モジュールに関する配備形式や付加処理を指定する情報である。構成情報200は、モジュール対応に存在する。
 本発明の第1の実施形態では、APモジュールの開発者等が、APモジュールの構成情報200において、APモジュールが依存するモジュールを、当該依存するモジュールの具体的なモジュール名ではなく、当該依存するモジュールが備える仕様により指定する。
 そして、APモジュールを用いてシステムを構築する運用フェーズ等において、後述するように、プロビジョニング部106が、構成情報200とシステム開発者等により入力されるAPモジュールの運用要件300とをもとに、APモジュールが依存するモジュールの具体的なモジュール名と、当該依存するモジュールの配備先である処理装置11とを決定する。
 ここで、あるモジュールについて、当該モジュールが依存するモジュールの具体的なモジュール名と配備先の処理装置11を決定することを依存性解決と呼ぶ。
 図7は、本発明の第1の実施形態における、APモジュールの依存関係(依存性解決前)の例を模式的に示す図である。図8は、本発明の第1の実施形態における、APモジュールの構成情報200の例を示す図である。図8の構成情報200は、図7の依存関係に対応する。
 図7において、実線の矩形はモジュール、点線の矩形はモジュールの仕様を示す。また、矩形間の矢印は、矢印の元のモジュールが、矢印の先の仕様を備えたモジュールに依存することを示す。図7の例では、モジュール名「AP_1」のAPモジュールが、仕様「Lib_A」を備えた関連モジュール、及び、仕様「MW_A」を備えたPFモジュール(MWモジュール)に依存する。
 図8を参照すると、APモジュールの構成情報200は、モジュール名201、インフラ依存性定義210、及び、1以上の関連モジュール依存性定義220を含む。
 なお、構成情報200において、斜線で示した項目は、開発環境入力部1、または、外部レポジトリ2から取得した時点では設定されておらず、配備装置100による配備処理で設定される。
 モジュール名201は、APモジュールを識別するための識別子である。
 インフラ依存性定義210は、インフラ仕様211、インフラ名212、及び、インフラ設定213を含む。インフラ仕様211は、APモジュールが依存するPFモジュールが備えるべき仕様を示す。インフラ名212は、依存するPFモジュールの具体的なモジュール名を示す。インフラ設定213は、依存するPFモジュールに対する設定を示す。
 図8の例では、インフラ仕様211に「MW_A」が指定されているが、インフラ名212、及び、インフラ設定213は、配備処理開始前には設定されていない。
 関連モジュール依存性定義220は、関連モジュール仕様221、インタフェース222、アノテーション223、関連モジュール名224、及び、関連モジュール設定225を含む。関連モジュール仕様221、及び、インタフェース222は、それぞれ、APモジュールが依存する関連モジュールが備えるべき仕様、及び、インタフェースを示す。
 アノテーション223は、1以上の配備形式を含む。ここで、配備形式は、APモジュール及び関連モジュールがとりうる、1以上の処理装置への配備パターンである。配備形式としては、例えば、APモジュールと関連モジュールの異なる処理装置11への配備(「リモート配備」)、同一の関連モジュールの複数の処理装置11への配備(「分散配備」)等が用いられる。
 また、アノテーション223は、1以上の付加処理を含んでもよい。ここで、付加処理は、APモジュールと関連モジュールとの間に挿入可能な、APモジュールの出力に対する所定処理を示す。付加処理としては、例えば、APモジュールの出力に対する暗号化(「秘密化」)、復号化、所定の演算処理、所定の加工処理等が用いられる。
 関連モジュール名224は、依存する関連モジュールのモジュール名を示す。関連モジュールが、APモジュールとは異なる処理装置11に配備されるときは、関連モジュールのモジュール名とともに、当該関連モジュールが配備される処理装置11の処理装置名が併せて指定される。関連モジュール設定225は、依存する関連モジュールに対する設定を示す。
 図8の例では、関連モジュール仕様221に「Lib_A」、インタフェース222に「functionA」、「functionB」、アノテーション223に、配備形式「リモート配備」「分散配備」、付加処理「秘密化」が指定されているが、関連モジュール名224、及び、関連モジュール設定225は、配備処理開始前には設定されていない。
 図11は、本発明の第1の実施形態における、PFモジュールの依存関係(依存性解決前)の例を模式的に示す図である。図12は、本発明の第1の実施形態における、PFモジュールの構成情報200の例を示す図である。図12の構成情報200は、図11の依存関係に対応する。
 図11の例では、モジュール名「MW_A_1」のPFモジュールが、仕様「OS_A」を備えたPFモジュール(OSモジュール)に依存することを示す。
 図12を参照すると、PFモジュールの構成情報200は、モジュール名201、インフラ依存性定義210を含む。図12の例では、インフラ仕様211として、「OS_A」が指定されているが、インフラ名212、及び、インフラ設定213は、配備処理開始前には設定されていない。
 なお、OSモジュール、及び、VMモジュールについても、同様に、構成情報200が設定され、モジュール構成情報記憶部104に保存される。但し、例えば、VMモジュールのように、依存するPFモジュールが存在しない場合は、インフラ依存性定義210は設定されない。
 また、後述する配備処理において、モジュールが処理装置11に配備されるときには、例えば、各処理装置11のインストールプログラムや各配備部108~112により、当該モジュールの構成情報200のインフラ名212、関連モジュール名224で指定された、各モジュールの関数の呼び出し、各モジュールへの出力データの送信等が行われるように、当該モジュールに設定(接続先の設定)が行われる。また、同様に、モジュールの構成情報200のインフラ設定213、関連モジュール設定225で指定されたプロパティが、当該モジュールが依存するPFモジュール、関連モジュールに設定される。
 図13は、本発明の第1の実施形態における、関連モジュールの依存関係(依存性解決前)の例を模式的に示す図である。図14は、本発明の第1の実施形態における、関連モジュールの構成情報200の例を示す図である。図14の構成情報200は、図13の依存関係に対応する。
 図13の例では、モジュール名「Lib_A_1」の関連モジュールが、仕様「Lib_B」を備えた他の関連モジュール、及び、仕様「MW_B」を備えたPFモジュール(MWモジュール)に依存することを示す。
 図14を参照すると、関連モジュールの構成情報200は、APモジュールの構成情報200と同様に、モジュール名201、インフラ依存性定義210、及び、1以上の関連モジュール依存性定義220を含む。図14の例では、インフラ仕様211として、「MW_B」が指定されているが、インフラ名212、及び、インフラ設定213は、配備処理開始前には設定されていない。また、関連モジュール仕様221として、「Lib_B」が指定されているが、関連モジュール名224、及び、関連モジュール設定225は、配備処理開始前には設定されていない。
 なお、関連モジュールが、他の関連モジュールに依存しない場合、関連モジュールの構成情報200は、関連モジュール依存性定義220を含まなくてもよい。
 また、構成情報200は、XML(Extensible Markup Language)等、他の形式で記述されてもよい。
 運用要件入力部113は、運用フェーズ等において、システム開発担当者等により、運用要件300の入力を受け付ける。
 運用要件300は、APモジュールの構成情報200において確定していない配備形式や付加処理、モジュールに対する設定を指定する。
 図9は、本発明の第1の実施形態における、APモジュールの運用要件300の例を示す図である。
 図9を参照すると、APモジュールの運用要件300は、モジュール名301、インフラ要件310、及び、1以上の関連モジュール要件320を含む。
 モジュール名301は、APモジュールを識別するための識別子である。
 インフラ要件310は、インフラ仕様311、及び、インフラ設定312を含む。インフラ仕様311は、APモジュールが依存するPFモジュールの仕様を示す。インフラ設定312は、依存するPFモジュールに対する設定を示す。
 図9の例では、インフラ仕様211に「MW_A」、インフラ設定312に「プロパティc1」の値が設定されている。
 関連モジュール要件320は、関連モジュール仕様321、アノテーション322、及び、関連モジュール設定323を含む。関連モジュール仕様321は、APモジュールが依存する関連モジュールの仕様を示す。アノテーション322は、APモジュールの構成情報200のアノテーション223で指定された、1以上の配備形式、1以上の付加処理の中から、当該APモジュールを用いたシステムにおいて適用する配備形式、付加処理を示す。関連モジュール設定323は、関連モジュールに対する設定を示す。
 図9の例では、関連モジュール仕様321に「Lib_A」、アノテーション322に「分散配備」が指定されている。
 なお、運用要件300は、APモジュールに加えて、各PFモジュール、及び、各関連モジュールに対して入力されてもよい。
 また、運用要件300も、構成情報200と同様に、XML等、他の形式で記述されてもよい。
 また、運用要件300は、上述の情報以外に、PFモジュールや関連モジュールの信頼性や、コストに関する要件を含んでいてもよい。
 配備部105は、構成情報200をもとに、開発環境入力部1から入力されたAPモジュール、及び、APモジュールが依存する関連モジュールやPFモジュールを処理装置11に配備する。
 配備部105は、プロビジョニング部106、アノテーション解釈部107、APモジュール配備部108、関連モジュール配備部109、MW配備部110、OS配備部111、及び、VM配備部112を含む。
 プロビジョニング部106は、構成情報200と運用要件300とをもとに、各モジュールが依存するモジュールのモジュール名と、当該依存するモジュールの配備先である処理装置11とを決定する。そして、プロビジョニング部106は、APモジュール配備部108、関連モジュール配備部109、MW配備部110、OS配備部111、及び、VM配備部112を用いて、各モジュールを処理装置11に配備する。
 アノテーション解釈部107は、構成情報200のアノテーション223と運用要件300のアノテーション322とをもとに、システムに適用する配備形式、付加処理を判定する。
 APモジュール配備部108、関連モジュール配備部109、MW配備部110、OS配備部111、及び、VM配備部112は、それぞれ、プロビジョニング部106の指示によって、各モジュールの配備先である処理装置11に、当該モジュールを配備する。
 なお、配備装置100はCPU(Central Processing Unit)とプログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。また、モジュール記憶部102と、モジュール構成情報記憶部104とは、それぞれ個別の記憶媒体でも、1つの記憶媒体によって構成されてもよい。
 次に、本発明の第1の実施の形態における配備装置100の動作について説明する。
 <配備処理の概要>
 はじめに、配備装置100による配備処理の概要を説明する。
 図3は、本発明の第1の実施の形態における、配備装置100の配備処理の概要を示すフローチャートである。
 本発明の第1の実施の形態では、予め、システム開発担当者等により、データセンタ10内でモジュールが配備されていない(空いている)処理装置11等、モジュールを配備可能な1以上の処理装置11の処理装置名、及び、当該1以上の処理装置11の中でAPモジュールを配備する処理装置11の処理装置名が、配備装置100に与えられていると仮定する。
 例えば、モジュールを配備可能な処理装置11として、処理装置11「SV1」「SV2」「SV3」、APモジュールを配備する処理装置11として、処理装置11「SV1」が指定されている。
 なお、配備装置100は、データセンタ10内の処理装置11から、空いている1以上の処理装置11を検出して、モジュールを配備可能な処理装置11に決定し、その内の1つを、APモジュールを配備する処理装置11と決定してもよい。
 はじめに、プロビジョニング部106は、APモジュールの構成情報200を、モジュール構成管理部103を介して取得する(ステップS101)。
 プロビジョニング部106は、APモジュールに対する運用要件300を、運用要件入力部113を介して取得する(ステップS102)。
 プロビジョニング部106は、APモジュールのインフラ依存性を解決する(ステップS103)。ここで、プロビジョニング部106は、APモジュールが依存するPFモジュールのモジュール名を決定し、当該PFモジュールをAPモジュールが配備される処理装置11に配備する。
 プロビジョニング部106は、APモジュールの関連モジュール依存性を解決する(ステップS104)。ここで、プロビジョニング部106は、APモジュールが依存する関連モジュールのモジュール名と配備先の処理装置11を決定し、当該関連モジュールを当該処理装置11に配備する。また、APモジュールと関連モジュールとを後述するコネクタモジュールで接続する場合、当該コネクタモジュールのモジュール名を決定し、当該コネクタモジュールをAPモジュールが配備される処理装置11に配備する。
 プロビジョニング部106は、APモジュールを配備先の処理装置11に配備する(ステップS105)。ここで、配備されたAPモジュールの接続先に、APモジュールの構成情報200のインフラ名212に設定されたPFモジュール、関連モジュール名224に設定された関連モジュールまたはコネクタモジュールが設定される。
 <インフラ依存性解決処理>
 次に、配備装置100によるインフラ依存性解決処理(ステップS103)の詳細を説明する。
 図4は、本発明の第1の実施の形態における、インフラ依存性解決処理を示すフローチャートである。
 ここでは、ステップS101、S102において、プロビジョニング部106が、図8の構成情報200と図9の運用要件300を取得したものと仮定する。
 プロビジョニング部106は、APモジュールの構成情報200から、インフラ依存性定義210を抽出する(ステップS201)。
 プロビジョニング部106は、APモジュールが依存するPFモジュールのモジュール名を決定する(ステップS202)。プロビジョニング部106は、決定したモジュール名を構成情報200のインフラ名212に設定する。
 ここで、プロビジョニング部106は、モジュール管理部101を介して、外部レポジトリ2またはモジュール記憶部102のモジュールから、インフラ仕様211で指定された仕様に対応するPFモジュールを抽出することにより、PFモジュールのモジュール名を決定する。PFモジュールの仕様と当該仕様を備えるPFモジュールの対応は、予め配備装置100に、対応表、または、変換ルールとして与えられている。
 また、運用要件300のインフラ設定312でプロパティの値が設定されている場合、プロビジョニング部106は、構成情報200のインフラ設定213に当該プロパティの値を設定する。なお、運用要件300で指定されていないプロパティについては、デフォルト値を設定してもよい。
 また、インフラ仕様211に対応するPFモジュールが複数存在する場合、プロビジョニング部106は、運用要件300に含まれる信頼性要件やコスト要件をもとに、PFモジュールを決定してもよい。
 例えば、プロビジョニング部106は、インフラ仕様211「MW_A」に対応するPFモジュールのモジュール名を「MW_A_1」と決定し、図8のように、インフラ名212に設定する。また、図9の運用要件300のインフラ設定312で指定された「プロパティc1」の値を、図8のように、インフラ設定213に設定する。
 次に、プロビジョニング部106は、PFモジュールの配備先をAPモジュールが配備される処理装置11と同じ処理装置11に決定する(ステップS203)。
 例えば、プロビジョニング部106は、PFモジュール「MW_A_1」の配備先を、処理装置11「SV1」に決定する。
 次に、プロビジョニング部106は、モジュール構成管理部103を介して、PFモジュールの構成情報200を取得する(ステップS204)。
 例えば、プロビジョニング部106は、PFモジュール「MW_A_1」について、図12の構成情報200を取得する。
 プロビジョニング部106は、PFモジュールについて、インフラ依存性解決処理(ステップS103)を、再帰的に実行する(ステップS205)。ここで、プロビジョニング部106は、APモジュールの構成情報200の代わりに、ステップS204で取得したPFモジュールの構成情報200を用いて、ステップS103を実行する。
 なお、プロビジョニング部106は、インフラ依存性解決処理(ステップS103)において、PFモジュールの構成情報200にインフラ依存性定義210が存在しない(PFモジュールに、さらに依存するPFモジュールが存在しない)場合、ステップS103の再帰的な実行を終了する。
 この結果、MWモジュールが依存するOSモジュールが、MWモジュールが配備される処理装置11に配備される。また、当該配備が行われる前に、OSモジュールが依存するVMモジュールも、OSモジュールが配備される処理装置11に配備される。
 例えば、プロビジョニング部106は、PFモジュール「MW_A_1」が依存するOSモジュールのモジュール名を「OS_A_1」と決定し、図12のように、PFモジュール「MW_A_1」の構成情報200のインフラ名212に設定する。そして、プロビジョニング部106は、OSモジュール「OS_A_1」を処理装置11「SV1」に配備する。また、プロビジョニング部106は、OSモジュール「OS_A_1」の配備の前に、OSモジュール「OS_A_1」が依存するVMモジュール「VM_A_1」を処理装置11「SV1」に配備する。
 次に、プロビジョニング部106は、PFモジュールを、ステップS203で決定した配備先の処理装置11に配備する(ステップS206)。ここで、配備されたPFモジュールの接続先に、当該PFモジュールの構成情報200のインフラ名212に設定されたPFモジュールが設定される。また、PFモジュールに対して、APモジュールの構成情報200のインフラ設定213で指定されたプロパティが設定される。
 例えば、プロビジョニング部106は、MWモジュール「MW_A_1」を処理装置11「SV1」に配備する。そして、MWモジュール「MW_A_1」の接続先には、図12のPFモジュールの構成情報200で指定された、OSモジュール「OS_A_1」が設定される。また、MWモジュール「MW_A_1」には、図8のAPモジュールの構成情報200で指定された、「プロパティc1」の値が設定される。
 図15は、本発明の第1の実施形態における、各モジュール間の依存関係(依存性解決後)の例を模式的に示す図である。
 APモジュールに対するインフラ依存性解決処理(ステップS103)の結果、APモジュールが依存するPFモジュール、及び、当該PFモジュールが依存するPFモジュールが、例えば、図15のように配備される。
 <関連モジュール依存性解決処理>
 次に、配備装置100による関連モジュール依存性解決処理(ステップS104)の詳細を説明する。
 図5、及び、図6は、本発明の第1の実施の形態における、関連モジュール依存性解決処理を示すフローチャートである。
 プロビジョニング部106は、APモジュールの構成情報200から、関連モジュール依存性定義220を1つ抽出する(ステップS301)。
 次に、アノテーション解釈部107は、関連モジュール依存性定義220のアノテーション223において、配備形式または付加処理が指定されているかどうかを判定する(ステップS302)。
 ステップS302において、配備形式または付加処理が指定されている場合(ステップS302/Yes)、アノテーション解釈部107は、運用要件300における、ステップS301で抽出された関連モジュール依存性定義220に対応する関連モジュール要件320を抽出する(ステップS303)。ここで、アノテーション解釈部107は、関連モジュール依存性定義220の関連モジュール仕様221で指定された仕様と同一の仕様が指定された関連モジュール仕様321を持つ関連モジュール要件320を抽出する。
 そして、アノテーション解釈部107は、アノテーション223で指定された配備形式のいずれかが、抽出された関連モジュール要件320のアノテーション322で指定された配備形式と一致するか、または、アノテーション223で指定された付加処理のいずれかと、アノテーション322で指定された付加処理とが一致するかどうかを判定する(ステップS304)。
 ステップS304において、一致する場合(ステップS304/Yes)、プロビジョニング部106は、一致した配備形式または付加処理を、配備形式または付加処理に応じたコネクタモジュール(接続モジュール)を用いて実現する。
 図16、図17、及び、図18は、本発明の第1の実施の形態における、コネクタモジュールの配備例を示す図である。
 例えば、配備形式「リモート配備」に対応する配備を行う場合、図16に示すように、APモジュールの出力を、APモジュールとは別の処理装置11上の関連モジュールに送信するコネクタモジュール「Lib_ASC_1」が用いられる。また、配備形式「分散配備」に対応する配備を行う場合、図17に示すように、APモジュールの出力を、APモジュールとは別の、複数(所定数)の処理装置11上の同一の関連モジュールに分配するコネクタモジュール「Lib_APC_1」が用いられる。
 また、付加処理「秘密化」に対応する配備を行う場合、図18に示すように、APモジュールの出力を暗号化して関連モジュールに送信するコネクタモジュール「Lib_ACC_1」が用いられる。付加処理「秘密化」以外の所定処理に対応する配備を行う場合、当該所定処理を行うモジュールが用いられる。
 コネクタモジュールは、関連モジュールの仕様と配備形式の組、及び、関連モジュールの仕様と付加処理の組毎に、予め、外部レポジトリ2またはモジュール記憶部102に記憶される。また、コネクタモジュールの構成情報200も、外部レポジトリ2またはモジュール構成情報記憶部104に記憶される。関連モジュールの仕様と配備形式の組、及び、関連モジュールの仕様と付加処理の組に対応するコネクタモジュールは、予め配備装置100に、対応表、または、変換ルールとして与えられている。
 プロビジョニング部106は、ステップS304で一致した配備形式または付加処理に応じたコネクタモジュールのモジュール名を決定する(ステップS305)。プロビジョニング部106は、決定したモジュール名を、APモジュールの構成情報200の関連モジュール名224に設定する。
 ここで、プロビジョニング部106は、モジュール管理部101を介して、外部レポジトリ2またはモジュール記憶部102のモジュールから、関連モジュール依存性定義220の関連モジュール仕様221で指定された仕様と配備形式の組、または、仕様と付加処理の組に対応した関連モジュールを抽出することにより、コネクタモジュールのモジュール名を決定する。
 例えば、図8の構成情報200のアノテーション223と、図9の運用要件300のアノテーション322とで、配備形式「分散配備」が一致するため、プロビジョニング部106は、関連モジュール仕様221「Lib_A」と配備形式「分散配備」の組に対応するコネクタモジュールのモジュール名を「Lib_APC_1」と決定し、図8のように、関連モジュール名224に設定する。
 次に、プロビジョニング部106は、コネクタモジュールの配備先をAPモジュールが配備される処理装置11と同じ処理装置11に決定する(ステップS306)。
 例えば、プロビジョニング部106は、コネクタモジュール「Lib_APC_1」の配備先を、処理装置11「SV1」に決定する。
 次に、プロビジョニング部106は、モジュール構成管理部103を介して、コネクタモジュールの構成情報200を取得する(ステップS307)。
 図10は、本発明の第1の実施形態における、コネクタモジュールの構成情報200の例を示す図である。図10に示すように、コネクタモジュールの構成情報200には、対応する関連モジュールの構成情報200と同じ、インフラ仕様211、及び、関連モジュール仕様221が設定される。
 例えば、プロビジョニング部106は、図10のような、コネクタモジュール「Lib_APC_1」の構成情報200を取得する。
 次に、プロビジョニング部106は、コネクタモジュールについて、インフラ依存性解決処理(ステップS103)を、再帰的に実行する(ステップS308)。ここで、プロビジョニング部106は、APモジュールの構成情報200の代わりに、コネクタモジュールの構成情報200を用いて、ステップS103を実行する。
 なお、プロビジョニング部106は、インフラ依存性解決処理(ステップS103)において、依存するPFモジュールを決定するときに、インフラ仕様211で指定された仕様に対応するPFモジュールが、既に、配備されている場合、当該PFモジュールのモジュール名をインフラ名212に設定し、ステップS103の再帰的な実行を終了してもよい。
 例えば、プロビジョニング部106は、図10に示すように、インフラ名212に、既に、処理装置11「SV1」に設定されているインフラ仕様211「MW_A」のMWモジュール「MW_A_1」を設定する。
 次に、プロビジョニング部106は、APモジュールが依存する関連モジュールのモジュール名を決定する(ステップS309)。
 ここで、プロビジョニング部106は、モジュール管理部101を介して、外部レポジトリ2またはモジュール記憶部102のモジュールから、コネクタモジュールの構成情報200の関連モジュール仕様221で指定された仕様に対応する関連モジュールを抽出することにより、関連モジュールのモジュール名を決定する。関連モジュールの仕様と当該仕様を備えるモジュールの対応は、予め配備装置100に、対応表、または、変換ルールとして与えられている。また、プロビジョニング部106は、関連モジュール仕様221で指定された仕様に加えて、インタフェース222で指定されたインタフェースを備える関連モジュールを抽出してもよい。
 また、関連モジュール仕様221に対応するPFモジュールが複数存在する場合、プロビジョニング部106は、運用要件300に含まれる信頼性要件やコスト要件をもとに、関連モジュールを決定してもよい。
 例えば、プロビジョニング部106は、コネクタモジュールの構成情報200の関連モジュール仕様221「Lib_A」に対応する関連モジュールのモジュール名を「Lib_A_1」と決定する。
 次に、プロビジョニング部106は、関連モジュールの配備先の処理装置11を決定する(ステップS310)。プロビジョニング部106は、コネクタモジュールの構成情報200の関連モジュール名224に、ステップS310で決定した配備先の処理装置11の処理装置名と、ステップS309で決定した関連モジュールのモジュール名とを設定する。
 なお、関連モジュールの配備先の処理装置11が、APモジュールの配備先の処理装置11と同じ場合は、プロビジョニング部106は、配備先の処理装置名を省略し、モジュール名のみを関連モジュール名224に設定してもよい。
 ここで、配備形式「リモート配備」に対する配備を行う場合、プロビジョニング部106は、与えられた処理装置11の中から、APモジュールの配備先である処理装置11と異なる処理装置11を選択する。また、配備形式「分散配備」に対する配備を行う場合、プロビジョニング部106は、与えられた処理装置11の中から、処理装置11と異なる複数(所定数)の処理装置11を選択する。
 また、付加処理に対する配備を行う場合、プロビジョニング部106は、APモジュールの配備先である処理装置11と同一の処理装置11を選択する。
 プロビジョニング部106は、選択された処理装置11を、関連モジュールの配備先とする。
 例えば、プロビジョニング部106は、配備形式「分散配備」に対応する関連モジュールの配備先を、処理装置11「SV2」「SV3」と決定する。そして、プロビジョニング部106は、配備先の処理装置名とモジュール名「SV2/Lib_A_1」「SV3/Lib_A_1」を、図10のように、関連モジュール名224に設定する。
 次に、プロビジョニング部106は、モジュール構成管理部103を介して、関連モジュールの構成情報200を取得する(ステップS311)。そして、プロビジョニング部106は、関連モジュールについて、インフラ依存性解決処理(ステップS103)、及び、関連モジュール依存性解決処理(ステップS104)を、再帰的に実行する(ステップS312)。ここで、プロビジョニング部106は、APモジュールの構成情報200の代わりに、関連モジュールの構成情報200を用いて、ステップS103、及び、ステップS104を実行する。
 なお、プロビジョニング部106は、関連モジュール依存性解決処理(ステップS104)において、関連モジュールの構成情報200に関連モジュール依存性定義220が存在しない(関連モジュールに、さらに依存する関連モジュールが存在しない)場合、ステップS104の再帰的な実行を終了する。
 また、プロビジョニング部106は、インフラ依存性解決処理(ステップS103)において、依存するPFモジュールを決定するときに、インフラ仕様211に対応するPFモジュールが、既に、配備されている場合、当該PFモジュールのモジュール名をインフラ名212に設定し、ステップS103の再帰的な実行を終了してもよい。
 また、同一の関連モジュールが、複数の処理装置11に配備される場合、プロビジョニング部106は、それぞれの処理装置11における関連モジュールについて、インフラ依存性解決処理(ステップS103)、及び、関連モジュール依存性解決処理(ステップS104)を実行する。
 ステップS312の結果、APモジュールが依存する関連モジュールについても、インフラ依存性と関連モジュール依存性が解決される。
 例えば、プロビジョニング部106は、処理装置11「SV2」に配備される関連モジュール「Lib_A_1」が依存するMWモジュールのモジュール名を「MW_B_1」と決定し、図14のように、構成情報200におけるインフラ名212に設定する。そして、プロビジョニング部106は、MWモジュール「MW_B_1」を処理装置11「SV2」に配備する。また、プロビジョニング部106は、関連モジュール「Lib_A_1」が依存する関連モジュールのモジュール名を「Lib_B_1」と決定し、図14のように、構成情報200における関連モジュール名224に設定する。そして、プロビジョニング部106は、関連モジュール「Lib_B_1」を処理装置11「SV2」に配備する。また、プロビジョニング部106は、MWモジュール「MW_B_1」の配備の前に、MWモジュール「MW_B_1」が依存するOSモジュール「OS_B_1」、及び、OSモジュール「OS_B_1」が依存するVMモジュール「VM_B_1」を処理装置11「SV2」に配備する。
 また、プロビジョニング部106は、処理装置11「SV3」に配備される関連モジュール「Lib_A_1」についても、同様に、インフラ依存性解決処理、及び、関連モジュール依存性解決処理を行う。
 次に、プロビジョニング部106は、関連モジュールを、ステップS310で決定した配備先の処理装置11に配備する(ステップS313)。ここで、配備された関連モジュールの接続先に、当該関連モジュールの構成情報200のインフラ名212に設定されたPFモジュール、関連モジュール名224に設定された関連モジュールが設定される。
 例えば、プロビジョニング部106は、関連モジュール「Lib_A_1」を処理装置11「SV2」に配備する。関連モジュール「Lib_A_1」の接続先には、図14の関連モジュールの構成情報200で指定された、MWモジュール「MW_B_1」、関連モジュール「Lib_B_1」が設定される。
 次に、プロビジョニング部106は、コネクタモジュールを、ステップS305で決定した配備先の処理装置11に配備する(ステップS314)。ここで、配備されたコネクタモジュールの接続先に、当該コネクタモジュールの構成情報200のインフラ名212に設定されたPFモジュール、関連モジュール名224に設定された関連モジュールが設定される。
 例えば、プロビジョニング部106は、コネクタモジュール「Lib_APC_1」を処理装置11「SV1」に配備する。コネクタモジュール「Lib_APC_1」の接続先には、図10のコネクタモジュールの構成情報200で指定された、MWモジュール「MW_B_1」、関連モジュール「SV2/Lib_A_1」「SV3/Lib_A_1」が設定される。
 一方、ステップS302において、配備形式、及び、付加処理のどちらも指定されていない場合(ステップS302/No)、または、ステップS304において、配備形式、及び、付加処理のどちらも一致しない場合(ステップS304/No)、プロビジョニング部106は、コネクタモジュールを用いずに、関連モジュールを配備する。
 この場合、プロビジョニング部106は、ステップS309~S313と同様に、関連モジュールのモジュール名と配備先の処理装置11の処理装置名を決定し、関連モジュールの依存性を解決し、関連モジュールを配備する(ステップS315~S319)。但し、ステップS315において、プロビジョニング部106は、APモジュールの構成情報200の関連モジュール仕様221で指定された仕様に対応する関連モジュールを抽出し、関連モジュール名224に設定する。また、ステップS316において、プロビジョニング部106は、関連モジュールの配備先をAPモジュールが配備される処理装置11と同じ処理装置11に決定する。
 プロビジョニング部106は、APモジュールの構成情報200の全ての関連モジュール依存性定義220についての処理が行われたかどうかを判定する(ステップS320)。
 ステップS320において、全ての関連モジュール依存性定義220についての処理が行われていない場合(ステップS320/No)、プロビジョニング部106は、ステップS301~S320を繰り返し実行する。
 ステップS306において、全ての関連モジュール依存性定義220についての処理が行われた場合(ステップS320/Yes)、プロビジョニング部106は、関連モジュール依存性解決処理を終了する。
 APモジュールに対する関連モジュール依存性解決処理(ステップS104)の結果、APモジュールが依存する関連モジュール、当該関連モジュールが依存するPFモジュールと関連モジュール、及び、APモジュールと関連モジュールを接続するためのコネクションモジュールが、例えば、図15のように配備される。
 最後に、プロビジョニング部106は、例えば、APモジュールを処理装置11「SV1」に配備する。APモジュールの接続先には、図8のAPモジュールの構成情報200で指定されたMWモジュール「MW_A_1」、コネクタモジュール「Lib_APC_1」が設定される。
 この結果、APモジュール、APモジュールが依存するPFモジュール、及び、APモジュールが依存する関連モジュールが、図15のように、配備される。
 次に、付加処理に対する配備を行う場合の動作例を説明する。
 図19は、本発明の第1の実施形態における、APモジュールの構成情報200の他の例を示す図である。また、図20は、本発明の第1の実施形態における、APモジュールの運用要件300の他の例を示す図である。
 図19の例では、APモジュールの構成情報200のアノテーション223に、配備形式「リモート配備」「分散配備」、付加処理「秘密化」が指定されている。また、図20の例では、運用要件300のアノテーション322に付加処理「秘密化」が指定されている。
 プロビジョニング部106は、関連モジュール依存性解決処理において、図19のアノテーション223と図20のアノテーション322とで、付加処理「秘密化」が一致するため、付加処理「秘密化」に対する配備を行う。
 プロビジョニング部106は、関連モジュール仕様221「Lib_A」と付加処理「秘密化」の組に対応するコネクタモジュールのモジュール名を「Lib_ACC_1」と決定し、図19のように、APモジュールの関連モジュール名224に設定する。プロビジョニング部106は、コネクタモジュール「Lib_ACC_1」の配備先を、処理装置11「SV1」に決定する。
 また、図21は、本発明の第1の実施形態における、コネクタモジュールの構成情報200の他の例を示す図である。
 プロビジョニング部106は、コネクタモジュールの構成情報200の関連モジュール仕様221「Lib_A」に対応する関連モジュールのモジュール名を「Lib_A_1」と決定する。そして、プロビジョニング部106は、付加処理「秘密化」に対応する関連モジュールの配備先を、処理装置11「SV1」と決定する。プロビジョニング部106は、関連モジュールのモジュール名「Lib_A_1」を、図21のように、コネクタモジュールの構成情報200の関連モジュール名224に設定する。
 プロビジョニング部106は、関連モジュール「Lib_A_1」を処理装置11「SV1」に配備する。さらに、プロビジョニング部106は、コネクタモジュール「Lib_ACC_1」を処理装置11「SV1」に配備する。コネクタモジュール「Lib_ACC_1」の接続先には、図21のコネクタモジュールの構成情報200で指定された、関連モジュール「Lib_A_1」が設定される。
 最後に、プロビジョニング部106は、APモジュールを処理装置11「SV1」に配備する。APモジュールの接続先には、図19のAPモジュールの構成情報200で指定された、コネクタモジュール「Lib_ACC_1」が設定される。
 図22は、本発明の第1の実施形態における、各モジュール間の依存関係(依存性解決後)の他の例を模式的に示す図である。
 この結果、APモジュール、APモジュールが依存するPFモジュール、及び、APモジュールが依存する関連モジュールが、図22のように、配備される。
 以上により、本発明の第1の実施の形態の動作が完了する。
 次に、本発明の第1の実施の形態の特徴的な構成を説明する。図1は、本発明の第1の実施の形態の特徴的な構成を示すブロック図である。
 図1を参照すると、配備装置100は、モジュール構成情報記憶部104、及び、配備部105を含む。
 モジュール構成情報記憶部104は、複数のモジュールの各々について、当該モジュールが依存するモジュールである関連モジュールの仕様と、当該モジュール及び関連モジュールがとりうる、1以上の処理装置11への1以上の配備形式と、を含む構成情報200を記憶する。
 配備部105は、複数のモジュールから、指定されたモジュールの構成情報200に含まれる関連モジュールの仕様を満たす関連モジュールを抽出し、指定されたモジュールと抽出された関連モジュールとの配備形式が、当該構成情報200に含まれる1以上の配備形式の内の指定された配備形式となるように、1以上の処理装置11の中から、指定されたモジュール、及び、抽出された関連モジュールの各々の配備先の処理装置11を決定し、出力する。
 本発明の第1の実施の形態によれば、運用要件に応じて、APモジュールに係るシステム構成を変更できる。その理由は、配備部105が、APモジュールの構成情報200に含まれる仕様を満たす関連モジュールを抽出し、APモジュールと抽出された関連モジュールの配備形式が、指定された配備形式となるように、APモジュール、及び、抽出された関連モジュールの各々の配備先となる処理装置11を決定するためである。
 また、上述した非特許文献1に記載された配備システムでは、APモジュールが依存する関連モジュールやPFモジュールの処理装置11への配備、APモジュールの処理装置11への配備を行う手順を、具体的なモジュール名や、処理装置名を指定して記述した構築手順を、運用要件に応じて用意する必要があった。
 本発明の第1の実施の形態によれば、運用要件毎にシステム構築手順を用意することなく、運用要件に応じたシステムを構築できる。
 その理由は、配備部105が、APモジュールの構成情報200と運用要件300とをもとに、関連モジュールとPFモジュールを抽出し、APモジュール、関連モジュール、及び、PFモジュールの各々の配備先となる処理装置11を決定するためである。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 例えば、本発明の実施の形態では、配備装置100が、各モジュールを当該モジュールの配備先として決定した処理装置11に配備したが、配備装置100が、各モジュールのモジュール名と当該モジュールの配備先の処理装置11の処理装置名とを図示しない記憶部や他の装置に出力し、他の装置が、配備装置100から出力された情報をもとに、各モジュールの配備を行ってもよい。
 また、本発明の実施の形態では、運用要件300で配備形式または付加処理が指定されている場合の配備処理を示したが、運用要件300で配備形式と付加処理とが指定されている場合、当該配備形式に対応するコネクタモジュールと、当該付加処理に対応するコネクタモジュールの両方を用いてもよい。
 この出願は、2011年9月22日に出願された日本出願特願2011−207657を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 1 開発環境入力部
 2 外部レポジトリ
 10 データセンタ
 11 処理装置
 100 配備装置
 101 モジュール管理部
 102 モジュール記憶部
 103 モジュール構成管理部
 104 モジュール構成情報記憶部
 105 配備部
 106 プロビジョニング部
 107 アノテーション解釈部
 108 APモジュール配備部
 109 関連モジュール配備部
 110 MW配備部
 111 OS配備部
 112 VM配備部
 113 運用要件入力部
 200 構成情報
 201 モジュール名
 210 インフラ依存性定義
 211 インフラ仕様
 212 インフラ名
 213 インフラ設定
 220 関連モジュール依存性定義
 221 関連モジュール仕様
 222 インタフェース
 223 アノテーション
 224 関連モジュール名
 225 関連モジュール設定
 300 運用要件
 301 モジュール名
 310 インフラ要件
 311 インフラ仕様
 312 インフラ設定
 320 関連モジュール要件
 321 関連モジュール仕様
 322 アノテーション
 323 関連モジュール設定
 900 配備装置
 901 モジュール管理部
 902 モジュール記憶部
 903 関連モジュール配備部

Claims (9)

  1.  複数のモジュールの各々について、当該モジュールが依存するモジュールである関連モジュールの仕様と、当該モジュール及び前記関連モジュールがとりうる、1以上の処理装置への1以上の配備形式と、を含む構成情報を記憶するモジュール構成情報記憶手段と、
     前記複数のモジュールから、指定されたモジュールの前記構成情報に含まれる前記関連モジュールの仕様を満たす前記関連モジュールを抽出し、前記指定されたモジュールと前記抽出された関連モジュールとの配備形式が、前記指定されたモジュールの前記構成情報に含まれる前記1以上の配備形式の内の指定された配備形式となるように、前記1以上の処理装置の中から、前記指定されたモジュール、及び、前記抽出された関連モジュールの各々の配備先の処理装置を決定し、出力する配備手段と
    を含む配備装置。
  2.  前記構成情報は、さらに、前記モジュールと前記関連モジュールとの間に挿入可能な当該モジュールの出力に対する1以上の付加処理を含み、
     前記配備手段は、前記指定されたモジュールの前記構成情報に含まれる前記1以上の付加処理の内の指定された付加処理を行う接続モジュールの配備先を、前記指定されたモジュールの配備先と同一に決定する
    請求項1に記載の配備装置。
  3.  前記1以上の配備形式は、前記モジュールと前記関連モジュールとの異なる処理装置への配備であるリモート配備を含み、
     前記配備手段は、前記指定された配備形式が前記リモート配備である場合、前記抽出された関連モジュールの配備先を、前記指定されたモジュールの配備先とは異なる配備先に決定する
    請求項1または2に記載の配備装置。
  4.  前記1以上の配備形式は、同一の前記関連モジュールの複数の処理装置の各々への配備である分散配備を含み、
     前記配備手段は、前記指定された配備形式が前記分散配備である場合、前記抽出された関連モジュールの配備先を、前記指定されたモジュールの配備先とは異なる複数の処理装置に決定する
    請求項1または2に記載の配備装置。
  5.  前記配備手段は、前記抽出された関連モジュールと前記指定されたモジュールとの配備先が異なる場合、異なる配備先の処理装置間で前記指定されたモジュールの出力を前記抽出された関連モジュールへ送信する接続モジュールの配備先を、前記指定されたモジュールの配備先と同一の配備先に決定する
    請求項1乃至4のいずれかに記載の配備装置。
  6.  前記関連モジュールは、前記モジュールが依存する、前記モジュールと同一レイヤのモジュールであり、
     前記構成情報は、さらに、前記モジュールが依存する、前記モジュールの下位レイヤのモジュールであるプラットフォーム(PF)モジュールの仕様を含み、
     前記配備手段は、さらに、前記モジュール記憶手段から、前記指定されたモジュールの前記構成情報に含まれる前記PFモジュールの仕様を満たす前記PFモジュールを抽出し、前記抽出されたPFモジュールの配備先を、前記指定されたモジュールの配備先と同一に決定する
    請求項1乃至5のいずれかに記載の配備装置。
  7.  前記抽出されたPFモジュールである第1のPFモジュールの前記構成情報に含まれる前記PFモジュールの仕様を満たす第2のPFモジュールを抽出し、前記抽出された第2のPFモジュールの配備先を、前記指定されたモジュールの配備先と同一に決定することを第1の配備先決定とし、
     前記抽出された関連モジュールである第1の関連モジュールの前記構成情報に含まれる前記関連モジュールの仕様を満たす第2の関連モジュールを抽出し、前記第1の関連モジュールと前記抽出された第2の関連モジュールとの配備形式が、前記第1の関連モジュールの前記構成情報に含まれる前記1以上の配備形式の内の指定された配備形式となるように、前記1以上の処理装置の中から、前記第1の関連モジュール、及び、前記抽出された第2の関連モジュールの各々の配備先の処理装置を決定することを第2の配備先決定とし、
     前記配備手段は、前記抽出されたPEモジュールに対して、前記第1の配備先決定を再帰的に実行し、前記抽出された関連モジュールについて、前記第1の配備先決定と前記第2の配備先決定とを再帰的に実行する
    請求項6に記載の配備装置。
  8.  複数のモジュールの各々について、当該モジュールが依存するモジュールである関連モジュールの仕様と、当該モジュール及び前記関連モジュールがとりうる、1以上の処理装置への1以上の配備形式と、を含む構成情報を記憶し、
     前記複数のモジュールから、指定されたモジュールの前記構成情報に含まれる前記関連モジュールの仕様を満たす前記関連モジュールを抽出し、前記指定されたモジュールと前記抽出された関連モジュールとの配備形式が、前記指定されたモジュールの前記構成情報に含まれる前記1以上の配備形式の内の指定された配備形式となるように、前記1以上の処理装置の中から、前記指定されたモジュール、及び、前記抽出された関連モジュールの各々の配備先の処理装置を決定し、出力する
    配備方法。
  9.  コンピュータに、
     複数のモジュールの各々について、当該モジュールが依存するモジュールである関連モジュールの仕様と、当該モジュール及び前記関連モジュールがとりうる、1以上の処理装置への1以上の配備形式と、を含む構成情報を記憶し、
     前記複数のモジュールから、指定されたモジュールの前記構成情報に含まれる前記関連モジュールの仕様を満たす前記関連モジュールを抽出し、前記指定されたモジュールと前記抽出された関連モジュールとの配備形式が、前記指定されたモジュールの前記構成情報に含まれる前記1以上の配備形式の内の指定された配備形式となるように、前記1以上の処理装置の中から、前記指定されたモジュール、及び、前記抽出された関連モジュールの各々の配備先の処理装置を決定し、出力する
    処理を実行させるプログラムを格納する、コンピュータが読み取り可能な記録媒体。
PCT/JP2012/073557 2011-09-22 2012-09-07 配備装置、配備方法、及び、プログラム WO2013042618A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-207657 2011-09-22
JP2011207657 2011-09-22

Publications (1)

Publication Number Publication Date
WO2013042618A1 true WO2013042618A1 (ja) 2013-03-28

Family

ID=47914387

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/073557 WO2013042618A1 (ja) 2011-09-22 2012-09-07 配備装置、配備方法、及び、プログラム

Country Status (2)

Country Link
JP (1) JPWO2013042618A1 (ja)
WO (1) WO2013042618A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015194139A1 (ja) * 2014-06-17 2015-12-23 日本電気株式会社 情報処理装置、配備方法、及び、記録媒体

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010049688A (ja) * 2008-08-22 2010-03-04 Internatl Business Mach Corp <Ibm> 分散環境における階層化容量に基づいたプロビジョニング
WO2010095579A1 (ja) * 2009-02-23 2010-08-26 日本電気株式会社 アプリケーション配備システム、アプリケーション配備方法、及びアプリケーション配備プログラム
JP2011095871A (ja) * 2009-10-28 2011-05-12 Hitachi Ltd プログラム配布方法及び運用管理装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010049688A (ja) * 2008-08-22 2010-03-04 Internatl Business Mach Corp <Ibm> 分散環境における階層化容量に基づいたプロビジョニング
WO2010095579A1 (ja) * 2009-02-23 2010-08-26 日本電気株式会社 アプリケーション配備システム、アプリケーション配備方法、及びアプリケーション配備プログラム
JP2011095871A (ja) * 2009-10-28 2011-05-12 Hitachi Ltd プログラム配布方法及び運用管理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015194139A1 (ja) * 2014-06-17 2015-12-23 日本電気株式会社 情報処理装置、配備方法、及び、記録媒体
US10180830B2 (en) 2014-06-17 2019-01-15 Nec Corporation Information processing device, deployment method, and recording medium

Also Published As

Publication number Publication date
JPWO2013042618A1 (ja) 2015-03-26

Similar Documents

Publication Publication Date Title
EP2786279B1 (en) Deployment of a driver or an application on a client device having a write-filter
EP2786246B1 (en) Deployment and updating of applications and drivers on a client device using and extensible markup language (xml) configuration file
EP2786248B1 (en) Automatic updating of an application or a driver on a client device using a deployment configuration file
CN106796508B (zh) 在云平台上的快速部署
JP5434529B2 (ja) イメージファイル管理装置、イメージファイル管理プログラム、イメージファイル配信方法、情報処理装置及び展開プログラム
CN110874236B (zh) 一种跨平台应用装置、终端及存储介质
KR102288521B1 (ko) 블록체인 기반의 데이터 저장 장치 및 방법
US8599408B2 (en) Publishing content to social network sites from applications
US20150067671A1 (en) Information processing apparatus, control method, and storage medium
WO2013081681A1 (en) Creation or installation of a disk image for a target device having one of a plurality of hardware platforms
US20160259933A1 (en) Information processing system, information processing apparatus, and information processing method
JP2010086370A (ja) 画像形成装置、配信サーバーおよびファームウェアアップデート方法
US9208320B2 (en) Software distribution system and software distribution method
JP6349783B2 (ja) 端末装置、サーバ装置、デバイスドライバプログラム及び外部周辺機器制御方法
JP6202091B2 (ja) 情報処理装置、及び、配備方法
US9547487B2 (en) Image forming apparatus, control method therefor, and control program therefor
US20140047506A1 (en) Licence management system, license management method, and client device
CN107632932B (zh) 一种多级校验的软件仓库可靠性检测方法
US20130346962A1 (en) Mechanism and system for deploying software over clouds
WO2013042618A1 (ja) 配備装置、配備方法、及び、プログラム
JP2009205262A (ja) アプリケーションプログラムインストール装置、アプリケーションプログラムインストール方法、プログラム、および記録媒体
CN110716811A (zh) 数据库的调用方法、装置和计算机设备
CN110321132B (zh) 一种代码发布方法和装置
JP2011181074A (ja) 無線通信装置の設定方法、記憶媒体、情報処理装置、記録方法、及びシステム
JP6375817B2 (ja) 印刷制御システム、情報処理装置及びコンピュータープログラム

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: 12834415

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013534693

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12834415

Country of ref document: EP

Kind code of ref document: A1