WO2012147825A1 - アプリケーションアーキテクチャ設計方法、アプリケーションアーキテクチャ設計装置、および記録媒体 - Google Patents

アプリケーションアーキテクチャ設計方法、アプリケーションアーキテクチャ設計装置、および記録媒体 Download PDF

Info

Publication number
WO2012147825A1
WO2012147825A1 PCT/JP2012/061154 JP2012061154W WO2012147825A1 WO 2012147825 A1 WO2012147825 A1 WO 2012147825A1 JP 2012061154 W JP2012061154 W JP 2012061154W WO 2012147825 A1 WO2012147825 A1 WO 2012147825A1
Authority
WO
WIPO (PCT)
Prior art keywords
design
matrix
information
module
design matrix
Prior art date
Application number
PCT/JP2012/061154
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 日本電気株式会社
Priority to US14/114,446 priority Critical patent/US9626156B2/en
Priority to JP2013512419A priority patent/JP5988173B2/ja
Publication of WO2012147825A1 publication Critical patent/WO2012147825A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Definitions

  • the present invention relates to an application architecture design method, design apparatus, and recording medium, and more particularly, to an application architecture design method, design apparatus, and recording medium suitable for a virtual environment or a cloud environment.
  • an established standard architecture such as a Web three-layer model is used.
  • the Web three-layer model is divided into a Web screen (interface) that receives application requests, a module that processes application requests, and a database that reads and writes processing results.
  • a design method using this division is used for designing and developing general Web applications.
  • application programs that operate in a distributed manner on unspecified machines in a virtual environment or a cloud environment are being used.
  • Application programs specialized for use in such an environment are also being designed and developed.
  • Cloud computing uses an application software function, a middleware function that executes an application, and an infrastructure function such as an operating system, a network, and a storage to construct an application that provides a predetermined function to a user.
  • the main elemental technologies that realize cloud computing are virtualization technologies such as servers and storage.
  • virtualization technology physical hardware resources (physical machines) such as CPUs and hard disks, and logical hardware functions (virtual machines) such as the number of CPU cores and storage amounts that are virtually allocated are classified. And are separated.
  • physical hardware resources physical machines
  • logical hardware functions virtual machines
  • the above-mentioned physical / logical distinction of hardware has been treated as one.
  • application development used in a cloud environment or the like each separated part is cut out as a design interface for creating an application configuration. For this reason, application development that takes virtualization technology into account tends to have a large increase in the number of design interfaces as compared to Web applications that are designed without distinguishing hardware.
  • Architectural design is to define the configuration and design the storage location of the data that constitutes the application, the configuration of the module that processes the data, and the execution location thereof.
  • An application program (cloud application program) running in a cloud environment calls and uses virtualized functions as needed from the servers and storage groups deployed in the data center that provides the cloud environment. ing.
  • a cloud application (service) is a distributed system because a group of modules constituting the application is distributed and arranged in a plurality of virtual machines or a remote data store is used. For this reason, the cloud application program needs to adapt to the distributed system.
  • an application architecture design method when calling a virtualized function as appropriate, the physical hardware resource on which the module that builds the function is operating is designed and developed. I cannot fully consider it.
  • Axiomatic design defines four domains: customer requirements, functional requirements, design parameters, and process variables. The design process proceeds in the order of customer request: CA (Customer Attribute) ⁇ function request: FR (Functional Requirements) ⁇ design parameter: DP (Design Parameter) ⁇ process variable: PV (Process Variable).
  • DfX is a design method that simultaneously handles a plurality of design viewpoints such as performance and safety.
  • FIG. 14 shows a model in which these concepts are integrated into one.
  • This model is introduced in the design method of applications that operate in the cloud environment. That is, the design process of an application that operates in a cloud environment is simplified into three stages of FR ⁇ DP1, DP1 ⁇ DP2, and DP2 ⁇ PV.
  • a two-dimensional matrix is used as shown in FIG. 14, and the relationship between each CA element and each FR element, each FR element and each DP element, each DP element and each PV element is shown. Can be expressed and formally express the design process.
  • Non-Patent Document 1 shows functional division of components for products. This method expresses a dependency relationship between functions constituting a product using DSM, and derives an optimal function group dividing method by replacing each cell value of DSM.
  • Patent Document 1 discloses a method for eliminating waste in the product development process using DSM.
  • product design product development proceeds step by step so that functional design is performed from functional requirements and parameters of each function are designed.
  • the design information handled at a certain point in the product development process is not targeted, and it is difficult to optimize the design at a specific point in time.
  • the QFD (Quality Function Design) and DSM matrix shown in the present system are characterized in that weights are assigned between row and column items.
  • Patent Document 2 discloses a method for optimizing development activities in order to shorten the development period by using DSM.
  • a problem is set in the development process.
  • it since it is not intended for design information handled at a certain point in time, it has been difficult to use it for optimization of architecture design at a specific point in time.
  • it is necessary to build the logical configuration and physical configuration in stages.
  • the design of the application architecture with virtualization cannot be optimized.
  • the present invention provides a method for deriving a good design solution of an application architecture in an application design in a virtual environment or a cloud environment in accordance with the design process simplified in the above three stages.
  • the present invention provides a method for deriving a module group constituting an application program in consideration of various design viewpoints such as performance, maintainability, safety, availability, and migration.
  • the present invention also provides a method for deriving a configuration (architecture) for favorably deploying these module groups in the execution environment.
  • the present invention also provides an apparatus and a program for deriving a design solution of an application architecture in application design in a virtual environment or a cloud environment.
  • An application architecture design system includes a module group that operates a function that forms an application program, a virtual machine group that operates the module group, and a dependency relationship that is a design matter regarding a physical machine group that operates the virtual machine group And an input unit for inputting information relating to the design aspect, and a DSM format design matrix for the input dependency relationship and information relating to the design aspect, so that the module group, the virtual machine group, And a design matrix optimizing unit for rearranging each allocation to the physical machine group step by step to optimize the architecture and outputting the result.
  • the application architecture design method is a design matter regarding a module group that operates a function that forms an application program, a virtual machine group that operates the module group, and a physical machine group that operates the virtual machine group.
  • the present invention it is possible to provide a method for deriving a good application architecture design solution in application architecture design in a virtual environment or a cloud environment. Further, according to the present invention, it is possible to provide a method for deriving a module constituting an application program in consideration of various design viewpoints such as performance, maintainability, safety, availability, and transferability. That is, it becomes easy to determine modularization of software functions determined at the time of program design development. Further, according to the present invention, it is possible to provide a method for deriving a configuration (architecture) that can favorably deploy these module groups in the execution environment. That is, it becomes easy to determine the logical and physical location of the application determined at the time of design and development. Further, according to the present invention, it is possible to provide an apparatus for deriving an application architecture design solution in application design in a virtual environment or a cloud environment.
  • FIG. 1 is a block diagram illustrating a configuration of an application architecture design apparatus according to an embodiment.
  • FIG. 2 is an explanatory diagram illustrating the configuration of design aspect information used in the embodiment.
  • FIG. 3 is an explanatory diagram illustrating the configuration of the design matrix.
  • FIG. 4 is a flowchart showing processing in the function design phase.
  • FIG. 5 is a flowchart showing processing in the module arrangement design phase.
  • FIG. 6 is a flowchart showing processing in the resource allocation design phase.
  • FIG. 7 is a block diagram showing the configuration of an application program that is constructed for use on a cloud computing environment as an example.
  • FIG. 8 is an explanatory diagram illustrating a list of design aspect information.
  • FIG. 9 is an explanatory diagram illustrating an example of matrix rearrangement processing.
  • FIG. 1 is a block diagram illustrating a configuration of an application architecture design apparatus according to an embodiment.
  • FIG. 2 is an explanatory diagram illustrating the configuration of design aspect information used in the embodiment.
  • FIG. 10 is a model diagram of an architecture based on resource allocation to a virtual machine using a design matrix.
  • FIG. 11 is a model diagram of an architecture based on resource allocation to a physical machine using a design matrix.
  • FIG. 12 is an explanatory diagram illustrating an example of an implementation interface that displays a model diagram.
  • FIG. 13 is an explanatory diagram illustrating an example of a mounting interface that displays a DSM matrix.
  • FIG. 14 is a block diagram showing an example of realization of the present invention.
  • FIG. 15 is a block diagram showing an example of another embodiment of the present invention.
  • FIG. 16 is a model diagram showing an application design integrated into one model using the inventor's axiomatic design and the concept of DfX.
  • the architecture design process of the cloud application is divided into three phases, and the design object (module granularity, allocation, distribution, arrangement, etc.) in each phase is clarified.
  • the three phases to be divided are a functional module design phase, a module arrangement design phase, and a resource allocation design phase.
  • the function module design phase which is the first phase, determines the correspondence between the function group constituting the application and the module group constituting the application program, and the granularity of each module.
  • the module placement design phase which is the second phase, determines the correspondence between the module group and a virtual machine group (network resource: logical resource) on which each module is placed.
  • the resource allocation design phase which is the third phase, determines the correspondence between the virtual machine group and the physical machines (physical resources) on which the virtual machines are arranged.
  • the application architecture design method of the present invention executes the application architecture design along these three phases.
  • the design apparatus and the program are configured to operate along this phase.
  • FIG. 1 is a block diagram showing the configuration of the application architecture design apparatus 100.
  • the application architecture design apparatus 100 shown in FIG. 1 is a block diagram showing the configuration of the application architecture design apparatus 100.
  • the module arrangement design matrix display unit 160 and the resource allocation design matrix display unit 170 are configured.
  • a general configuration such as an input unit is provided.
  • the dependency relationship input unit 110 and the design aspect information input unit 120 operate as a design item input unit.
  • the design item input unit is used to input information on dependency relations and design aspects, which are design items related to a module group, a virtual machine group, and a physical machine group forming an application program.
  • the functional module design matrix display unit 150, the module arrangement design matrix display unit 160, and the resource allocation design matrix display unit 170 operate as a design matrix optimization unit.
  • the design matrix optimizing unit displays the dependency relationship and the design aspect as a DSM format matrix at each layer level, and also allows the displayed matrix to be switched between rows and columns. By performing this replacement, the design matrix optimization unit changes the architecture design so as to correspond to the operation of the matrix. In other words, by using the design matrix optimization unit to select appropriate matrix-shaped patterns (such as the degree of modularization), the upper layer parts for the module group, virtual machine group, and physical machine group are allocated appropriately. Distributed and arranged as expected. By repeating this allocation and arrangement, the architecture can be optimized as a whole. Further, the design matrix optimization unit sequentially executes the change process (optimization process) for the above three phases (functional module design phase, module layout design phase, and resource allocation design phase).
  • the information input to the dependency relationship input unit 110 includes information indicating a relationship between two parties to be considered. For example, information indicating a relationship between two parties having a direct function call relationship such as a relationship between a method call source and a call destination, or a module configured with a plurality of functions and a direct location such as a placement destination thereof. Information indicating a relationship between two parties having a physical relationship.
  • the information input to the design aspect information input unit 120 includes the following information.
  • the design information storage unit 130 receives and stores the input dependency and design aspect information, and stores and stores the design matrix information generated after each rearrangement (optimization).
  • the design matrix arrangement calculation unit 140 performs automatic change processing (rearrangement) so that the received row / column arrangement of each design matrix approaches a predetermined pattern using various algorithms, and returns the result.
  • the operation of the application architecture design apparatus 100 will be described with reference to FIGS. 2, 3, 4, 5, and 6.
  • a function module design phase for determining a module configuration of an application program used for providing an application is executed.
  • the function group constituting the application and the calling relationship between the functions are input as dependency relationships to the dependency relationship input unit 110 (S111 in FIG. 4).
  • the input design aspect information includes “function dependency”, “performance”, “security”, “maintainability”, “maintainability”, “extensibility”, and “availability”. Importance can be assigned to each viewpoint, as well as various design viewpoints such as “,” and “migration”.
  • performance is related to function A, function B, and function H
  • security is related to function A, function B, and function C. ing. The same applies to “maintainability” and “extensibility”.
  • design viewpoints are input based on the knowledge of an input person (architect) of design aspect information.
  • the input person appropriately gives importance for each performance viewpoint. If it demonstrates using the design viewpoint about "performance” of FIG. 2, the importance of "function dependence” will be considered about the relationship between the function A and the function B, the function B and the function H, and the function A and the function H. .
  • the importance given to the dependency relationship between functions is, for example, a value given in consideration of a direct call relationship between functions.
  • the importance of each design viewpoint is 0.1 for “function dependency”, 0.3 for “performance”, 0.2 for “security”, and “maintainability”. 0.3 and “extensibility” are given 0.1.
  • the application architecture design apparatus sets the given values in the cells of the design matrix as shown in FIG.
  • the design information storage unit 130 receives the information input in S111 and S112 and stores it as design matrix information (S113).
  • the functional module design matrix display unit 150 displays a DSM matrix (functional module design matrix) using the design matrix information stored in the design information storage unit 130 (S114, see FIG. 3). As a result of this processing, as shown in FIG.
  • the sufficiency it is only necessary to refer to the DSM matrix and refer to the arrangement position of the modules based on the diagonal lines of the array, the total value of the values included in each module, and the like. By checking the sufficiency, it is possible to determine, for example, mutual integration of modules, importance of modules, module granularity, and the like.
  • the functional module design matrix display unit 150 accepts the rearrangement instruction input and maintains the mutual relationship between the displayed information and performs matrix row and column replacement processing (rearrangement processing).
  • the design matrix information subjected to (placement) is calculated, changed to a state where the rearrangement is reflected, and registered in the design information storage unit 130 (S121).
  • the optimization of the correspondence between the function and the module by the row / column arrangement conversion may be manually operated by the user himself / herself.
  • the optimal module division of the DSM may be a strategy such that the total value of the values arranged in the diagonal lines of the array and included in each module approaches the maximum.
  • the design matrix arrangement calculation unit 140 that automatically calculates the appropriate solution for design development based on the rearrangement of the rows / columns of each design matrix.
  • An appropriate solution can be derived.
  • a genetic algorithm can be used for automatic calculation of the appropriate solution.
  • the functional module design matrix display unit 150 displays the functional module design matrix after the rearrangement calculation using the design matrix information that has been rearranged (S122).
  • the functional module design matrix display unit 150 may be configured to display the function module design matrix before and after the rearrangement so that the matrix can be compared before and after the rearrangement calculation.
  • the module configuration of the application program (such as responsible functions and granularity) is determined.
  • design viewpoints such as performance, maintainability, safety, availability, migration, dependency between functions, etc.
  • the configuration can be derived.
  • a module arrangement design phase for determining the logical arrangement of the module group is executed for the module configuration of the application determined as described above.
  • a module group constituting an application and a calling relationship between modules are input as dependency relationships to the dependency relationship input unit 110 (S211 in FIG. 5).
  • requirements design viewpoint
  • these are input as design aspect information 200 to the design aspect information input unit 120 (See S212, FIG. 2).
  • the design information storage unit 130 receives the information input in S211 and S212 and stores it as design matrix information (S213).
  • the module arrangement design matrix display unit 160 displays a DSM system matrix (module arrangement design matrix) using the design matrix information stored in the design information storage unit 130 (S214).
  • the visualization of the matrix based on the DSM method confirms the sufficiency of the information input in S211 and S212, and returns to S211 when review is necessary. When the review is unnecessary and the module arrangement is properly performed, the contents are output as design matrix information to the design information storage unit 130, and then the display is terminated. If rearrangement is performed based on the visualized matrix, the process proceeds to S221 (S215).
  • the determination of sufficiency in this phase may be performed using the same criteria (arrangement, total value, etc.) as those in the previous phase (functional module design phase).
  • the module layout design matrix display unit 160 receives the rearrangement instruction input and maintains the mutual relationship between the displayed information and replaces the matrix rows and columns (re-arrangement processing).
  • the design matrix information subjected to (placement) is calculated, changed to a state where the rearrangement is reflected, and registered in the design information storage unit 130 (S221).
  • the optimization of the correspondence between modules and logical resources by row / column arrangement conversion (deciding module allocation to logical resources and their density, etc.) is performed by the user manually operating the design matrix, Module arrangement (blocking) may be advanced. At this time, it is possible to optimize the architecture by promoting modularization (blocking) of the design matrix.
  • the optimal module arrangement of the DSM may be a strategy such that the total value of the values arranged in the array line and included in each module is maximized.
  • an appropriate solution may be derived using the design matrix arrangement calculation unit 140.
  • the automatic calculation of the appropriate solution can be performed in the same manner as in the functional module design phase.
  • a model diagram (design drawing) of an architecture suitable for the inputted design matrix information is obtained.
  • the matrix pattern may be derived from a plurality of types of patterns.
  • the matrix pattern may be derived so that the centroid of the total value on the matrix of the individual modules derived in the previous phase is made uniform. By equalizing the center of gravity of the modules in this way, it is possible to average the distribution of individual modules to the virtual machines based on the importance input as design aspect information.
  • the module layout design matrix display unit 160 displays the module layout design matrix after the rearrangement calculation using the design matrix information calculated by the rearrangement (S222).
  • the module arrangement design matrix display unit 160 may be configured to display the module arrangement design matrix before and after the rearrangement so that the module arrangement design matrix before and after the rearrangement can be compared when displaying the matrix after the rearrangement calculation.
  • the module arrangement design matrix display unit 160 may display the function module design matrix together with the module arrangement design matrix.
  • a resource allocation design phase for determining the physical arrangement of the logical resource group in which the module is arranged is executed for the logical device of the module decided as described above.
  • the calling relationship between applications is input to the dependency relationship input unit 110 as a dependency relationship (S311 in FIG. 6).
  • these are input as design aspect information 200 to the design aspect information input unit 120 (S312). ).
  • the design information storage unit 130 receives the information input in S311 and S312 and stores it as design matrix information (S313).
  • the resource allocation design matrix display unit 170 displays a DSM system matrix (resource allocation design matrix) using the design matrix information stored in the design information storage unit 130 (S314).
  • the visualization of the matrix based on the DSM method confirms the sufficiency of the information input in S311 and S312 and returns to S311 if a review is necessary. When the review is unnecessary and the module arrangement is properly performed, the contents are output as design matrix information to the design information storage unit 130, and then the display is terminated. When rearrangement is performed based on the visualized matrix, the process proceeds to S321 (S315).
  • the resource allocation design matrix display unit 170 accepts the rearrangement instruction input and maintains the mutual relationship of the displayed information while replacing the matrix row and column.
  • the design matrix information subjected to (placement) is calculated, changed to a state where the rearrangement is reflected, and registered in the design information storage unit 130 (S321).
  • the optimization of the correspondence between logical resources and physical resources by row / column layout conversion (such as the placement of virtual machines on physical resources and the determination of their density, etc.)
  • the user may manually operate to advance modularization, or the design matrix arrangement calculation unit 140 may be used to derive an appropriate solution.
  • a model diagram (design drawing) of an architecture suitable for the inputted design matrix information is obtained.
  • the matrix pattern may be derived from a plurality of types of patterns.
  • the matrix pattern may be derived so that the centroid of the total value on the matrix of the individual logical resources derived in the previous module placement phase is made uniform.
  • the resource allocation design matrix display unit 170 displays the resource allocation design matrix after the rearrangement calculation using the design matrix information subjected to the rearrangement calculation (S322).
  • the resource allocation design matrix display unit 170 may be configured to display the resource allocation design matrix before and after the rearrangement so that the matrix can be compared when the matrix is displayed after the rearrangement calculation. Further, the resource allocation design matrix display unit 170 may display the matrix in both previous phases together with the resource allocation design matrix.
  • the allocation position for the physical device (physical resource) that uses the individual logical resources derived in the previous phase as the execution environment can be suitably determined.
  • the application architecture design apparatus 100 can derive a good design solution for an application architecture in a virtual environment or a cloud environment.
  • FIG. 7 shows the configuration of an application program scheduled to be built on a cloud computing environment as an example.
  • This cloud application program collects log information of server devices arranged on the network at regular intervals and stores them in a database.
  • this cloud application program constructs a Web screen (interface) as an interface with the user.
  • a keyword search request is received from the user via the network
  • this cloud application program reads data from the stored database, extracts a log including the keyword, counts the number of cases, and presents it as a Web screen.
  • the functions that such applications have are: log collection function, schedule function, log writing function, data storage function, then request input function, request analysis function, data cache function, data search function, search result count function And a count result output function.
  • the architect inputs the call relationship between the functions from the dependency input unit 110 to the application architecture design apparatus 100.
  • the design aspect information input unit 120 selects an aspect related to performance (performance) and security (safety) from a list showing design viewpoints as shown in FIG. 8, and inputs design aspect information.
  • the architect should confirm that the log collection function and log writing function should be executed continuously, and that the log writing function and data storage function should be executed continuously. Then, it is input to the design aspect information input unit 120 as one item of design aspect information.
  • the architect inputs other requirements from the viewpoint of performance and items of other viewpoints.
  • the input information is not limited to the manual input by the architect, but may be cited from design aspect information accumulated in the past as a database.
  • the architect desirably inputs the importance value input for each requirement so that the total sum becomes 1.0.
  • An example of setting importance is shown in FIG. In the setting example of FIG. 2, the function dependency is adjusted to 0.1, the performance is set to 0.3, the security is set to 0.2, the maintainability is set to 0.3, and the extensibility is set to 0.1. I have to.
  • the design information storage unit 130 stores the information as design matrix information.
  • the design information storage unit 130 adds the importance value of the design aspect between the functions specified by the design aspect information.
  • the application architecture design device 100 operates the functional module design matrix display unit 150 automatically or based on the architect's instruction, and the design matrix information registered in the design information storage unit 130. Is displayed, and a design matrix showing the function-module reflecting the correspondence between the function assigned to each module and the assigned module is displayed in the DSM format and presented to the architect.
  • the function module design matrix is optimized, and the module reflecting the function division considering the performance is calculated.
  • the design matrix operation by the architect is accepted, the design matrix (design matrix information) is recalculated (reconstruction processing), and the resulting functional module design matrix is displayed as appropriate.
  • the rearrangement input from the design matrix arrangement calculation unit 140 is accepted and the design matrix (design matrix information) is automatically recalculated (reconstruction processing), and one or more of the results are obtained.
  • the design matrix before and after the rearrangement may be displayed so as to be comparable. Further, it may be displayed as a visual effect in association with other matrices, and the density and center of gravity of each module.
  • FIG. 9 shows an example of matrix rearrangement.
  • the architect or design matrix arrangement calculation unit 140 moves a row and a column, respectively, and forms a large module (cell set: block) in which a large number of cells having values in a diagonal line (black cells) and a lower left direction are arranged. Rearrange so that.
  • the module size on the DSM notation is a unit of granularity of the program module.
  • each cell is described by binary values of 0 and 1.
  • FIG. 3 when each cell is weighted between 0 and 1 instead of binary values of 0 and 1, as described above, a combination that increases the total value in the block is appropriate. What should I do? As a module configuration after rearrangement in the first phase, for example, the following division result is obtained.
  • the application architecture design apparatus 100 operates the module arrangement design matrix display unit 160 to read the design matrix information registered in the design information storage unit 130, and the modules are individually set in the DSM format.
  • a design matrix indicating the module arrangement of each module for the virtual machine that operates is displayed and presented to the architect.
  • the module arrangement design matrix is optimized, and the arrangement of the modules reflecting each requirement in the virtual machine is calculated.
  • the design matrix operation by the architect When performing artificially, the design matrix operation by the architect is accepted, the design matrix is recalculated, and the resulting module arrangement design matrix is displayed as appropriate.
  • the rearrangement input from the design matrix arrangement calculation unit 140 is accepted, the design matrix is automatically recalculated, and one or a plurality of module arrangement design matrices as a result are displayed.
  • the architect visually confirms the design matrix before and after the rearrangement, which is output to the module layout design matrix display unit 160 in a timely manner, and visually confirms whether or not the design is revised and whether the design is appropriate.
  • the design matrix operation by the architect is accepted, the design matrix is recalculated, and the resulting module arrangement design matrix is displayed as appropriate.
  • the rearrangement input from the design matrix arrangement calculation unit 140 is accepted, the design matrix is automatically recalculated, and one or a plurality of module arrangement design matrices as a result are displayed.
  • the architect visually confirms the design matrix before and after the rearrangement,
  • the obtained model diagram may be presented on the interface in a timely manner or under the direction of the architect, and it is desirable to link with other information.
  • Virtual machine 1 (1) Log collection function, log writing function, (2) Schedule function Virtual machine 2: (3) Data storage function, data search function, (4) Request input function, count result output function
  • Virtual machine 3 (5) Request analysis function, data cache function * (1) to (5) indicate individual modules
  • the virtual machine is placed on a physical machine.
  • the aspect regarding performance etc. is input into the design aspect information input part 120 as follows.
  • the virtual machines 1 to 3 make it easy to determine a physical machine that actually moves a virtual machine in consideration of interference with virtual machines used in other services.
  • the virtual machines 1 to 3 are separated from other applications having many disk IOs.
  • the application architecture design apparatus 100 operates the resource allocation design matrix display unit 170 to read out the design matrix information registered in the design information storage unit 130, and outputs each virtual data in the DSM format.
  • a design matrix indicating the resource allocation that is the allocation of each virtual machine to the physical machine on which the machine operates is displayed and presented to the architect.
  • the resource allocation design matrix is optimized, and the arrangement of the virtual machines 1 to 3 reflecting the requirements on the physical machine is calculated.
  • the design matrix operation by the architect When performing artificially, the design matrix operation by the architect is accepted, the design matrix is recalculated, and the resulting resource allocation design matrix is displayed as appropriate.
  • the rearrangement input from the design matrix arrangement calculation unit 140 is accepted, the design matrix is automatically recalculated, and one or more resource allocation design matrices as a result are displayed.
  • the architect visually recognizes whether or not the design is reviewed and whether or not the design is appropriate by visually recognizing the design matrix before and after the rearrangement, which is output to the resource allocation design matrix display unit 170 in a timely manner. Thereby, for example, the following arrangement plan is obtained as the arrangement configuration of the virtual machine after the rearrangement, and a model diagram of the design as shown in FIG. 11 can be output.
  • the obtained model diagram may be presented on the interface in a timely manner or under the direction of the architect, and it is desirable to link with other information.
  • Physical machine 1 Virtual machine 1
  • Virtual machine 2 Physical machine 2
  • Virtual machine 3 By performing each phase so far, as shown in FIG. 11, a virtual machine and a module group to be introduced into each physical machine can be derived with a suitable architecture.
  • FIG. 12 shows an example of an interface for confirming the designed architecture.
  • a screen configuration is adopted in which two model diagrams obtained by the three phases using the design matrix are displayed in the upper window, and the design matrix after optimization of the selected part is displayed in the lower window. ing.
  • FIG. 13 shows an example of an interface used when automatically optimizing the design matrix in the application architecture design apparatus 100.
  • the design matrix calculation unit 140 optimizes the design matrix in response to input from the operator to the analyze button. The result is displayed in the lower window.
  • a good design solution is derived in which a large number of modules can be integrated by rearrangement before rearrangement.
  • application design in a better virtual environment or cloud environment can be performed.
  • the module layout design matrix facilitates a module layout method that satisfies the requirements for extensibility and maintainability.
  • the application architecture design apparatus it is possible to automatically provide an appropriate solution for design development based on the rearrangement of the rows / columns of each design matrix displayed in the DSM format to the user.
  • Each unit of the application architecture design apparatus may be realized using a combination of hardware and software.
  • an application architecture design program is developed in the RAM, and hardware such as a control unit (CPU) is operated based on the program, thereby causing each unit to function as various means. Further, this program may be fixedly recorded on a recording medium and distributed.
  • the program recorded on the recording medium is read into a memory via a wired, wireless, or recording medium itself, and operates a control unit or the like.
  • Examples of the recording medium include an optical disk, a magnetic disk, a semiconductor memory device, and a hard disk.
  • the application architecture design apparatus may be constructed as a single computer or a server-client system as illustrated in FIGS. 14 and 15.
  • the information processing apparatus operating as the application architecture design apparatus is based on the application architecture design program developed in the RAM, the dependency input unit, the design aspect information input unit, and the design information. It can be realized by operating the control unit as a storage unit, a design matrix arrangement calculation unit, a functional module design matrix display unit, a module arrangement design matrix display unit, and a resource allocation design matrix display unit.
  • the information processing apparatus outputs design matrix information at each time stored in the design information storage unit from an output unit (such as a printer) together with various setting requirements.
  • the screen of the information processing apparatus may be configured to display a 3DSM matrix that reflects and reflects the design matrix information at three points of time in the function module design phase, the module layout design phase, and the resource allocation design phase.
  • a model diagram of an architecture that models the input dependency relationship and design aspect may be displayed in association with each DSM matrix. Further, the dependency relationship and the design aspect may be corrected by manipulating the displayed model diagram. It is desirable that these model diagrams are linked to a DSM format design matrix performed at each stage, and an interface screen is created so that the design matrix before and after the rearrangement can be displayed as appropriate.
  • the importance for each item input as the design aspect contributes effectively by optimizing the architecture design.
  • the specific configuration of the present invention is not limited to the above-described embodiment, and changes within a range not departing from the gist of the present invention are included in the present invention.
  • it becomes possible to design an application that also considers virtualization so that a system developer can configure an application module configuration suitable for an environment in which servers and storage are virtualized, a virtual arrangement, It becomes possible to design the physical arrangement well.
  • a provider such as a cloud service can optimize the way of assigning virtual machines according to the characteristics of the application.
  • a provider such as a cloud service can easily determine a physical machine that actually moves a virtual machine in consideration of interference with virtual machines used in other services.
  • Application architecture design device 110 dependency input unit (dependency input means) 120 Design aspect information input section (design aspect information input means) 130 Design information storage (design information storage means) 140 Design matrix arrangement calculation unit (design matrix arrangement calculation means) 150 functional module design matrix display section (functional module design matrix display means) 160 Module arrangement design matrix display section (module arrangement design matrix display means) 170 Resource allocation design matrix display section (resource allocation design matrix display means)

Landscapes

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

Abstract

 情報処理装置を用いたアプリケーションアーキテクチャの設計方法として、機能を動作させるモジュール群、そのモジュール群を動作させる仮想マシン群、その仮想マシン群を動作させる物理マシン群に関しての設計事項となる依存関係および設計アスペクトに関する情報を入力する段階と、入力された依存関係および設計アスペクトに関する情報についてDSM形式の設計マトリクスの入れ替えを行なうことによって、DSM形式上でモジュール群、仮想マシン群、及び物理マシン群に対するそれぞれの割当を段階的に再配置してアーキテクチャの適正化処理を図る段階とを行なう。その結果、仮想化環境やクラウド環境などに適したアーキテクチャの良好な設計解を導出できる。

Description

アプリケーションアーキテクチャ設計方法、アプリケーションアーキテクチャ設計装置、および記録媒体
 本発明は、アプリケーションアーキテクチャの設計方法、設計装置、および記録媒体に関し、特に仮想化環境やクラウド環境に適したアプリケーションアーキテクチャの設計方法、設計装置、および記録媒体に関する。
 Webアプリケーションの設計・開発では、Web三層モデルといった確立された標準的なアーキテクチャが用いられている。Web三層モデルは、アプリケーションのリクエストを受けるWeb画面(インタフェース)、アプリケーションのリクエストを処理するモジュール、処理した結果などを読み書きするデータベースに分けられる。この分け方を用いた設計方法が一般的なWebアプリケーションの設計・開発に用いられている。
 また仮想化環境やクラウド環境などで不特定のマシン上で分散して動作するアプリケーションプログラムの利用が進みつつある。このような環境下で使用されることに特化したアプリケーションプログラムも設計開発が行なわれている。
 クラウドコンピューティングは、アプリケーションソフトウェアの機能や、アプリケーションを実行するミドルウェアの機能、オペレーティングシステムやネットワーク、ストレージなどのインフラストラクチャの機能を利用して、ユーザに所定の機能を提供するアプリケーションを構築する。
 クラウドコンピューティングを実現する主要な要素技術は、サーバやストレージなどの仮想化技術である。この仮想化技術では、CPUやハードディスクなどの物理的なハードウェア資源(物理マシン)の区分と、仮想的に割り当てられるCPUコア数やストレージ量などの論理的なハードウェア機能(仮想マシン)の区分とが分離される。
 昨今のWebアプリケーション設計・開発では、上述のハードウェアの物理的・論理的な区別を一体として扱ってきた。一方、クラウド環境などで使用されるアプリケーション開発では、分離された各部分がアプリケーション構成を作るための設計インタフェースとして切り出される。このため、仮想化技術を考慮したアプリケーション開発は、ハードウェアに区別を設けることなく設計されているWebアプリケーションに比べて設計インタフェースの数が大きく増える傾向にある。
特許第4104622号 特許第4319007号
Albert Albers,Korkiat Sedchaicharn,Christian Sauter,Wolfgang Burger 著「A Method to Define A Product Architecture Early In Product Development Using A Contact and Channel Model」 ICED’09 24−27AUGUST 2009,STANFORD UNIVERSITY,P241−P252
 浸透しつつあるクラウドコンピューティング環境などにおいては、既存の確立された標準的なアーキテクチャを採用したアプリケーション構成の決定方法では、性能や保守などの考慮が不十分となりやすく、最適なアプリケーション設計が困難となっている。
 既存のアプリケーション設計では、性能や保守性を高めるために、基本的な設計指針として、複数の設計インタフェースのモジュール化を行っている。
 一方、仮想化・クラウド環境下では、ハードウェアとソフトウェアが分離独立されて運用されるため、両者を同時に考慮したアプリケーションアーキテクチャの設計が望まれる。
 しかし、従前の設計方法では、設計インタフェースを含めて、アプリケーションを適切にモジュール化することが困難である課題がある。
 なお、本明細書で記載するアプリケーションアーキテクチャとは、データの追加・更新などの処理の効率性や安全性などを考慮したソフトウェアおよびハードウェア構成である。また、アーキテクチャ設計とは、その構成を定義し、アプリケーションを構成するデータの格納場所、データを処理するモジュールの構成やその実行場所などを設計することである。
 クラウド環境で動作しているアプリケーションプログラム(クラウドアプリケーションプログラム)は、クラウド環境を提供するデータセンタ内に配備されたサーバ群やストレージ群の中から、仮想化された機能を必要に応じて呼び出して用いている。クラウドアプリケーション(サービス)は、多くの場合、アプリケーションを構成するモジュール群が複数の仮想マシンに分散配置されることやリモートのデータストアを利用することなどから、分散システムとなる。このため、クラウドアプリケーションプログラムは、分散システムに順応する必要がある。
 しかし、このようなアプリケーションアーキテクチュアの設計方法では、仮想化された機能を適宜呼び出す際に、その機能を構築するモジュールがどの物理的なハードウェア資源上で動作しているかなどを、設計・開発時に十分に考慮できない。設計上の困難性を作り出す原因の一つを例示する。クラウドサービスでは、複数の機能間、或いは複数のアプリケーション間で同一の物理的なハードウェア資源を共有する。このことがサービスを提供のために期待される機能の性能設計を困難にしている。
 そこで、発明者は、独自の考えに従い、公理的設計(Axiomatic Design)およびDfX(Degign for X)の設計学の考え方で、このようなアプリケーションのアーキテクチャ設計方法の単純化を行なう。
 公理的設計では、顧客要求、機能要求、設計パラメータ、プロセス変数の4つのドメインを定義する。そして、設計プロセスは、顧客要求:CA(Customer Attribute)→機能要求:FR(Functional Requirement)→設計パラメータ:DP(Design Parameter)→プロセス変数:PV(Process Variable)という順に進める。また、DfXは、性能や安全性など複数の設計観点を同時に扱う設計方法である。
 図14は、これらの考え方を1つに統合したモデルである。このモデルをクラウド環境で動作させるアプリケーションの設計方法に導入する。すなわち、クラウド環境で動作させるアプリケーションの設計プロセスをFR→DP1、DP1→DP2、DP2→PVの3つの段階に単純化する。
 前記の公理的設計では図14のように二次元のマトリクスを用い、CAの各要素とFRの各要素、FRの各要素とDPの各要素、DPの各要素とPVの各要素の関係を表記し、設計プロセスを形式的に表現することができる。
 ところで、マトリクスを用いて複雑化なシステム内の構成要素間の関係を単純化して可視化を行ない適切な設計の意思決定を支援する一手法として、複雑化するシステム構築を容易にするDSM(Dependency(Design)Structure Matrix)がある。
 DSMでは、製品を対象としたコンポーネントの機能分割や、人間系の組織を対象にしたチームの分割、情報の流れからアクティビティ分割、設計値のパラメータ関係からモジュールを分割することができる。DSMを用いる手法に関連する文献を例示すれば以下の文献が挙げられる。
 非特許文献1には、製品を対象としたコンポーネントの機能分割が示されている。本方法は、DSMを用いて製品を構成する機能間の依存関係を表現し、DSMの各セル値の入れ替えによって、最適な機能群の分割方法を導出している。しかしながら、当該文献に記載された方法は、製品機能に限定している。そのため、この方法を設計プロセスを通じたアーキテクチャの設計評価に用いることは困難である。
 また、特許文献1には、DSMを利用して製品開発プロセスにおける無駄をなくす方法が示されている。一般に製品設計において、機能要求から機能設計を行い、更に各機能のパラメータを設計するように、段階的に製品開発は進行する。本方法では、製品開発プロセスを課題設定しているものの、前述した製品開発プロセスのある時点において扱われる設計情報は対象としておらず、特定の時点における設計の最適化が困難である。また、本方式で示されているQFD(Quality Function Design)とDSMマトリクスは、行・列項目間の重み付けをつけている点に特長がある。しかし、機能従属の関係以外の観点で二項間の関係を評価することが困難であった。
 また、特許文献2には、DSMを利用して、開発工期を短縮するために開発上のアクティビティを最適化する方法が示されている。本方法は、特許文献1と同様に、開発プロセスを課題設定している。しかし、ある時点において扱われる設計情報を対象としたものではないので、特定の時点におけるアーキテクチャ設計の最適化に用いることは困難であった。
 仮想化・クラウド環境を対象としたアプリケーションの設計開発では、その論理的構成と物理的構成とを段階的に構築していくことが必要となる。しかし、上記文献に記載された技術を当てはめても仮想化を伴うアプリケーションアーキテクチャの設計を最適化することはできない。また、仮想化技術を使用するアーキテクチャ構造の設計にDSMを利用すること、またその利用の仕方について、何れの文献にも記載されていない。
 本発明は、前記の3段階に単純化した設計プロセスに沿って、仮想化環境やクラウド環境におけるアプリケーション設計において、アプリケーションアーキテクチャの良好な設計解を導出する方法を提供する。
 また、本発明では、性能、保守性、安全性、可用性、移行性などの多種の設計観点を考慮した上でアプリケーションプログラムを構成するモジュール群を導出する方法を提供する。
 また、本発明では、これらのモジュール群を実行環境へ良好に配備する構成(アーキテクチャ)を導出する方法を提供する。
 また、本発明は、仮想化環境やクラウド環境におけるアプリケーション設計において、アプリケーションアーキテクチャの設計解を導出する装置およびプログラムを提供する。
 本発明に係るアプリケーションアーキテクチャ設計システムは、アプリケーションプログラムを形成する機能を動作させるモジュール群、前記モジュール群を動作させる仮想マシン群、前記仮想マシン群を動作させる物理マシン群に関しての設計事項となる依存関係および設計アスペクトに関する情報を入力する入力部と、前記入力された依存関係および設計アスペクトに関する情報についてDSM形式の設計マトリクスの入れ替えを可能とすることによって、DSM形式上で前記モジュール群、仮想マシン群、及び物理マシン群に対するそれぞれの割当を段階的に再配置してアーキテクチャの適正化処理を図ると共に結果を出力する設計マトリクス最適化部とを含むことを特徴とする。
 また、本発明に係るアプリケーションアーキテクチャ設計方法は、アプリケーションプログラムを形成する機能を動作させるモジュール群、前記モジュール群を動作させる仮想マシン群、前記仮想マシン群を動作させる物理マシン群に関しての設計事項となる依存関係および設計アスペクトに関する情報を入力する段階と、前記入力された依存関係および設計アスペクトに関する情報についてDSM形式の設計マトリクスの入れ替えを行なうことによって、DSM形式上で前記モジュール群、仮想マシン群、及び物理マシン群に対するそれぞれの割当を段階的に再配置してアーキテクチャの適正化処理を図る段階とを含み、アーキテクチャの設計解を出力することを特徴とする。
 本発明によれば、仮想化環境やクラウド環境におけるアプリケーションアーキテクチャ設計において、良好なアプリケーションアーキテクチャの設計解を導出する方法を提供できる。
 また、本発明によれば、性能、保守性、安全性、可用性、移行性などの多種の設計観点を考慮した上でアプリケーションプログラムを構成するモジュールを導出する方法を提供できる。すなわち、プログラム設計開発時に決定するソフトウェア機能のモジュール化が判断しやすくなる。
 また、本発明によれば、これらのモジュール群を実行環境へ良好に配備できる構成(アーキテクチャ)を導出する方法を提供できる。すなわち、設計開発時に決定するアプリケーションの論理的・物理的配置場所が判断しやすくなる。
 また、本発明によれば、仮想化環境やクラウド環境におけるアプリケーション設計において、アプリケーションアーキテクチャの設計解を導出する装置を提供できる。
 図1は、実施の一形態のアプリケーションアーキテクチャ設計装置の構成を示すブロック図である。
 図2は、実施形態で用いる設計アスペクト情報の構成を例示する説明図である。
 図3は、設計マトリクスの構成を例示する説明図である。
 図4は、機能設計フェーズの処理を示すフローチャートである。
 図5は、モジュール配置設計フェーズの処理を示すフローチャートである。
 図6は、リソース配分設計フェーズの処理を示すフローチャートである。
 図7は、例としてクラウドコンピューティング環境上で使用するために構築を行なうアプリケーションプログラムの構成を示すブロック図である。
 図8は、設計アスペクト情報の一覧を例示する説明図である。
 図9は、マトリクスの再配置処理の一例を示す説明図である。
 図10は、設計マトリクスを用いた仮想マシンへのリソース配置に基づくアーキテクチャのモデル図である。
 図11は、設計マトリクスを用いた物理マシンへのリソース配置に基づくアーキテクチャのモデル図である。
 図12は、モデル図を表示する実装インタフェース例を示す説明図である。
 図13は、DSMマトリクスを表示する実装インタフェース例を示す説明図である。
 図14は、本発明の具現化の一例を示す構成図である。
 図15は、本発明の別の具現化の一例を示す構成図である。
 図16は、発明者による公理的設計及びDfXの考え方を用いてアプリケーションの設計を1つのモデルに統合して示したモデル図である。
 本発明の実施の一形態を図面に基づいて説明する。
 本実施の一形態では、クラウドアプリケーションのアーキテクチャ設計プロセスを3つのフェーズに分割して各フェーズにおける設計対象(モジュールの粒度や、割当、配分、配置など)を明確化する。分割する3つのフェーズは、機能モジュール設計フェーズ、モジュール配置設計フェーズ、リソース割当設計フェーズである。
 第1のフェーズである機能モジュール設計フェーズは、アプリケーションを構成する機能群とアプリケーションプログラムを構成するモジュール群との対応と、個々のモジュールの粒度とを決定する。
 第2のフェーズであるモジュール配置設計フェーズは、上記モジュール群と、各モジュールを配置する仮想マシン群(ネットワークリソース:論理リソース)との対応を決定する。
 第3のフェーズであるリソース配分設計フェーズは、上記仮想マシン群と、各仮想マシンを配置する物理マシン(物理リソース)との対応を決定する。
 本発明のアプリケーションアーキテクチャの設計方法は、この3フェーズに沿って、アプリケーションアーキテクチャの設計を実行する。また、このフェーズに沿って動作するように、設計装置およびプログラムを構成する。
 以下、アプリケーションアーキテクチャ設計方法を実行するアプリケーションアーキテクチャ設計装置100を示して、本発明を説明する。
 図1は、アプリケーションアーキテクチャ設計装置100の構成を示すブロック図である。
 図1に示すアプリケーションアーキテクチャ設計装置100は、依存関係入力部110と、設計アスペクト情報入力部120と、設計情報保管部130と、設計マトリクス配置計算部140と、機能モジュール設計マトリクス表示部150と、モジュール配置設計マトリクス表示部160と、リソース割当設計マトリクス表示部170とを含み構成されている。なお、本構成以外にも入力部などの一般的な構成を有する。
 依存関係入力部110と設計アスペクト情報入力部120は、設計事項入力部として動作する。設計事項入力部では、アプリケーションプログラムを形成するモジュール群、仮想マシン群、物理マシン群に関しての設計事項となる依存関係および設計アスペクトに関する情報の入力に使用する。
 機能モジュール設計マトリクス表示部150、モジュール配置設計マトリクス表示部160、およびリソース割当設計マトリクス表示部170は、設計マトリクス最適化部として動作する。設計マトリクス最適化部では、依存関係および設計アスペクトをそれぞれのレイヤーレベルでDSM形式のマトリクスとして表示すると共に、表示したマトリクスの行・列の入れ替えを可能とする。この入れ替えを行なうことによって、マトリクスの操作に対応するようにアーキテクチャ設計を設計マトリクス最適化部が変更処理する。
 すなわち、設計マトリクス最適化部を用いて、それぞれ適したマトリクス形状のパターン(モジュール化度合いなど)を選択することで、モジュール群、仮想マシン群および物理マシン群に対するそれぞれ上位レイヤのパーツが適切に割当てられたように配分・配置される。この配分・配置を繰り返すことにより、総じてアーキテクチャの最適化が図られる。
 また、上記3フェーズ(機能モジュール設計フェーズ、モジュール配置設計フェーズ、リソース割当設計フェーズ)を順に設計マトリクス最適化部で変更処理(最適化処理)の実行を行いう。この際、各フェーズの出力結果は、次フェーズへの入力情報とする。このことで、アーキテクチャ構造全体について、一体的且つ効率的にアーキテクチャ設計が行える。
 依存関係入力部110に入力される情報としては、考慮する2者間の関係を示す情報を含ませる。例えば、メソッドの呼出し元と呼出し先の関係のように直接的に機能呼出しの関係がある2者間の関係を示す情報や、複数の機能から構成するモジュールとその配置先のように直接的に物理的な関係がある2者間の関係を示す情報などである。
 また、設計アスペクト情報入力部120に入力される情報としては、以下のような情報を含ませる。
 −性能(データトランザクションの関連性,ファイル書き込みの共有,...)
 −保守性(更新時の同時停止の要否,オーナーの違いの有無,...)
 −安全性(データの隔離の要否,VM間の隔離の要否,...)
 −可用性(停止範囲の関連性,フォールトトレラントの必要,...)
 −移行性(ミドルウェア更新時の影響の関連,モジュールホットアップデートの要否,...)
 設計情報保管部130は、入力とする依存関係と設計アスペクトの情報を受けて記憶保管し、また、各再配置(最適化)を終えて生成された設計マトリクス情報を記憶保管する。
 設計マトリクス配置計算部140は、各種アルゴリズムを用いて、受け付けた各設計マトリクスの行/列の配置を、所定のパターンに近づけるように自動変更処理(再配置)させて、その結果を返す。
 次に、アプリケーションアーキテクチャ設計装置100の動作について、図2、図3、図4、図5、図6を用いて説明する。
[第1のフェーズ]
 まず、第1のフェーズとして、アプリケーションの提供に用いるアプリケーションプログラムのモジュール構成を決定するための機能モジュール設計フェーズを実行する。
 まずアプリケーションを構成する機能群と、機能間の呼び出し関係とを依存関係として依存関係入力部110に入力する(図4のS111)。
 次に、データトランザクションに関する性能要件などアプリケーションのロジックとして特定の機能間に関連がある場合には、それらの情報を設計アスペクト情報200として設計アスペクト情報入力部120に入力する(S112、図2参照)。なお、入力される設計アスペクト情報には、図2に例示するように、”機能依存関係”、”性能”、”セキュリティ”、”保守性”、”保全性”、”拡張性”、”可用性”、”移行性”などの多種の設計観点と共に、個々の観点に重要度を割当てることができる。
 図2に示す本例では、モジュール1に割当てる機能のうち、”性能”について機能A、機能B、機能Hが関連し、”セキュリティ”について機能A、機能B、機能Cが関連することを示している。また、”保守性”や”拡張性”についても同様である。これら設計観点は、設計アスペクト情報の入力者(アーキテクト)の知見に基づいて入力される。
 また、それぞれの性能観点について、入力者が適に重要度を与える。図2の“性能”についての設計観点を用いて説明すれば、機能Aと機能B、機能Bと機能H、機能Aと機能Hの関係について、“機能依存関係”の重要度が加味される。この機能間の依存関係に与える重要度は、例えば、機能間の直接的な呼び出し関係などを加味して与える値である。
 図2の例では、それぞれの設計観点の重要度について、”機能依存関係”には0.1、”性能”には0.3、”セキュリティ”には0.2、”保守性”には0.3、”拡張性”には0.1を与えている。
 また、アーキテクトは、このとき要件毎に与えた重要度の全体が1.0になるよう重要度の値を入力することが望ましい。
 なお、図示したように全体に与える値(例えば機能依存関係:0.1)とは別に、特定の機能間に与える値を加えることとしてもよい。アプリケーションアーキテクチャ設計装置は、与えられた各値を、図3に示すように設計マトリクスのセルに設定する。
 設計情報保管部130は、S111、S112で入力された情報を受け付けて設計マトリクス情報として保管する(S113)。
 機能モジュール設計マトリクス表示部150は、設計情報保管部130に保管された設計マトリクス情報を用いてDSM方式のマトリクス(機能モジュール設計マトリクス)を表示する(S114、図3参照)。この処理が行われることで、図3に示すように、機能モジュール設計マトリクスには、それぞれのセルに重要度の値が割当てられて、機能とモジュールの対応が表示される。ここでの重要度とは、設計アスペクト情報として割当てられた図2に記載された重要度に基づき、それぞれのモジュール間の依存度を加味しつつ算出される。
 このDSM方式に基づくマトリクスの可視化により、S111、S112で入力した情報の十分性を確認し、見直しが必要な場合にはS111に戻る。見直しが不要で、機能分割が適正になされている場合には、その内容を設計マトリクス情報として設計情報保管部130に出力した後、表示を終了する。また、可視化したマトリクスに基づき再配置を行う場合には、S121に進む(S115)。なお、十分性の判断では、DSMマトリクスを参照して、配列の対角ラインを基準としたモジュールの配置位置や、各モジュールに含まれる値の合計値などを参照すればよい。この十分性の確認によって、例えばモジュール相互の統合や、モジュールの重要性、モジュールの粒度などが判断できる。
 機能モジュール設計マトリクスの再配置計算を行う場合、機能モジュール設計マトリクス表示部150は、再配置の指示入力を受けつけて表示した各情報の相互関係を維持しつつマトリクスの行および列の置換処理(再配置)を行った設計マトリクス情報を計算して再配置が反映された状態に変更して設計情報保管部130に登録処理する(S121)。
 ここで、行・列の配置変換による機能とモジュールとの対応付けの適正化(個々のモジュールの粒度決定などの決定)は、マトリクスを利用者自身が手動で操作してもよい。このとき、設計マトリクスをモジュール化(ブロック化)を進めることによってアーキテクチャの適正化が図れる。DSMの最適なモジュール分割は、配列の斜めラインに寄せて配置されかつ各モジュールに含まれる値の合計値が最大に近づけるような、戦略をとるとよい。
 他方、行・列の数が多い場合には、各設計マトリクスの行/列の再配置に基づき設計開発の適正解を自動的に算定する設計マトリクス配置計算部140を用いることで、より有効に適正解を導出できる。適正解の自動算定は、遺伝的アルゴリズムを利用できる。また、他のアルゴリズムを使用することも可能である。当該自動化によって、入力された設計マトリクス情報に好適なアーキテクチャのモデル図(設計図)が得られる。適正解の自動算定でも、手動で適正解を求める際と同様に、使用する適正化アルゴリズムを実行するプログラムによって、配列の斜めに配置されかつ各モジュールに含まれる値の合計値が最大になるようなパターン(マトリクスの形状と密度)を導出するなどとすればよい。なお、導出するパターンは、1種類に限らずとも複数種類のパターンを導出させてもよい。
 機能モジュール設計マトリクス表示部150は、再配置計算された設計マトリクス情報を用いて再配置計算後の機能モジュール設計マトリクスを表示する(S122)。なお、機能モジュール設計マトリクス表示部150は、再配置計算後のマトリクス表示の際に、再配置前後の機能モジュール設計マトリクスを対比できるように表示するように構成してもよい。
 以上の第1のフェーズにより、アプリケーションプログラムのモジュール構成(担当機能や粒度など)が定まる。すなわち、機能モジュール設計マトリクスを参照することで、性能、保守性、安全性、可用性、移行性、機能間の依存関係などの設計観点を識別でき、再配置によってこれら設計観点を考慮した良好なモジュール構成を導出できる。
 この結果、設計開発時に決定するソフトウェア機能のモジュール化が判断しやすくなる。なお、個々のモジュール開発は、下記のフェーズによって全体の適正化が行われた後に行なわれることとなる。
[第2のフェーズ]
 次に、第2のフェーズとして、上述したように決定したアプリケーションのモジュール構成に対して、そのモジュール群の論理的配置を決定するためのモジュール配置設計フェーズを実行する。
 まずアプリケーションを構成するモジュール群と、モジュール間の呼び出し関係とを依存関係として依存関係入力部110に入力する(図5のS211)。
 次に、可用性・保守性・移行性・安全性などの要件(設計観点)で特定のモジュール間に関連がある場合には、これらを設計アスペクト情報200として設計アスペクト情報入力部120に入力する(S212、図2参照)。
 設計情報保管部130は、S211、S212で入力された情報を受け付けて設計マトリクス情報として保管する(S213)。
 モジュール配置設計マトリクス表示部160は、設計情報保管部130に保管された、設計マトリクス情報を用いてDSM方式のマトリクス(モジュール配置設計マトリクス)を表示する(S214)。
 このDSM方式に基づくマトリクスの可視化により、S211、S212で入力した情報の十分性を確認し、見直しが必要な場合には、S211に戻る。見直しが不要で、モジュール配置が適正になされている場合には、その内容を設計マトリクス情報として設計情報保管部130に出力した後、表示を終了する。また、可視化したマトリクスに基づき再配置を行う場合には、S221に進む(S215)。なお、本フェーズでの十分性の判断でも、先のフェーズ(機能モジュール設計フェーズ)での判断と同様の基準(配置や合計値など)を用いておこなうこととすればよい。
 モジュール配置設計マトリクスの再配置計算を行う場合、モジュール配置設計マトリクス表示部160は、再配置の指示入力を受けつけて表示した各情報の相互関係を維持しつつマトリクスの行および列の置換処理(再配置)を行った設計マトリクス情報を計算して再配置が反映された状態に変更して設計情報保管部130に登録処理する(S221)。
 ここで、行・列の配置変換によるモジュールと論理リソースとの対応付けの適正化(論理リソースへのモジュール配置とその密度の決定など)は、設計マトリクスを利用者自身が手動で操作して、モジュール配置(ブロック化)を進めることとしてもよい。このとき、設計マトリクスをモジュール化(ブロック化)を進めることによってアーキテクチャの適正化が図れる。DSMの最適なモジュール配置は、配列ラインの斜めに配置されかつ各モジュールに含まれる値の合計値が最大になるような戦略をとるとよい。
 また、設計マトリクス配置計算部140を用いて適正解を導出してもよい。適正解の自動算定は、上記機能モジュール設計フェーズと同様に行える。当該自動化によって、入力された設計マトリクス情報に好適なアーキテクチャのモデル図(設計図)が得られる。なお、マトリクスのパターンは、複数種類のパターンを導出することとしてもよい。また、マトリクスのパターンは、先のフェーズで導出した個々のモジュールのマトリクス上での合計値の重心が均一化されるように導出するようにてもよい。このようにモジュールの重心を均一化することで、設計アスペクト情報として入力した重要度に基づく個々のモジュールの仮想化マシンへの分布の平均化が図れる。この平均化によって、クラウド環境での各処理の平坦化が期待できる。
 モジュール配置設計マトリクス表示部160は、再配置計算された設計マトリクス情報を用いて再配置計算後のモジュール配置設計マトリクスを表示する(S222)。なお、モジュール配置設計マトリクス表示部160は、再配置計算後のマトリクス表示の際に、再配置前後のモジュール配置設計マトリクスを対比できるように表示するように構成してもよい。また、モジュール配置設計マトリクス表示部160は、モジュール配置設計マトリクスと共に機能モジュール設計マトリクスを表示するようにしてもよい。
 以上の第2のフェーズにより、先のフェーズで導出した個々のモジュールの実行環境とする論理装置への配置が定まる。すなわち、機能モジュール設計マトリクスを参照することで、設計開発時に決定するアプリケーションモジュールの論理的配置場所が判断しやすくなる。
[第3のフェーズ]
 次に、第3のフェーズとして、上述したように決定したモジュールの論理装置に対して、モジュールが配置された論理リソース群の物理的配置を決定するためのリソース割当設計フェーズを実行する。
 まずアプリケーション間の呼び出し関係を依存関係として依存関係入力部110に入力する(図6のS311)。
 次に、性能の要件などに基づき、特定のモジュール間(モジュールを搭載する論理リソース間)に関連を持たせる場合には、これらを設計アスペクト情報200として設計アスペクト情報入力部120に入力する(S312)。
 設計情報保管部130は、S311、S312で入力された情報を受け付けて設計マトリクス情報として保管する(S313)。
 リソース割当設計マトリクス表示部170は、設計情報保管部130に保管された設計マトリクス情報を用いてDSM方式のマトリクス(リソース割当設計マトリクス)を表示する(S314)。
 このDSM方式に基づくマトリクスの可視化により、S311、S312で入力した情報の十分性を確認し、見直しが必要な場合にはS311に戻る。見直しが不要で、モジュール配置が適正になされている場合には、その内容を設計マトリクス情報として設計情報保管部130に出力した後、表示を終了する。また、可視化したマトリクスに基づき再配置を行う場合には、S321に進む(S315)。なお、十分性の判断は、先のフェーズと同様に行えばよい。
 リソース割当設計マトリクスの再配置計算を行う場合、リソース割当設計マトリクス表示部170は、再配置の指示入力を受けつけて表示した各情報の相互関係を維持しつつマトリクスの行および列の置換処理(再配置)を行った設計マトリクス情報を計算して再配置が反映された状態に変更して設計情報保管部130に登録処理する(S321)。
 ここで、行・列の配置変換による論理リソースと物理リソースとの対応付けの適正化(物理リソースへの仮想マシンの配置とその密度の決定など)は、先のフェーズと同様に、設計マトリクスを利用者自身が手動で操作して、モジュール化を進めることとしてもよいし、設計マトリクス配置計算部140を用いて適正解を導出してもよい。このように、設計マトリクスをモジュール化(ブロック化)を進めることによってアーキテクチャの適正化が図れる。
 適正解の自動算定は、上記両設計フェーズと同様に行える。当該自動化によって、入力された設計マトリクス情報に好適なアーキテクチャのモデル図(設計図)が得られる。なお、マトリクスのパターンは、複数種類のパターンを導出することとしてもよい。また、マトリクスのパターンは、先のモジュール配置フェーズで導出した個々の論理リソースのマトリクス上での合計値の重心が均一化されるように導出するようにしてもよい。このように論理リソースの重心を均一化することで、論理リソースを介しても設計アスペクト情報として入力した重要度に基づく個々のモジュールに起因する物理マシンへの分布の平均化や処理の平坦化が期待できる。
 リソース割当設計マトリクス表示部170は、再配置計算された設計マトリクス情報を用いて再配置計算後のリソース割当設計マトリクスを表示する(S322)。なお、リソース割当設計マトリクス表示部170は、再配置計算後のマトリクス表示の際に、再配置前後のリソース割当設計マトリクスを対比できるように表示するように構成してもよい。また、リソース割当設計マトリクス表示部170は、リソース割当設計マトリクスと共に先の両フェーズでのマトリクスを表示するようにしてもよい。
 以上の第3のフェーズにより、先のフェーズで導出した個々の論理リソースを実行環境とする物理装置(物理リソース)に対する割当位置を好適に定められる。
 以上のように、アプリケーションアーキテクチャ設計装置100において、仮想化環境やクラウド環境におけるアプリケーションアーキテクチャの良好な設計解を導出できる。
 以下に、具体的な事例を用いて上記実施の一形態について、図7、図8、図9、図10、図11、図12、図13を用いて説明する。
 図7に例とするクラウドコンピューティング環境上に構築を予定するアプリケーションプログラムの構成を示す。このクラウドアプリケーションプログラムは、ネットワーク上に配置されたサーバ機器のログ情報を一定期間ごとに収集して、データベースに保管する。
 また、このクラウドアプリケーションプログラムは、ユーザとのインタフェースとして、Web画面(インタフェース)を構築する。ネットワークを介してユーザからキーワード検索のリクエストを受け付けると、このクラウドアプリケーションプログラムは、保管されたデータベースからデータを読み出してキーワードを含むログを抽出し、その件数をカウントしてWeb画面として提示する。
 このようなアプリケーションが有する機能としては、まず、ログ収集機能、スケジュール機能、ログ書き込み機能、データ保管機能、次に、リクエスト入力機能、リクエスト分析機能、データキャッシュ機能、データ検索機能、検索結果カウント機能、カウント結果出力機能が挙げられる。
 先ず、アーキテクトは、アプリケーションアーキテクチャ設計装置100に、前述の機能間の呼び出し関係を依存関係入力部110から入力する。
 ここでは、設計アスペクト情報入力部120では、図8に示すような設計観点を示すリストから、パフォーマンス(性能)とセキュリティ(安全性)に関するアスペクトを選択して、設計アスペクト情報を入力する。
 次に、アーキテクトは、パフォーマンス観点の要件として、ログ収集機能とログ書き込み機能は連続して実行することが望ましいことと、ログ書き込み機能とデータ保管機能は一体となって連続実行されることを、設計アスペクト情報入力部120に設計アスペクト情報の一項目として入力する。同様に、アーキテクトは、パフォーマンス観点の他の要件や、他の観点の各項目を入力する。なお、当該入力情報は、アーキテクトの手入力に限定されるわけではなく、データベースとして過去に蓄積済みの設計アスペクト情報などから引用することとしてもよい。
 また、アーキテクトは、この設定を行なう際に、要件毎に入力する重要度の値を、総和が1.0になるよう重要度を入力することが望ましい。重要度の設定例は、図2に示している。図2の設定例では、機能依存関係を0.1、パフォーマンスを0.3、セキュリティを0.2、保守性を0.3、拡張性を0.1に調整して、総和を1.0にしている。
 入力された依存関係と設計アスペクトの情報を受けて設計情報保管部130では、設計マトリクス情報として保管される。また、設計情報保管部130によって、設計アスペクト情報で指定された機能間には、その設計アスペクトの重要度の値を加える。
 各情報の入力を受けて、アプリケーションアーキテクチャ設計装置100は、自動的又はアーキテクトの指示に基づき、機能モジュール設計マトリクス表示部150を動作させて、設計情報保管部130に登録されている設計マトリクス情報を読み出して、DSM形式に各モジュールに割当てる機能と割当てられるモジュールの対応関係が反映された機能−モジュールを示す設計マトリクスを表示して、アーキテクトに提示する。
 ここで、機能モジュール設計マトリクスの適正化を行い、性能を考慮した機能分割を反映したモジュールを算定する。
 人為的に行なう場合は、アーキテクトによる設計マトリクスの操作を受け付け、設計マトリクス(設計マトリクス情報)を再計算(再構築処理)し、その結果の機能モジュール設計マトリクスを適宜表示する。
 また、自動化して行なう場合は、設計マトリクス配置計算部140からの再配置の入力を受けつけて自動的に設計マトリクス(設計マトリクス情報)を再計算(再構築処理)し、その結果の1ないし複数の機能モジュール設計マトリクスを表示する。
 アーキテクトは、機能モジュール設計マトリクス表示部150に適時出力された設計マトリクスを視認することで、見直しの有無やその設計の適否を視認する。また、再配置前後の設計マトリクスを対比可能なように表示するようにしてもよい。また他のマトリクスと対応付けや、各モジュールの密度や重心を視覚効果として表示してもよい。
 図9には、マトリクスの再配置の一例を示す。アーキテクト又は設計マトリクス配置計算部140は、行および列をそれぞれ移動して、対角線(黒塗りのセル)および左下方向に値を持つセルが多く並び大きなモジュール(セルの集合:ブロック)を形成するように再配置する。このDSM表記上のモジュールの大きさが、プログラムのモジュールの粒度の単位と成る。なお、図9では各セルを0,1の二値で記載している。他方、図3に示す様に各セルが0,1の二値ではなく0から1の間の重みを付けている場合には、上記したように、ブロック中の合計値が大きくなる組合せを適切なものとすればよい。
 第一のフェーズでの再配置後のモジュール構成として、例えば次のような分割結果が得られたとする。
(1)ログ収集機能、ログ書き込み機能
(2)スケジュール機能
(3)データ保管機能、データ検索機能
(4)リクエスト入力機能、カウント結果出力機能
(5)リクエスト分析機能、データキャッシュ機能
   ※(1)~(5)は、個々のモジュールを指す
 次に、第二のフェーズとして上記の各モジュールを仮想マシンに配置する。
 ここでは、設計アスペクト情報入力部120には、保守性・安全性・可用性・移行性などに関するアスペクトを次のように入力する。
 保守性の観点から、(1)ログ収集機能、ログ書き込み機能と(2)スケジュール機能とは同じ仮想マシン上で管理するのが望ましい。同様に、保守性の観点から、(3)データ保管機能、データ検索機能と(4)リクエスト入力機能、カウント結果出力機能とは同じ仮想マシン上で管理するのが望ましい。これらの情報を保守性の要件として入力するとともに、他の要件(拡張性や保守性など)も入力する。なお、当該アスペクトの入力は、フェーズ開始時や先のフェーズ時に行なってもよいし、追加的に行なってもよく、適宜行えばよい。
 各情報の入力を受けて、アプリケーションアーキテクチャ設計装置100は、モジュール配置設計マトリクス表示部160を動作させて、設計情報保管部130に登録されている設計マトリクス情報を読み出して、DSM形式にモジュールが個々に動作する仮想マシンに対する各モジュールのモジュール配置を示す設計マトリクスを表示して、アーキテクトに提示する。
 ここで、モジュール配置設計マトリクスの適正化を行い、各要件を反映したモジュールの仮想マシンへの配置を算定する。
 人為的に行なう場合は、アーキテクトによる設計マトリクスの操作を受け付け、設計マトリクスを再計算し、その結果のモジュール配置設計マトリクスを適宜表示する。
 また、自動化して行なう場合は、設計マトリクス配置計算部140からの再配置の入力を受けつけて自動的に設計マトリクスを再計算し、その結果の1ないし複数のモジュール配置設計マトリクスを表示する。
 アーキテクトは、モジュール配置設計マトリクス表示部160に適時出力された再配置前後の設計マトリクスを視認することで、見直しの有無やその設計の適否を視認する。
 これにより、再配置後のモジュール構成として、例えば、次のようなリソース配置結果が得られ、図10で示すような設計のモデル図を出力することができる。得られたモデル図は、適時又はアーキテクトの指示のもと、インタフェース上に提示すればよく、また、他の情報と連係させることが望ましい。
 仮想マシン1:(1)ログ収集機能、ログ書き込み機能、(2)スケジュール機能
 仮想マシン2:(3)データ保管機能、データ検索機能、(4)リクエスト入力機能、カウント結果出力機能
 仮想マシン3:(5)リクエスト分析機能、データキャッシュ機能
   ※(1)~(5)は、個々のモジュールを指す
 次に、第三のフェーズとして上記の仮想マシンを物理マシン上に配置する。
 ここでは、設計アスペクト情報入力部120には、性能などに関するアスペクトを次のように入力する。
 上記仮想マシン1から3は、他のサービスで用いられる仮想マシンとの干渉を考慮し、実際に仮想マシンを動かす物理マシンの決定を容易にする。
 上記仮想マシン1から3は、ディスクIOが多い他のアプリケーションとは分離させる。
 これらの情報を性能の要件として入力するとともに、他の要件(拡張性や保守性など)も入力する。なお、当該アスペクトの入力は、フェーズ開始時や先のフェーズ時、再配置後に追加的に適宜行えばよい。
 各情報の入力を受けて、アプリケーションアーキテクチャ設計装置100は、リソース割当設計マトリクス表示部170を動作させて、設計情報保管部130に登録されている設計マトリクス情報を読み出して、DSM形式に個々の仮想マシンが動作する物理マシンに対する各仮想マシンの割振りとなるリソース割当を示す設計マトリクスを表示して、アーキテクトに提示する。
 ここで、リソース割当設計マトリクスの適正化を行い、各要件を反映した仮想マシン1~3の物理マシンへの配置を算定する。
 人為的に行なう場合は、アーキテクトによる設計マトリクスの操作を受け付け、設計マトリクスを再計算し、その結果のリソース割当設計マトリクスを適宜表示する。
 また、自動化して行なう場合は、設計マトリクス配置計算部140からの再配置の入力を受けつけて自動的に設計マトリクスを再計算し、その結果の1ないし複数のリソース割当設計マトリクスを表示する。
 アーキテクトは、リソース割当設計マトリクス表示部170に適時出力された再配置前後の設計マトリクスを視認することで、見直しの有無やその設計の適否を視認する。
 これにより、再配置後の仮想マシンの配置構成として、例えば、次のような配置計画が得られ、図11で示すような設計のモデル図を出力することができる。得られたモデル図は、適時又はアーキテクトの指示のもと、インタフェース上に提示すればよく、また、他の情報と連係させることが望ましい。
物理マシン1:仮想マシン1、仮想マシン2
物理マシン2:仮想マシン3
 ここまでの各フェーズを行なうことで、図11に示すように、個々の物理マシンに導入すべき仮想マシンおよびモジュール群が好適なアーキテクチャで導出できる。
 次に、アーキテクトに対して提示するインタフェース(画面)を例示する。
 図12は、設計後のアーキテクチャを確認するインタフェース例である。この例では、設計マトリクスを用いて行った3つのフェーズによって得られた2つのモデル図を上ウインドに、選択された部分の適正化後の設計マトリクスを下ウインドに表示される画面構成を採用している。なお、本発明は、このインタフェースに限定されるものではなく、アーキテクトの操作性や利便性を考慮して適宜同時表示する情報を選択すればよい。
 図13は、アプリケーションアーキテクチャ設計装置100での設計マトリクスの自動的最適化を行なう時に用いるインタフェース例である。この例では、上ウインドに適正化前、下ウインドに適正化後が表示される構成であり、操作者からアナライズボタンへの入力を受けて、設計マトリクス計算部140で設計マトリクスの適正化が行われて、その結果が下ウインドに表示されている。図中からわかるように、再配置前に多数のモジュールを、再配置によってモジュールを統合できる良好な設計解を導出している。この導出した設計解に基づいて設計を再考することで、より良い仮想化環境やクラウド環境におけるアプリケーション設計が行える。また、その際に、図中の密度表示(下ウインド参照)で表しているように、設計アスペクトとして入力した性能や保守性、安全性・・・などの多種の設計観点を可視的に一体的に確認できる。このことにより、効率的に良好な設計解を導き出せる。
 以上説明したように、本発明を適用したアプリケーションアーキテクチャ設計装置によれば、仮想化環境やクラウド環境におけるアプリケーション設計時に、アプリケーションアーキテクチャのより良い設計解を容易且つ均一的に導出できる。また、各設計マトリクスを用いることで、アーキテクチャの客観的な評価にも役立てることできる。
 具体的に例示すれば、ソフトウェア機能の性能観点などによるモジュールの規模の策定、割当機能の決定が判断しやすくなる。これは、機能モジュール設計マトリクスの適正化を用いることにより、性能を考慮した機能分割が容易と成るからである。
 同様に、モジュール配置設計マトリクスにより、拡張性や保守性の要件を充たしたモジュールの配置方法が容易となる。
 また、アプリケーション配置場所(どの地域やどのデータセンタを用いるなど)が判断しやすくなる。これは、リソース割当設計マトリクスにより、仮想マシン間の依存関係が分かり、運用管理者によるクラウドサービスで用いる仮想マシンをどの物理マシン上で動かすことが適しているのかが分かり、計画を立て易くなるためである。
 また、アプリケーションアーキテクチャ設計装置によれば、DSM形式で表示された各設計マトリクスの行/列の再配置に基づく設計開発の適正解を自動化して利用者に提供できる。当該自動化によれば、入力した設計アスペクト情報と依存関係とに基づき、性能、保守性、安全性、可用性、移行性などの設計観点を所望のように考慮した、アプリケーションのモジュール構成、仮想マシンへのモジュール配置、および物理マシンへの仮想マシン配置を示してくれる。また、各観点に対する重要度を反映させた各フェーズ毎の複数のモデル図を容易に取得することが可能となる。
 尚、アプリケーションアーキテクチャ設計装置の各部は、ハードウェアとソフトウェアの組み合わせを用いて実現すればよい。ハードウェアとソフトウェアとを組み合わせた形態では、RAMにアプリケーションアーキテクチャ設計プログラムが展開され、当該プログラムに基づいて制御部(CPU)等のハードウェアを動作させることによって、各部を各種手段として機能させる。また、このプログラムは、固定的に記録媒体に記録されて頒布されても良い。当該記録媒体に記録されたプログラムは、有線、無線、又は記録媒体そのものを介して、メモリに読込まれ、制御部等を動作させる。尚、記録媒体を例示すれば、オプティカルディスクや磁気ディスク、半導体メモリ装置、ハードディスクなどが挙げられる。
 また、アプリケーションアーキテクチャ設計装置は、図14や図15に例示すように、コンピュータ単体として構築してもよいし、サーバ−クライアントシステムとして構築してもよい。
 上記実施の形態を別の表現で説明すれば、アプリケーションアーキテクチャ設計装置として動作させる情報処理装置を、RAMに展開されたアプリケーションアーキテクチャ設計プログラムに基づき、依存関係入力部、設計アスペクト情報入力部、設計情報保管部、設計マトリクス配置計算部、機能モジュール設計マトリクス表示部、モジュール配置設計マトリクス表示部、リソース割当設計マトリクス表示部として制御部を動作させることで実現することが可能である。当該情報処理装置は、設計情報保管部に蓄積された各時点の設計マトリクス情報を各種設定要件などとともに出力部(プリンタなど)から出力する。また、情報処理装置の画面には、機能モジュール設計フェーズ、モジュール配置設計フェーズ、リソース割当設計フェーズの3時点の設計マトリクス情報を関連付けて反映させた3DSMマトリクスを表示できるようにしてもよい。また、各DSMマトリクスと関連付けて、入力された依存関係や設計アスペクトをモデル化したアーキテクチャのモデル図を表示するようにしてもよい。また、表示したモデル図を操作することによって、依存関係や設計アスペクトについて修正できるようにしてもよい。これらのモデル図は、各段階で行われるDSM形式の設計マトリクスと連係させ、また、再配置前と再配置後の設計マトリクスについて、適宜表示できるようにインタフェース画面を作ることが望ましい。これらのことを行なうことで、設計アスペクトとして入力される項目ごとの重要度がアーキテクチャ設計の適正化により有効に寄与することとなる。
 また、本発明の具体的な構成は前述の実施の形態に限られるものではなく、この発明の要旨を逸脱しない範囲の変更があってもこの発明に含まれる。
 本発明によれば、仮想化をも考慮したアプリケーションの設計が可能になることで、システム開発者が、サーバやストレージが仮想化されている環境に適したアプリケーションのモジュール構成や、仮想的配置、物理的配置を良好に設計することが可能となる。
 また、クラウドサービスなどの提供事業者は、アプリケーションの特性に合わせて、仮想マシンの割り当て方を最適化することが可能となる。
 また、クラウドサービスなどの提供事業者は、他のサービスで用いられる仮想マシンとの干渉を考慮して、実際に仮想マシンを動かす物理マシンの決定を容易に行なうことが可能となる。
 この出願は、2011年4月28日に出願された日本出願特願2011−101106号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 100 アプリケーションアーキテクチャ設計装置(システム)
 110 依存関係入力部(依存関係入力手段)
 120 設計アスペクト情報入力部(設計アスペクト情報入力手段)
 130 設計情報保管部(設計情報保管手段)
 140 設計マトリクス配置計算部(設計マトリクス配置計算手段)
 150 機能モジュール設計マトリクス表示部(機能モジュール設計マトリクス表示手段)
 160 モジュール配置設計マトリクス表示部(モジュール配置設計マトリクス表示手段)
 170 リソース割当設計マトリクス表示部(リソース割当設計マトリクス表示手段)

Claims (21)

  1.  アプリケーションプログラムを形成する機能を動作させるモジュール群、前記モジュール群を動作させる仮想マシン群、前記仮想マシン群を動作させる物理マシン群に関しての設計事項となる依存関係および設計アスペクトに関する情報を入力する段階と、
     前記入力された依存関係および設計アスペクトに関する情報についてDSM形式の設計マトリクスの入れ替えを行なうことによって、DSM形式上で前記モジュール群、仮想マシン群、及び物理マシン群に対するそれぞれの割当を段階的に再配置してアーキテクチャの適正化処理を図る段階と
    を含み、
     アーキテクチャの設計解を出力する
    ことを特徴とするアプリケーションアーキテクチャ設計方法。
  2.  複数の仮想マシン上で分散して動作するアプリケーションプログラムを構成する機能群と前記機能群の各機能間の依存関係を示す情報を入力する依存関係入力段階と、
     アプリケーションの提供にかかる各設計要件とその内容を示す情報を入力する設計アスペクト入力段階と、
     入力された依存関係と設計アスペクトの情報を受けて保管すると共に、各再配置を終えて生成された設計マトリクス情報を記憶する設計情報保管段階と、
     前記依存関係と設計アスペクトの情報を入力項目である設計マトリクス情報として、各モジュールに割当てる機能と割当てられるモジュールの対応関係が反映された機能−モジュールを示す設計マトリクスをDSM形式に表示すると共に、当該設計マトリクスの再配置の入力を受けつけて設計マトリクス情報に反映処理させて出力する機能モジュール設計マトリクス表示段階と、
     前記設計マトリクス情報を入力として、モジュールが個々に動作する仮想マシンに対する各モジュールのモジュール配置を示す設計マトリクスをDSM形式に表示すると共に、当該設計マトリクスの再配置の入力を受けつけて設計マトリクス情報に反映処理させて出力するモジュール配置設計マトリクス表示段階と、
     前記設計マトリクス情報を入力として、仮想マシンが個々に動作する物理マシンに対する各仮想マシンの割振りとなるリソース割当を示す設計マトリクスをDSM形式に表示すると共に、当該設計マトリクスの再配置の入力を受けつけて設計マトリクス情報に反映処理させて出力するリソース割当設計マトリクス表示段階と、
    を有する
    ことを特徴とするアプリケーションアーキテクチャ設計方法。
  3.  前記設計情報保管段階は、
     前記機能モジュール設計マトリクス表示段階を終えて生成された機能モジュール設計マトリクス情報が、モジュール配置設計マトリクスを表示する入力情報となり、
     前記モジュール配置設計マトリクス表示段階を終えて生成されたモジュール配置設計マトリクス情報が、リソース割当設計マトリクスを表示する入力情報となり、
     前記3つの設計マトリクスを、順次段階的に連携させる
    ことを特徴とする請求項2記載のアプリケーションアーキテクチャ設計方法。
  4.  更に、DSM形式で表示された各設計マトリクスの行/列の再配置に基づき設計開発の適正解を自動的に算定する設計マトリクス配置計算段階を有することを特徴とする請求項2または3に記載のアプリケーションアーキテクチャ設計方法。
  5.  前記設計アスペクトに対して個々の項目ごとに重要度を示す情報を与え、前記DSM形式のマトリクス上で他の項目との比較を示すように重要度に基づく適正化を可視化することを特徴とする請求項1ないし4の何れか一項に記載のアプリケーションアーキテクチャ設計方法。
  6.  各段階で行われるDSM形式の設計マトリクスの表示について、再配置前と再配置後の設計マトリクスについて、対比可能にインタフェース画面を出力することを特徴とする請求項1ないし5の何れか一項に記載のアプリケーションアーキテクチャ設計方法。
  7.  各段階で行われたDSM形式の設計マトリクスでの再配置を受けて、再配置後の設計マトリクスに基づいたモデル図を示したインタフェース画面を出力することを特徴とする請求項1ないし6の何れか一項に記載のアプリケーションアーキテクチャ設計方法。
  8.  アプリケーションプログラムを形成する機能を動作させるモジュール群、前記モジュール群を動作させる仮想マシン群、前記仮想マシン群を動作させる物理マシン群に関しての設計事項となる依存関係および設計アスペクトに関する情報を入力する入力部と、
     前記入力された依存関係および設計アスペクトに関する情報についてDSM形式のマトリクスの入れ替えを可能とすることによって、DSM形式上で前記モジュール群、仮想マシン群、及び物理マシン群に対するそれぞれの割当を段階的に再配置してアーキテクチャの適正化処理を図ると共に結果を出力する設計マトリクス最適化部と
    を含むことを特徴とするアプリケーションアーキテクチャ設計システム。
  9.  複数の仮想マシン上で分散して動作するアプリケーションプログラムを構成する機能群と前記機能群の各機能間の依存関係を示す情報を入力する依存関係入力部と、
     アプリケーションの提供にかかる各設計要件とその内容を示す情報を入力する設計アスペクト入力部と、
     入力された依存関係と設計アスペクトの情報を受けて保管すると共に、各再配置を終えて生成された設計マトリクス情報を記憶する設計情報保管部と、
     前記依存関係と設計アスペクトの情報を入力項目である設計マトリクス情報として、各モジュールに割当てる機能と割当てられるモジュールの対応関係が反映された機能−モジュールを示す設計マトリクスをDSM形式に表示すると共に、当該設計マトリクスの再配置の入力を受けつけて設計マトリクス情報に反映処理させて出力する機能モジュール設計マトリクス表示部と、
     前記設計マトリクス情報を入力として、モジュールが個々に動作する仮想マシンに対する各モジュールのモジュール配置を示す設計マトリクスをDSM形式に表示すると共に、当該設計マトリクスの再配置の入力を受けつけて設計マトリクス情報に反映処理させて出力するモジュール配置設計マトリクス表示部と、
     前記設計マトリクス情報を入力として、仮想マシンが個々に動作する物理マシンに対する各仮想マシンの割振りとなるリソース割当を示す設計マトリクスをDSM形式に表示すると共に、当該設計マトリクスの再配置の入力を受けつけて設計マトリクス情報に反映処理させて出力するリソース割当設計マトリクス表示部と、
    を有することを特徴とするアプリケーションアーキテクチャ設計システム。
  10.  前記設計情報保管部に保管される情報は、
     前記機能モジュール設計マトリクス表示段階を終えて生成された機能モジュール設計マトリクス情報を、モジュール配置設計マトリクスを表示する入力情報として、
     前記モジュール配置設計マトリクス表示段階を終えて生成されたモジュール配置設計マトリクス情報を、リソース割当設計マトリクスを表示する入力情報として、
     前記3つの設計マトリクスを、順次段階的に連携させるように使用される
    ことを特徴とする請求項9記載のアプリケーションアーキテクチャ設計システム。
  11.  DSM形式で表示された各設計マトリクスの行/列の再配置を行い設計開発の適正解を自動的に算定する設計マトリクス配置計算部を有することを特徴とする請求項9または10に記載のアプリケーションアーキテクチャ設計システム。
  12.  前記設計アスペクトに対して個々の項目ごとの重要度を示す情報を受けて、前記DSM形式のマトリクス上で他の項目との比較を示すように重要度に基づく適正化を可視化することを特徴とする請求項8ないし11の何れか一項に記載のアプリケーションアーキテクチャ設計システム。
  13.  各段階で行われるDSM形式の設計マトリクスの表示について、再配置前と再配置後の設計マトリクスを、対比可能にインタフェース画面を出力することを特徴とする請求項8ないし12の何れか一項に記載のアプリケーションアーキテクチャ設計システム。
  14.  各段階で行われたDSM形式の設計マトリクスでの再配置を受けて、再配置後の設計マトリクスに基づいたモデル図を示したインタフェース画面を出力することを特徴とする請求項8ないし13の何れか一項に記載のアプリケーションアーキテクチャ設計システム。
  15.  情報処理装置の制御部を、
     アプリケーションプログラムを形成する機能を動作させるモジュール群、前記モジュール群を動作させる仮想マシン群、前記仮想マシン群を動作させる物理マシン群に関しての設計事項となる依存関係および設計アスペクトに関する情報を入力する入力手段と、
     前記入力された依存関係および設計アスペクトに関する情報についてDSM形式のマトリクスの入れ替えを可能とすることによって、DSM形式上で前記モジュール群、仮想マシン群、及び物理マシン群に対するそれぞれの割当を段階的に再配置してアーキテクチャの適正化処理を図ると共に結果を出力する設計マトリクス最適化手段
    として動作させることを特徴とするプログラムを記録した記録媒体。
  16.  情報処理装置の制御部を、
     複数の仮想マシン上で分散して動作するアプリケーションプログラムを構成する機能群と前記機能群の各機能間の依存関係を示す情報を入力する依存関係入力部と、
     アプリケーションの提供にかかる各設計要件とその内容を示す情報を入力する設計アスペクト入力部と、
     入力された依存関係と設計アスペクトの情報を受けて保管すると共に、各再配置を終えて生成された設計マトリクス情報を記憶する設計情報保管部と、
     前記依存関係と設計アスペクトの情報を入力項目である設計マトリクス情報として、各モジュールに割当てる機能と割当てられるモジュールの対応関係が反映された機能−モジュールを示す設計マトリクスをDSM形式に表示すると共に、当該設計マトリクスの再配置の入力を受けつけて設計マトリクス情報に反映処理させて出力する機能モジュール設計マトリクス表示部と、
     前記設計マトリクス情報を入力として、モジュールが個々に動作する仮想マシンに対する各モジュールのモジュール配置を示す設計マトリクスをDSM形式に表示すると共に、当該設計マトリクスの再配置の入力を受けつけて設計マトリクス情報に反映処理させて出力するモジュール配置設計マトリクス表示部と、
     前記設計マトリクス情報を入力として、仮想マシンが個々に動作する物理マシンに対する各仮想マシンの割振りとなるリソース割当を示す設計マトリクスをDSM形式に表示すると共に、当該設計マトリクスの再配置の入力を受けつけて設計マトリクス情報に反映処理させて出力するリソース割当設計マトリクス表示部と、
    して動作させることを特徴とするプログラムを記録した記録媒体。
  17.  前記設計情報保管部に保管される情報を、
     前記機能モジュール設計マトリクス表示段階を終えて生成された機能モジュール設計マトリクス情報を、モジュール配置設計マトリクスを表示する入力情報として、
     前記モジュール配置設計マトリクス表示段階を終えて生成されたモジュール配置設計マトリクス情報を、リソース割当設計マトリクスを表示する入力情報として、
     前記3つの設計マトリクスを、順次段階的に連携させるように前記制御部を動作させる
    ことを特徴とする請求項16記載のプログラムを記録した記録媒体。
  18.  前記制御部を、DSM形式で表示された各設計マトリクスの行/列の再配置を行い設計開発の適正解を自動的に算定する設計マトリクス配置計算部として動作させることを特徴とする請求項17または18に記載のプログラムを記録した記録媒体。
  19.  前記設計アスペクトに対して個々の項目ごとの重要度を示す情報を受けて、前記DSM形式のマトリクス上で他の項目との比較を示すように重要度に基づく適正化を可視化させることを特徴とする請求項17ないし18の何れか一項に記載のプログラムを記録した記録媒体。
  20.  各段階で行われるDSM形式の設計マトリクスの表示について、再配置前と再配置後の設計マトリクスを、対比可能にインタフェース画面を出力させることを特徴とする請求項15ないし19の何れか一項に記載のプログラムを記録した記録媒体。
  21.  各段階で行われたDSM形式の設計マトリクスでの再配置を受けて、再配置後の設計マトリクスに基づいたモデル図を示したインタフェース画面を出力させることを特徴とする請求項15ないし20の何れか一項に記載のプログラムを記録した記録媒体。
PCT/JP2012/061154 2011-04-28 2012-04-19 アプリケーションアーキテクチャ設計方法、アプリケーションアーキテクチャ設計装置、および記録媒体 WO2012147825A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/114,446 US9626156B2 (en) 2011-04-28 2012-04-19 Application architecture design method, application architecture design system, and recording medium
JP2013512419A JP5988173B2 (ja) 2011-04-28 2012-04-19 アプリケーションアーキテクチャ設計方法、アプリケーションアーキテクチャ設計システム、およびプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011101106 2011-04-28
JP2011-101106 2011-04-28

Publications (1)

Publication Number Publication Date
WO2012147825A1 true WO2012147825A1 (ja) 2012-11-01

Family

ID=47072341

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/061154 WO2012147825A1 (ja) 2011-04-28 2012-04-19 アプリケーションアーキテクチャ設計方法、アプリケーションアーキテクチャ設計装置、および記録媒体

Country Status (3)

Country Link
US (1) US9626156B2 (ja)
JP (1) JP5988173B2 (ja)
WO (1) WO2012147825A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9904566B2 (en) 2013-06-27 2018-02-27 Nec Corporation Selecting virtual machine placement by computing network link utilization and link variance
JP2021081913A (ja) * 2019-11-18 2021-05-27 株式会社エクスモーション 情報処理装置、及び情報処理プログラム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9038025B1 (en) * 2012-05-24 2015-05-19 Allstate Insurance Company Technical interaction model
US9571564B2 (en) * 2012-08-31 2017-02-14 Hewlett Packard Enterprise Development Lp Network system for implementing a cloud platform
US10606586B2 (en) * 2017-08-01 2020-03-31 Accenture Global Solutions Limited Application architecture generation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005029382A2 (en) * 2003-09-19 2005-03-31 Lattix, Inc. Apparatus and method for managing design of a software system using dependency structure
JP2008140240A (ja) * 2006-12-04 2008-06-19 Hitachi Ltd 仮想サーバ分散配置方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4319007B2 (ja) 2003-10-31 2009-08-26 トヨタ自動車株式会社 開発工期短縮支援方法
JP4104622B2 (ja) 2005-10-14 2008-06-18 株式会社アイティアイディコンサルティング 製品開発プロセス支援システム及び製品開発プロセス支援方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005029382A2 (en) * 2003-09-19 2005-03-31 Lattix, Inc. Apparatus and method for managing design of a software system using dependency structure
JP2008140240A (ja) * 2006-12-04 2008-06-19 Hitachi Ltd 仮想サーバ分散配置方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SHIGERU HOSONO ET AL.: "A Lifetime Supporting Framework for Cloud Applications", PROCEEDINGS OF 2010 IEEE 3RD INTERNATIONAL CONFERENCE ON CLOUD COMPUTING, 5 July 2010 (2010-07-05), pages 362 - 369 *
SHIGERU HOSONO ET AL.: "Fast Development Platforms and Methods for Cloud Applications", PROCEEDINGS OF 2011 IEEE ASIA-PACIFIC SERVICES COMPUTING CONFERENCE, 15 December 2011 (2011-12-15), pages 94 - 101 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9904566B2 (en) 2013-06-27 2018-02-27 Nec Corporation Selecting virtual machine placement by computing network link utilization and link variance
JP2021081913A (ja) * 2019-11-18 2021-05-27 株式会社エクスモーション 情報処理装置、及び情報処理プログラム
JP7185614B2 (ja) 2019-11-18 2022-12-07 株式会社エクスモーション 情報処理装置、及び情報処理プログラム

Also Published As

Publication number Publication date
JPWO2012147825A1 (ja) 2014-07-28
JP5988173B2 (ja) 2016-09-07
US20140223410A1 (en) 2014-08-07
US9626156B2 (en) 2017-04-18

Similar Documents

Publication Publication Date Title
JP6937357B2 (ja) データ処理方法および関連製品
US11392843B2 (en) Utilizing a machine learning model to predict a quantity of cloud resources to allocate to a customer
Shahidinejad et al. An elastic controller using Colored Petri Nets in cloud computing environment
CN103873498B (zh) 云平台资源自适应预警方法与系统
CN101946258B (zh) 基于计算机的业务过程在专用硬件上的基于模型的部署
Dai et al. Optimal resource allocation on grid systems for maximizing service reliability using a genetic algorithm
JP5988173B2 (ja) アプリケーションアーキテクチャ設計方法、アプリケーションアーキテクチャ設計システム、およびプログラム
US20200125973A1 (en) Data Centre Utilisation Forecasting System And Method
CN104345974A (zh) 对输入数据记录集执行基于集成模型的预测的方法和系统
CN103677990B (zh) 虚拟机实时任务的调度方法、装置和虚拟机
US10200461B2 (en) Virtualized capacity management
Maheshwari et al. Workflow performance improvement using model-based scheduling over multiple clusters and clouds
CN111984385A (zh) 基于装饰bim模型的任务调度方法和任务调度装置
Tchernykh et al. Mitigating uncertainty in developing and applying scientific applications in an integrated computing environment
CN114089889B (zh) 模型训练方法、装置以及存储介质
Jrad et al. STRATFram: A framework for describing and evaluating elasticity strategies for service-based business processes in the cloud
Entezari-Maleki et al. Performability-based workflow scheduling in grids
US20230153659A1 (en) Decision simulator using a knowledge graph
Oh et al. Scheduling of build and post processes for decomposed parts in additive manufacturing
JP5871018B2 (ja) 性能予測装置、性能モデル生成方法およびプログラム
EP1221667A1 (en) Software tool for heuristic search methods
Dashti et al. Improving flexibility in cloud computing using optimal multipurpose particle swarm algorithm with auction rules
Nardelli QoS-aware deployment and adaptation of data stream processing applications in geo-distributed environments
EP3330854A1 (en) Automatic selection of infrastructure on a hybrid cloud environment
Popa et al. Adapting MCP and HLFET algorithms to multiple simultaneous scheduling

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013512419

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 14114446

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 12776526

Country of ref document: EP

Kind code of ref document: A1