WO2016017111A1 - 情報処理システム及びシステム設計方法 - Google Patents

情報処理システム及びシステム設計方法 Download PDF

Info

Publication number
WO2016017111A1
WO2016017111A1 PCT/JP2015/003653 JP2015003653W WO2016017111A1 WO 2016017111 A1 WO2016017111 A1 WO 2016017111A1 JP 2015003653 W JP2015003653 W JP 2015003653W WO 2016017111 A1 WO2016017111 A1 WO 2016017111A1
Authority
WO
WIPO (PCT)
Prior art keywords
resource
information
specific
component
workflow
Prior art date
Application number
PCT/JP2015/003653
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 JP2016537741A priority Critical patent/JPWO2016017111A1/ja
Publication of WO2016017111A1 publication Critical patent/WO2016017111A1/ja

Links

Images

Classifications

    • 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/44Arrangements for executing specific programs

Definitions

  • the present invention relates to a technique for designing a system composed of software and hardware.
  • Patent Literature 1 The technology for automatically designing the system is attracting attention, for example, in the field of synthesizing web services, and has been actively researched.
  • the techniques disclosed in Patent Literature 1, Patent Literature 2, and Patent Literature 3 are intended to create or combine services for satisfying functional requirements or non-functional requirements.
  • Patent Document 1 discloses a service creation method.
  • the service creation method identifies the requirements of web services by semantic analysis of natural language requirements.
  • the service creation method determines and orders web services based on the identified requirements for the web service.
  • the service creation method assembles ordered web services and makes them available to the user.
  • Patent Document 2 discloses an automatic workflow system that synthesizes components based on preconditions and postconditions for a business process.
  • the automated workflow system is an automated workflow system that executes business logic using a declarative language.
  • the automated workflow system then includes a process description that further includes flows, rules, and states.
  • the flow represents a control flow between business functions. That state represents a legal state transition for the business entity.
  • rules represent business rules and policies that are enforced on business entities in external form.
  • the automatic workflow system enables automatic synthesis based on functional requirements by describing the functional requirements as pre-conditions and post-conditions.
  • Patent Document 3 discloses a Web service construction management method.
  • the Web service construction management method creates service non-functional request information based on a non-functional request.
  • the Web service construction management method stores information on mounted function groups that can be combined based on the non-functional request.
  • the Web service construction management method creates service logic model information for realizing the request.
  • the Web service construction management method realizes the logical model based on the logical model information.
  • the Web service construction management method generates a program group including a mounting function group that can be combined with the non-functional request based on the mounting function group information.
  • the Web service construction management method stores the service non-function request information.
  • the Web service construction management method stores the program group.
  • the Web service construction management method interprets the non-functional request.
  • the Web service construction management method selects the mountable function group that can be combined, and configures an execution program from the program group.
  • the Web service construction management method executes the execution program.
  • the Web service construction management method realizes generation of a Web service logical model based on non-functional requirements.
  • Patent Document 4 and Patent Document 5 are techniques aimed at supporting the construction of an information system.
  • Patent Document 4 discloses an automatic synthesis method of an information system using semantics.
  • the automatic synthesis method semantically describes multiple computer system function sources as services in the computer system.
  • the automatic synthesis method segments the computer system into a plurality of programmable computer system execution stages.
  • the automatic synthesizing method has a step of dynamically configuring an executable task having the service in real time according to a task interface generated in a presentation layer which is an execution stage of the computer system.
  • Patent Document 5 discloses a development support apparatus that supports development of a system composed of a plurality of components.
  • the development support apparatus includes a database, calculation means, determination means, and prediction means.
  • the database stores resource usage for each component type of the existing system.
  • the calculation means calculates the distribution ratio of resource usage to multiple components of the development target system by comparing the resource usage stored in the database for components of the same type as each component of the development target system. To do.
  • the determining means allocates a resource usage amount that is within a range satisfying the allocation ratio to each component of the development target system.
  • the predicting means predicts the performance of the entire system when a plurality of transactions are executed simultaneously.
  • the determining means and the predicting means repeat re-allocating and predicting the resource usage within a range satisfying the allocation ratio until the prediction result satisfies the performance requirement.
  • the development support device searches for the resource usage of each component necessary to satisfy the performance requirement.
  • the development support apparatus realizes resource allocation decision support for a system composed of a plurality of components.
  • Patent Document 6 and Patent Document 7 are techniques for supporting the placement of virtual machines, and take into consideration functional requirements and non-functional requirements at the virtual machine level.
  • Patent Document 6 discloses a computer that manages a virtual machine in which computer resources are virtualized.
  • the computer includes a virtual machine deployment determination unit that manages a plurality of physical machines as physical machines for deploying the virtual machine.
  • the virtual machine deployment determining unit obtains the type of software operating on the virtual machine and setting information including the operation policy of the software. Second, the virtual machine deployment determining unit selects and determines a physical machine that is the deployment destination of the virtual machine from the plurality of physical machines based on the setting information.
  • the computer deploys a virtual machine to a physical machine in consideration of non-functional requirements.
  • Patent Document 7 discloses a method for providing a system and method for allocating resources in a cloud environment.
  • the method provides an abstraction layer between the cloud environment and one or more data centers by creating a virtual hypervisor as an application programming interface.
  • the method uses the virtual hypervisor in response to a workload request by the data center so that non-functional requirements of the workload are addressed at the level of abstraction using the virtual hypervisor. Partition resources.
  • the method instantiates a virtual machine in the data center.
  • the method performs abstraction for handling as a single cloud system by logically connecting in an independent cloud system that spans multiple data centers, and performs virtual processing based on non-functional requirements. Automatically derive machine deployment.
  • the non-functional requirement that can be used is a virtual machine unit, in principle, when a plurality of functions are assigned to the same virtual machine, it is not possible to derive an appropriate deployment.
  • Non-Patent Document 1 proposes the principle of the skyline method as an operation for extracting optimal data from a database having a large amount of data. Furthermore, Non-Patent Document 1 shows the result of an evaluation experiment in which the skyline method is executed on two-dimensional and multidimensional data for the effectiveness of the calculation.
  • an information system is constructed by a complex combination of software and resources.
  • the customer request is roughly classified into a function request and a non-function request.
  • the function request defines a function in the information system to be constructed. That is, the function request determines how and what output is presented for what input.
  • the non-functional requirement defines the extent to which the function should be achieved. For example, the non-functional requirement is given as various constraints such as processing time and construction cost for the assumed load.
  • the first technique is a technique for obtaining a combination of software and resources that operates correctly as a system.
  • the second technique is a technique for determining whether or not a selected combination satisfies a functional requirement and a non-functional requirement.
  • the third technique is a technique for optimizing the combination with respect to cost.
  • the configuration of the information system is a complex combination of software and resources. For this reason, the search space in the process of automatically constructing the information system is very large compared to the search space in the process of Web service composition, for example.
  • FIG. 24 is a diagram for explaining a difference in axes constituting the search space in each of the information system construction and the Web service composition.
  • Web service composition is executed in consideration of the execution order and combination of Web services corresponding to applications (App (Application) 1 to 5 of Web service composition in the figure).
  • applications App (Application) 1 to 5 of Web service composition in the figure.
  • software as an application (App systems 1 to 5 in the IT system construction in the figure) needs to be executed in consideration of allocation of resources including hardware.
  • the resource is a virtual VM (Virtual Machine) in which these are bundled. In this case, various characteristics such as performance and fault tolerance change depending on the combination.
  • the search space in the construction of the information system has increased explosively compared with the search space in the Web service composition.
  • service composition it is not necessary to give resource parameters to an existing component that operates alone, but in the case of information system design, it is necessary to consider various resources allocated to individual components. There is. Therefore, more combinations must be considered. Therefore, the search space increases in a multiplicative manner. For this reason, the search space reduction technology used in Web service composition does not satisfy the demand as a search space reduction technology in the construction of an information system.
  • the service creation method of Patent Document 1 has a problem that it takes too much time to optimize the information system to be constructed. The reason is that the service creation method of Patent Document 1 is a method for a web service, and has a large number of parameters and is not suitable for processing with a large search space like the construction of an information system.
  • Patent Document 2 has a problem in that an information system in which non-functional requirements such as performance information are important cannot be automatically configured. The reason is that the automated workflow system is not considered for non-functional requirements.
  • the Web service construction management method of Patent Document 3 has a problem that it cannot be applied to automatic design of an information system in which allocation of hardware to functions is important in design. The reason is that the Web service construction management method targets a Web service whose hardware allocation is fixed.
  • Patent Document 1 the technology related to the synthesis of services and business processes, such as Patent Document 1, Patent Document 2, and Patent Document 3, does not consider the hardware configuration and hardware allocation. For this reason, these techniques cannot solve the problem of selecting a combination of software and hardware that operates correctly as an information system.
  • Patent Document 4 does not consider non-functional requirements such as performance and availability. Therefore, there is a problem that it is necessary for the designer to judge the automatic synthesis result and select from the candidates.
  • the development support device of Patent Document 5 has a problem that it cannot be used for the purpose of automatically determining an application. This is because the development support apparatus requires input of a model of an application to be used.
  • Patent Document 6 has a problem that an application cannot be determined based on functional requirements. The reason is that the computer does not consider functional requirements and application programs that are loaded on middleware.
  • Patent Document 7 has a problem in that an appropriate deployment cannot be derived when a plurality of functions are assigned to the same virtual machine. This is because the non-functional requirement that can be used is a virtual machine unit.
  • Patent Document 5 disclose techniques for deriving the configuration of a physical system or a virtualized system based on non-functional requirements.
  • the techniques described in these documents do not consider functional requirements. For this reason, the developer must select an application that automatically satisfies the functions. For this reason, those techniques cannot solve the problem of automatically selecting a combination of software and hardware that satisfies functional requirements and non-functional requirements.
  • An object of the present invention is to provide an information processing system, a system design method, a program therefor, and a computer-readable non-transitory recording the program for selecting a combination of software and hardware in an automatic construction of an information system It is to provide a recording medium.
  • An information processing system is based on an abstract workflow including an abstract component indicating a function, information indicating a specific component corresponding to the abstract component, and design information regarding resource amount allocation to the specific component.
  • Derivation means for deriving an optimal solution set that is a set of the specific workflows having relatively superior resource and performance characteristics among the set of specific workflows to which the specific components are assigned, the optimal solution set, and the design
  • the capability of generating resource configuration information indicating the resource to be allocated to the specific component included in the specific workflow based on the information, information on the performance of the resource, and the first non-functional requirement satisfied by the specific workflow Sizing means and said resource Based on the configuration information, the specific workflow, the second non-functional requirement satisfied by the specific workflow, and the resource information related to the second non-functional requirement, information on the resource to be used preferentially is included.
  • Resource allocation means for generating and outputting system configuration information.
  • a system design method is based on an abstract workflow including an abstract component indicating a function, information indicating a specific component corresponding to the abstract component, and design information related to resource amount allocation to the specific component.
  • the design information From among the set of specific workflows to which the specific component is assigned, derive an optimal solution set that is a set of specific workflows with relatively superior resource / performance characteristics, and the optimal solution set, the design information, Generating resource configuration information indicating the resource to be allocated to the specific component included in the specific workflow based on information on resource performance and the first non-functional requirement satisfied by the specific workflow; And the specific workflow, Based on the second non-functional requirement satisfied by the specific workflow and the resource information on the second non-functional requirement, system configuration information including the resource information to be used preferentially is generated and output. .
  • a computer-readable non-transitory recording medium relates to an abstract workflow including an abstract component indicating a function, information indicating a specific component corresponding to the abstract component, and resource amount allocation to the specific component.
  • a program for causing a computer to execute processing for generating system configuration information including and processing for output is recorded.
  • the present invention has an effect that it is possible to more suitably select a combination of software and hardware in automatic construction of an information system.
  • FIG. 9 is a block diagram showing a configuration of an information processing system according to a third embodiment of the present invention.
  • FIG. 1 is a block diagram showing a configuration of an information processing system 101 according to the first embodiment of the present invention.
  • the information processing system 101 includes a derivation unit 110, a performance sizing unit 120, and a resource allocation unit 130.
  • Each component shown in FIG. 1 may be a hardware unit circuit or a component divided into functional units of a computer device.
  • the components shown in FIG. 1 are components divided into functional units of the computer apparatus.
  • the abstract workflow 830 includes an abstract component indicating a function. Details of the abstract workflow 830 will be described later.
  • the function list 141 is also called information indicating a specific component corresponding to the abstract component.
  • the specific component is an existing software application (also referred to as an application, a component, software, or a program) that constitutes the information system. Details of the function list 141 will be described later.
  • the performance list 142 is also called design information related to resource amount allocation to specific components.
  • the resource in the resource amount allocation is hardware (CPU, memory, disk, etc.). That is, the resource amount is the quantity of hardware and virtual hardware. Details of the performance list 142 will be described later.
  • the optimal solution set 850 is a set of specific workflows 840 having relatively superior resource / performance characteristics among the set of specific workflows 840 as shown in FIG. 5 to which specific components are assigned.
  • the optimal solution set 850 is a set having the specific workflow 840 in the first row in the set of specific workflows 840 shown in FIG.
  • the resource / performance characteristics are, for example, a function indicating the performance of the specific workflow 840 with respect to the allocated resource amount.
  • the deriving unit 110 generates the resource / performance characteristics based on a function (described later) indicating the performance of the specific component included in the performance list 142.
  • the deriving unit 110 compares the resource / performance characteristics corresponding to each of the specific workflows 840 by weighting with a predetermined weight corresponding to the resource amount.
  • the specific workflow 840 is obtained by assigning a plurality of specific components corresponding to any one of the abstract components included in the abstract workflow 830 to the abstract workflow 830.
  • the predetermined weight may be a window function that limits the range of the predetermined domain of the resource amount when comparing the resource / performance characteristics. That is, the predetermined weight may be “1” for the range of the predetermined domain of the resource amount and “0” for the other range. Further, the predetermined weight may be a decimal number that exceeds the range of the predetermined definition area of the resource amount and is “0” or more and “1” or less. The predetermined weight corresponds to the frequency obtained by empirical or theoretical use of the resource amount as a design value when designing the system.
  • the deriving unit 110 derives an optimal solution set 850, which is a set of specific workflows 840 including the specific components, based on the result of comparing the resource / performance characteristics.
  • FIG. 2 is a diagram illustrating an example of the abstract workflow 830.
  • a, b, c, and d each indicate an abstract component.
  • the abstract component indicates a functional category division, that is, a function.
  • a is an abstract component indicating a function for storing input data, for example.
  • b is an abstract component indicating a function of calculating the appearance frequency of each word in the input data.
  • c is an abstract component indicating a function of displaying in descending order of appearance frequency.
  • d is an abstract component indicating a function for saving a calculation result.
  • f 0x ⁇ F x is an abstract component that is executed first.
  • F x is a set of abstract components included in the workflow.
  • V x is information of a set of two abstract components indicating a connection between the abstract components.
  • the abstract workflow 830 shown in FIG. 2 indicates that the abstract component to be executed first is a.
  • An abstract workflow 830 indicates that the abstract workflow 830 includes abstract components a, b, c, and d. Further, the abstract workflow 830 shows connections between abstract components a and b, between abstract components b and d, and between abstract components d and c.
  • the abstract workflow 830 may have an arbitrary structure regardless of the example shown in FIG.
  • FIG. 3 is a diagram illustrating an example of the function list 141.
  • the function list 141 includes a specific component c i , a function category classification f j indicated by an abstract component to which the specific component c i belongs, and a constraint a k satisfied by the specific component c i .
  • the constraint is, for example, reliability, availability requirement, and the like.
  • A is, for example, a specific component c i that indicates the application that saved the 10 parallel distributed file system X.
  • B is, for example, a specific component c i that indicates the application to be saved to a journaling file system Y.
  • C is, for example, a specific component c i that indicates the word count applications.
  • D is, for example, a specific component c i which indicates a Web application.
  • E is, for example, a specific component c i that indicates the components that use memory cache.
  • F is, for example, a specific component c i that indicates the components that use the network storage.
  • one record ⁇ c i , f j , a k > in the function list 141 means that the specific component c i belongs to the function category category f j and satisfies the constraint a k .
  • the function list 141 may have any structure regardless of the example shown in FIG.
  • the function list 141 may not include ak or may include arbitrary information other than the information illustrated in FIG.
  • the function list 141 may be separated into a plurality of lists, or a part or all thereof may be integrated into the performance list 142.
  • FIG. 4 is a diagram illustrating an example of the performance list 142.
  • the performance list 142 includes a specific component c i, four of the specific component c i, the function v i indicating the performance, a function w i and cost information p i indicates the weight of the above-described set Contains a record indicating.
  • the function v i is a vector-to-vector function indicating the performance v i (r) when a certain resource amount r is given.
  • the resource amount r is multidimensional (vector) data such as (CPU: 20 GHz (Giga Hertz), Memory: 50 GB (Giga Byte), Disk: 3 TB (Tera Byte)).
  • the function w i is a vector-to-scalar function indicating the weight w i (r) when a certain resource amount (vector format) r is given.
  • the weight w i (r) is a value corresponding to the frequency with which the resource amount r is adopted when designing the system. That is, the function w i is also called the design appearance frequency of the resource amount of a certain resource.
  • one record ⁇ c i , v i , w i , p i > in the performance list 142 means the following.
  • the concrete component c i has a performance v i (r) when a certain resource amount (vector format) r is given.
  • the weight corresponding to the resource amount is w i (r).
  • the price of the specific component is a p i.
  • the performance list 142 may have an arbitrary structure regardless of the example shown in FIG.
  • the function list 141 may include arbitrary information other than the information illustrated in FIG.
  • the performance list 142 may be separated into a plurality of lists, or a part or all of the performance list 142 may be integrated into the function list 141.
  • FIG. 5 is a diagram illustrating an example of the specific workflow 840.
  • FIG. 5 shows a set of four concrete workflows 840.
  • A, B, C, D, each of E and F, correspond to the particular component c i shown in FIG.
  • c 0x ⁇ CD x is a concrete component c i that is executed first.
  • CD x is a set of c i that is included in the GD x.
  • VD x represents a connection between c i, which are two sets of information c i.
  • specific workflow 840 in the top row indicate that specific component c i which is first executed is A. Then, the specific workflow 840, specifically the workflow 840 indicates that it contains a specific component c i A, C, D and E. Further, concrete workflow 840 shows connections between concrete components c i A and C, concrete components c i C and E, and concrete components ci i E and D. .
  • the optimal solution set 850 includes the specific workflow 840 indicating resource / performance characteristics.
  • the first non-functional requirement is a non-functional requirement that the specific workflow 840 satisfies.
  • the resource configuration information 860 indicates the correspondence between resources allocated to specific components included in the specific workflow 840 and performance.
  • the resource list 151 is also called information regarding resource performance.
  • the first non-functional requirement is, for example, performance.
  • the performance sizing unit 120 selects, for example, a candidate for the resource that satisfies the first non-functional requirement based on the result of optimization calculation arbitrarily using a local search method, an annealing method, and a genetic algorithm. It's okay.
  • FIG. 6 is a diagram illustrating an example of the resource list 151.
  • the resource list 151 includes a record indicating a quadruple of a resource h i constituting the system and a resource amount r i , price information p i and availability e i of the resource h i .
  • one record ⁇ h i , r i , p i , e i > of the resource list 151 has a resource h i having a resource amount r i and a price p i , [0, 1 ],
  • the availability obtained by normalization within the range of e ] means ei.
  • resource list 151 may have an arbitrary structure regardless of the example shown in FIG.
  • resource list 151 may be free of e i, other than the information shown in FIG. 6 may include any information.
  • FIG. 7 is a diagram illustrating an example of the resource configuration information 860.
  • the resource configuration information 860 indicates a resource configuration, performance and cost for the resource configuration.
  • Each numerical value in the resource element column indicates the number of the resource elements.
  • the specific workflow 840 is a specific workflow 840 included in the optimal solution set 850.
  • the resource list 151 is also called resource information related to the second non-functional requirement.
  • FIG. 8 is a diagram illustrating an example of the system configuration information 890. As shown in FIG. 8, the system configuration information 890 includes at least information on resources used preferentially.
  • the system configuration information 890 may have an arbitrary structure regardless of the example shown in FIG.
  • the system configuration information 890 may not include cost and performance information, or may include arbitrary information other than the information illustrated in FIG.
  • FIG. 9 is a diagram illustrating a hardware configuration of a computer 700 that implements the information processing system 101 according to the present embodiment. First, with reference to FIG. 9, each hardware component of the computer 700 that implements the information processing system 101 will be described.
  • the computer 700 includes a CPU (Central Processing Unit, also called a processor) 701, a storage unit 702, a storage device 703, an input unit 704, an output unit 705, and a communication unit 706. Further, the computer 700 includes a recording medium (or storage medium) 707 supplied from the outside.
  • the recording medium 707 is a non-volatile recording medium (non-temporary recording medium) that stores information non-temporarily.
  • the recording medium 707 may be a temporary recording medium that holds information as a signal.
  • the CPU 701 controls the overall operation of the computer 700 by operating an operating system (not shown). For example, the CPU 701 reads the program and data from the recording medium 707 mounted on the storage device 703 and writes the read program and data to the storage unit 702.
  • the program is, for example, a program for causing the computer 700 to execute an operation of a flowchart shown in FIG.
  • the CPU 701 executes various processes as the derivation unit 110, the performance sizing unit 120, and the resource allocation unit 130 shown in FIG. 1 according to the read program and based on the read data.
  • the CPU 701 may download the program and its data to the storage unit 702 from an external computer (not shown) connected to a communication network (not shown).
  • the storage unit 702 stores the program and data.
  • the storage unit 702 may store, for example, an abstract workflow 830, a function list 141, a performance list 142, a specific workflow 840, resource configuration information 860, and a resource list 151.
  • the storage unit 702 may be included as part of the derivation unit 110, the performance sizing unit 120, and the resource allocation unit 130.
  • the storage device 703 is, for example, an optical disk, a flexible disk, a magnetic optical disk, an external hard disk, a semiconductor memory, and the like, and includes a recording medium 707.
  • the storage device 703 (recording medium 707) stores the program in a computer-readable manner.
  • the storage device 703 may store, for example, an abstract workflow 830, a function list 141, a performance list 142, a specific workflow 840, resource configuration information 860, and a resource list 151.
  • the storage device 703 may be included as part of the derivation unit 110, the performance sizing unit 120, and the resource allocation unit 130.
  • the input unit 704 receives an operation input by an operator and an input of information from the outside.
  • Devices used for the input operation are, for example, a mouse, a keyboard, a built-in key button, and a touch panel.
  • the input unit 704 may be included as part of the derivation unit 110, the performance sizing unit 120, and the resource allocation unit 130.
  • the output unit 705 is realized by a display, for example.
  • the output unit 705 is used, for example, for an input request to an operator by GUI (GRAPHICAL User Interface), an output presentation to the operator, or the like.
  • GUI GRAINICAL User Interface
  • the output unit 705 may be included as part of the derivation unit 110, the performance sizing unit 120, and the resource allocation unit 130.
  • the communication unit 706 implements an interface with an external system.
  • the communication unit 706 may be included as part of the derivation unit 110, the performance sizing unit 120, and the resource allocation unit 130.
  • the functional unit block of the information processing system 101 shown in FIG. 1 is realized by the computer 700 having the hardware configuration shown in FIG.
  • the means for realizing each unit included in the computer 700 is not limited to the above.
  • the computer 700 may be realized by one physically coupled device, or may be realized by two or more physically separated devices connected by wire or wirelessly and by a plurality of these devices. .
  • the CPU 701 may read and execute the program code stored in the recording medium 707.
  • the CPU 701 may store the code of the program stored in the recording medium 707 in the storage unit 702, the storage device 703, or both. That is, this embodiment includes an embodiment of a recording medium 707 that stores the program (software) executed by the computer 700 (CPU 701) temporarily or non-temporarily.
  • a storage medium that stores information non-temporarily is also referred to as a non-volatile storage medium.
  • FIG. 10 is a flowchart showing the operation of the present embodiment. Note that the processing according to this flowchart may be executed based on the above-described program control by the CPU 701. Further, the step name of the process is described by a symbol as in S601.
  • the derivation unit 110 operates as follows.
  • the derivation unit 110 starts the operation illustrated in FIG. 10 when the abstract workflow 830 is acquired.
  • the deriving unit 110 acquires a set C i of specific components c i corresponding to the abstract components f i included in the abstract workflow 830 (step S601). For example, the derivation unit 110 generates an intermediate workflow replaced by a set C i abstract components of the abstract workflow 830.
  • the deriving unit 110 selects a specific component c i one by one based on the set C i included in the intermediate workflow, and generates a specific workflow 840 (step S602).
  • FIG. 11 is a diagram for explaining the operation of generating the specific workflow 840 in steps S601 and S602.
  • step S ⁇ b> 601 the deriving unit 110 generates an intermediate workflow from the function list 141 and the abstract workflow 830.
  • step S602 the deriving unit 110 generates a specific workflow 840 from the intermediate workflow.
  • the deriving unit 110 derives the optimal solution set 850 from the specific workflow 840 (step S603).
  • the deriving unit 110 derives the optimal solution set 850 from the specific workflow 840 (step S603).
  • an example of an operation in which the deriving unit 110 derives the optimal solution set 850 from the specific workflow 840 will be described in detail.
  • the derivation unit 110 obtains the function f GDx (r), which is the resource / performance characteristic of the specific workflow 840, the function v i (r) of the resource / performance characteristic of each specific component c i , the shape of the workflow, and Is obtained by synthesis. Secondly, the deriving unit 110 selects a specific component from which the function f GDx (r) having the optimum resource / performance characteristics can be obtained from the obtained function f GDx (r). This selection results in an optimization computation problem known as the knapsack problem, which can be solved using dynamic programming.
  • the optimization of the function f GDx (r) uses a partial order comparison between the functions indicating the resource / performance characteristics. Therefore, the optimum solution obtained is an optimum solution set 850 that is not guaranteed to be single.
  • connection relation of functions is defined by series connection and merging, the law of each connection relation will be described.
  • b] ⁇ c of f a (r) and f b (r) into f c (r) is f [a
  • b] ⁇ c (r ): min (min (f a (r), f b (r)), it is f c (r)).
  • FIG. 12 is a diagram for explaining the cancellation of the branch of the workflow. As shown in FIG. 12, a workflow with an upper branch can form a workflow without a lower branch. Therefore, a function indicating the resource / performance characteristics of an arbitrary workflow can be obtained by synthesizing the functions indicating the resource / performance characteristics of the above-described series connection and merging.
  • the derivation unit 110 for each specific component c i, a domain for comparing, limiting with w i indicating the weight.
  • FIG. 13 is a diagram for explaining an example in which the performance is weighted by a predetermined weight corresponding to the resource amount and the resource / performance characteristics are compared.
  • FIG. 13 shows a case where a function 401 and a function 411 indicating the resource / performance characteristics of two specific components are compared.
  • Each of the function 402 and the function 412 is w i corresponding to each of the two specific components.
  • Each of the function 403 and the function 413 is a function 401 weighted by a function 402 and a function 411 weighted by a function 412.
  • each of the function 403 and the function 413 has a limited range by multiplying each of the function 401 and the function 411 indicating the resource / performance characteristics by the window function w i .
  • the deriving unit 110 compares the function 403 and the function 413 based on a combination of the maximum value, the minimum value, the intermediate value, the integral value, and the like to determine superiority or inferiority (optimum).
  • the derivation unit 110 may acquire a plurality of abstract workflows 830. In this case, the deriving unit 110 derives the optimal solution set 850 corresponding to each abstract workflow 830 through the above-described steps S601 to S603. Next, the derivation unit 110 may take the union of the optimum solution set 850 and remove those that do not become the optimum solution in any of the abstract workflows 830 from the union set.
  • the performance sizing unit 120 generates the resource configuration information 860 based on the optimal solution set 850, the performance list 142, the resource list 151, and the non-functional requirements (step S604).
  • the non-functional requirement is a first non-functional requirement satisfied by the specific workflow 840 included in the optimal solution set 850, and is, for example, performance or cost.
  • the performance sizing unit 120 solves the resource / performance characteristic f GDx (r) of the resource r for the GD x that is the specific workflow 840 included in the input optimal solution set 850.
  • This is to solve a general constrained multivariate optimization problem that maximizes the performance v GDx (r) with the resource r as a variable and the cost as a constraint among the inputs given to the information processing system 101.
  • the resource / performance characteristic f GDx (r) is generated by the deriving unit 110 based on the GD x that is the specific workflow 840 included in the optimal solution set 850 and the performance list 142.
  • the optimal solution r GDx of the multivariate optimization problem is the optimal allocation resource total amount for GD x that is the specific workflow 840.
  • the resource configuration information 860 indicates the correspondence between resources allocated to specific components included in the specific workflow 840 and performance. That is, the number of each element of the resource of the resource configuration information 860 is the optimal solution r GDx , and the numerical value of the performance of the resource configuration information 860 is the performance v GDx (r).
  • the resource allocation unit 130 generates system configuration information 890 based on GD x , which is the specific workflow 840 included in the optimal solution set 850, the resource configuration information 860, the non-functional requirements, and the resource list 151, and outputs the system configuration information 890 (Step S605).
  • the non-functional requirement is a second non-functional requirement satisfied by the specific workflow 840, and is, for example, cost or availability.
  • the resource allocation unit 130 as an input an optimal allocation resource amount r GDx of GD x and GD x is a specific workflow 840, assigned to specific components included in the GD x, calculates the optimum amount of resources .
  • the resource allocation unit 130 may allocate the same resource by aggregating the allocated resources for a plurality of specific components.
  • the resource allocation unit 130 satisfies the following two restrictions on the sum of the resources allocated to each specific component, and solves an optimization problem that minimizes the cost of the resource.
  • the total is, for example, the total for each type of CPU, Memory, and Disk.
  • the sum is multidimensional (vector) data such as (CPU: 20 GHz, Memory: 50 GB, Disk: 3 TB).
  • the first constraint is that the performance of the specific workflow 840 satisfies the performance target of the system to be constructed as a result of the resource allocation unit 130 allocating resources.
  • n is a set of resources used for allocation.
  • the resource allocation unit 130 obtains the resource allocation assign when the above two conditions are satisfied and ⁇ j ⁇ n p j is minimized.
  • the abstract workflow 830 may be stored in advance in the storage unit 702 or the storage device 703 shown in FIG.
  • the deriving unit 110 may acquire the abstract workflow 830 input by the operator via the input unit 704 illustrated in FIG.
  • the deriving unit 110 may receive the abstract workflow 830 from a device (not shown) via the communication unit 706 shown in FIG.
  • the deriving unit 110 may acquire the abstract workflow 830 recorded in the recording medium 707 via the storage device 703 illustrated in FIG.
  • the deriving unit 110 may acquire the function list 141 and the performance list 142 in the same manner as the abstract workflow 830.
  • the performance sizing unit 120 may acquire the performance list 142 and the first non-functional requirement in the same manner as when the deriving unit 110 acquires the abstract workflow 830.
  • the resource allocation unit 130 may acquire the resource list 151 and the second non-functional requirement in the same manner as when the derivation unit 110 acquires the abstract workflow 830.
  • the resource allocation unit 130 outputs the system configuration information 890 via the output unit 705 shown in FIG.
  • the resource allocation unit 130 may transmit the system configuration information 890 to a device (not shown) via the communication unit 706 shown in FIG.
  • the resource allocation unit 130 may record the system configuration information 890 in the recording medium 707 via the storage device 703 illustrated in FIG.
  • the deriving unit 110 derives the optimum specific workflow 840 by comparing a function (also referred to as a resource / performance characteristic) indicating the performance of the specific workflow 840 with respect to the allocated resource amount.
  • a function also referred to as a resource / performance characteristic
  • each of the specific workflows 840 includes each of a plurality of competing specific components corresponding to one abstract component (also referred to as a functional category division). That is, the deriving unit 110 selects a specific component having a higher degree of achievement of non-functional requirements (for example, performance) when a similar amount of resources is allocated among a plurality of specific components that realize the same function.
  • the deriving unit 110 determines the domain of the function based on w i (also referred to as design information related to resource amount allocation) included in the performance list 142.
  • the performance sizing unit 120 performs exploratory or analytical optimization on the function indicating the resource / performance characteristics, with the non-functional requirement as either a restriction or an optimization target. By performing this optimization, the performance sizing unit 120 obtains the total amount of resources (for example, information included in the resource configuration information 860) allocated to the specific components constituting the specific workflow 840.
  • the function indicating the resource / performance characteristic is generated based on the function indicating the resource / performance characteristic of each of the specific components constituting the specific workflow 840.
  • the non-functional requirement is a non-functional requirement that should be satisfied by the derived workflow.
  • the concrete workflow 840 is obtained by connecting concrete components in series or in parallel.
  • a plurality of connected concrete components can be regarded as one component.
  • a function indicating the resource / performance characteristics of the one component, which is a result of the connection can be synthesized using a function indicating the resource / performance characteristics of the connected specific component.
  • the specific workflow 840 can be regarded as a single component, and a single function indicating the resource / performance characteristics of the specific workflow 840 can be obtained.
  • the resource allocation unit 130 obtains a resource allocation for forming a desired information system by optimization calculation with the total resource amount as a constraint based on the resource configuration information 860 and the resource list 151. That is, the resource allocation unit 130 performs optimization calculation using the resource allocation as a variable, the total resource amount as a constraint, and the resource / performance characteristic function of the specific workflow 840 as an objective function.
  • the resource configuration information 860 is information indicating the total amount of resources allocated to the specific components constituting the specific workflow 840.
  • the resource list 151 includes information on resource non-functional requirements, such as resource price and availability information.
  • the optimization objective variable is a multidimensional variable including the degree of achievement of non-functional requirements, resource used for construction, software price information, availability information, and the like. Further, the optimization constraint is to satisfy the non-functional requirements that the specific workflow 840 should achieve. Therefore, the resource allocation unit 130 solves the optimization calculation as a multi-objective optimization problem.
  • the first effect of the present embodiment described above is that it is possible to more suitably select a combination of software and resources in automatic construction of an information system.
  • the reason is that the derivation unit 110 derives an optimal solution set 850 that satisfies the functional requirements based on the abstract workflow 830, and the performance sizing unit 120 and the resource allocation unit 130 generate system configuration information 890 based on the non-functional requirements. Because.
  • the second effect of the present embodiment described above is that it is possible to prevent oversight of the optimal configuration when human intervention is involved in designing the information system.
  • the reason is the same as the reason for the first effect.
  • the third effect of the present embodiment described above is that it becomes possible to execute component selection in advance of resource selection.
  • the reason is that the derivation unit 110 weights and compares the resource / performance characteristics of the specific workflow 840 corresponding to each of the specific components having the same function with a weight corresponding to the resource amount of the resource.
  • the fourth effect of the present embodiment described above is that it is possible to avoid a search space combination explosion by simultaneously performing component selection and resource selection.
  • FIG. 14 is a diagram illustrating an information processing system 100 that is a modification of the first embodiment.
  • the information processing system 100 includes the information processing system 101, the component performance information repository 140, and the resource repository 150 shown in FIG.
  • the information processing system 101, the component performance information repository 140, and the resource repository 150 are connected via a network 709.
  • the information processing system 101, the component performance information repository 140, and the resource repository 150 may be a single computer 700 as shown in FIG. 9, or may be directly connected without a network.
  • the component performance information repository 140 stores a function list 141 and a performance list 142.
  • the component performance information repository 140 may be stored in the storage device 703 illustrated in FIG.
  • the component performance information repository 140 may be input by the operator via the input unit 704 shown in FIG. In this case, an operation screen may be displayed on the output unit 705 shown in FIG.
  • the resource repository 150 stores a resource list 151.
  • the resource repository 150 may be stored in the storage device 703 illustrated in FIG. Further, the resource repository 150 may be input by the operator via the input unit 704 shown in FIG. In this case, an operation screen may be displayed on the output unit 705 shown in FIG.
  • the deriving unit 110 refers to the function list 141 and the performance list 142 of the component performance information repository 140.
  • the performance sizing unit 120 refers to the performance list 142 of the component performance information repository 140.
  • the resource allocation unit 130 refers to the resource list 151 of the resource repository 150.
  • the effect of the modification in the present embodiment described above is that the information processing system 100 can be flexibly realized.
  • the reason is that the information processing system 101 is connected to the component performance information repository 140 and the resource repository 150 via the network 709.
  • FIG. 15 is a block diagram showing the configuration of the information processing system 201 according to the second embodiment of the present invention.
  • the information processing system 201 according to the present embodiment is different from the information processing system 101 according to the first embodiment shown in FIG. 1 in that it further includes a functional component assignment unit 260.
  • FIG. 16 is a diagram illustrating an example of the function request 870.
  • the function request 870 includes three function requirements a 0 , b 0 and c 0 .
  • the functional requirement a 0 is a function for storing input data
  • the functional requirement b 0 is a function for calculating the appearance frequency of each word of the input data
  • the functional requirement c 0 is, for example, This is a function for displaying in descending order of appearance frequency.
  • the function requirements included in the function request 870 may be any number.
  • FIG. 17 is a diagram illustrating an example of the connection list 271.
  • the connection list 271 includes two sets (pairs) ⁇ f i, f j> indicating that it is possible to input the output component f j components f i a.
  • FIG. 17 shows the connections for abstract components a and b, b and d, and d and c, respectively.
  • the functional component allocation unit 260 sets the functional requirements a 0 , b 0 and c 0 as abstract components a, b and c, and generates an abstract workflow 830 as shown in FIG. 2 based on the connection list 271.
  • the information processing system 201 may be realized by the computer 700 illustrated in FIG. 9, similarly to the information processing system 101 illustrated in FIG. 1.
  • the CPU 701 executes various processes also as the functional component assignment unit 260 shown in FIG. 15 according to the read program and based on the read data.
  • the storage unit 702 may store the function request 870 and the connection list 271.
  • the storage unit 702 may be included as part of the functional component allocation unit 260.
  • the storage device 703 may store the function request 870 and the connection list 271.
  • the storage device 703 may be included as part of the functional component assignment unit 260.
  • FIG. 18 is a flowchart showing the operation of the present embodiment.
  • the functional component allocation unit 260 starts the operation illustrated in FIG. 18 when the function request 870 is acquired.
  • the abstract workflow 830 is G x that satisfies the following conditions.
  • the first condition is that ⁇ f x ⁇ ⁇ f 0 , f 1 ,..., F n >, f x ⁇ F x , and ⁇ ⁇ f i , f j > ⁇ F x, ⁇ f i , f j > ⁇ P.
  • the second condition is that the elements of F x are always connected to each other by sides in V x .
  • the third condition is that the graph does not cause division.
  • This calculation of G x belongs to the combinatorial optimization problem and can be realized using a heuristic algorithm such as a genetic algorithm or a tabu search.
  • step S601 to step S605 is the same as the operation from step S601 to step S605 shown in FIG.
  • the first effect of the present embodiment described above enables automatic construction of an information system in which a combination of software and resources is more suitably selected based on a function request 870 in addition to the effect of the first embodiment. It is a point to do.
  • the reason is that the functional component allocation unit 260 generates the abstract workflow 830 based on the function request 870 and the connection list 271.
  • the second effect of the present embodiment described above is that it makes it possible to generate a connectable workflow by complementing insufficient information even if the function request 870 is incomplete.
  • the reason is that the functional component allocation unit 260 generates the abstract workflow 830 based on the connection list 271.
  • FIG. 19 is a diagram illustrating an information processing system 200 that is a modified example of the second embodiment.
  • the information processing system 200 includes the information processing system 201, the component performance information repository 140, the resource repository 150, and the component connection information repository 270 illustrated in FIG.
  • the information processing system 201, the component performance information repository 140, the resource repository 150, and the component connection information repository 270 are connected via a network 709.
  • the information processing system 201, the component performance information repository 140, the resource repository 150, and the component connection information repository 270 may be a single computer 700 as shown in FIG. Further, the information processing system 201, the component performance information repository 140, the resource repository 150, and the component connection information repository 270 may be directly connected without via a network.
  • the component connection information repository 270 stores a connection list 271.
  • the component connection information repository 270 may be stored in the storage device 703 illustrated in FIG. Further, the component connection information repository 270 may be input by the operator via the input unit 704 shown in FIG. In this case, an operation screen may be displayed on the output unit 705 shown in FIG.
  • the effect of the modification in the present embodiment described above is that the information processing system 200 can be flexibly realized.
  • the information processing system 201 is connected to the component performance information repository 140, the resource repository 150, and the component connection information repository 270 via the network 709.
  • FIG. 20 is a block diagram showing a configuration of an information processing system 301 according to the third embodiment of the present invention.
  • the information processing system 301 in the present embodiment is different from the information processing system 101 in the first embodiment shown in FIG. 1 in that a derivation unit 380 is included instead of the derivation unit 110.
  • a skyline set also referred to as an optimal solution set
  • FIG. 21 is a diagram for explaining a general skyline set.
  • FIG. 21 is a diagram showing three-dimensional two-dimensional versus one-dimensional, where the horizontal axis represents the value (2D) of (x, y) and the vertical axis represents the value of f (x, y).
  • the function f (x, y) having a positive correlation with respect to x and y is minimized (x, y).
  • (x, y) that can minimize the function is on the skyline (dotted line in FIG. 21).
  • a set of plots on this skyline is a skyline set.
  • the specific workflow 840 that minimizes the resource amount is the specific workflow 840 corresponding to the resource / performance characteristics included in the skyline set 880.
  • the specific workflow 840 not included in the skyline set 880 that is, the specific workflow 840 corresponding to the resource / performance characteristics not located on the skyline, it is not necessary to calculate the value to which the resource / performance characteristics are applied. .
  • the deriving unit 380 obtains the skyline set 880 by executing the following procedure for each plot (resource / performance characteristics).
  • (unprocessed plot set, skyline set) is a state ( ⁇ a, b, c, d,... ⁇ , ⁇ ).
  • the first arbitrary plot eg, a
  • the plot that is extracted first is always included in the first (next to the initial state) skyline set.
  • (unprocessed plot set, skyline set) is in a state of ( ⁇ b, c, d,... ⁇ , ⁇ A ⁇ ).
  • the next arbitrary plot is extracted from the unprocessed plot set. If the retrieved plot is in a relationship that dominates any of the skyline set plots, then the controlled plot is removed from the skyline set and the retrieved plot is added to the skyline set.
  • plot a dominates plot b means that, for all dimensions of the gain of plot a, plot a is better than or equal to plot b, and always plot a is plotted b in one or more dimensions. It is better.
  • the deriving unit 380 executes the above-described procedure for plots of all unprocessed plot sets, and obtains the skyline set 880 as a solution when it is completed.
  • FIG. 22 is a diagram illustrating an operation when the derivation unit 380 generates the skyline set 880 by executing the above-described procedure for a certain plot.
  • the deriving unit 380 when a dotted line plot is input, the input plot dominates one plot on the existing skyline. For this reason, as shown in the lower graph of FIG. 22, the deriving unit 380 excludes the existing existing plot from the skyline set, and adds the input plot to the skyline set.
  • the deriving unit 380 sequentially evaluates the plots, replaces elements of the skyline set, and derives a final skyline set 880.
  • a gain function corresponding to each of the specific workflows 840 is required.
  • the gain function in the present embodiment is “f GDx (r)” which is a function indicating the above-described resource / performance characteristics.
  • the comparison between these functions and the method for calculating the resource / performance characteristics of the specific workflow 840 are as described in the first embodiment.
  • the first effect of the present embodiment described above is that, in addition to the effect of the first embodiment, the calculation time for deriving the optimal solution set by using the skyline method can be reduced. is there.
  • the reason is that the derivation unit 380 derives the skyline set 880 that is the optimal solution set by the skyline method instead of the optimization calculation that requires comparison between all elements.
  • the second effect of the present embodiment described above is that a stream can be executed.
  • This embodiment is an embodiment of the information processing system 200 shown in FIG.
  • the information processing system 200 is given the function request 870 shown in FIG.
  • the component connection information repository 270 stores a connection list 271 shown in FIG.
  • the functional component allocation unit 260 Based on the above assumption, the functional component allocation unit 260 generates an abstract workflow 830 as shown in FIG. 2 as a solution to the combination optimization problem. For example, as an example of the solution, the functional component assignment unit 260 solved in steps using partial decomposition as follows.
  • Step 1 ⁇ a, b>, ⁇ d, c>
  • Step 2 ⁇ a, b>, ⁇ b, d>, ⁇ d, c>
  • the functional component allocation unit 260 plans ⁇ a, b> from the front and ⁇ d, c> from the back based on the connection list 271 for the function request 870.
  • the function request 870 is satisfied, but the function component allocation unit 260 continues the process because there is a division and the workflow is not formed.
  • Step 2 since the functional component allocation unit 260 can extract the connection information of ⁇ b, d> from the connection list 271, ⁇ a, b> and ⁇ d, c> are connected.
  • this abstract workflow 830 a “save calculation result” function that is not included in the function request 870 is inserted. This corresponds to the second effect of the second embodiment, “generation of a connectable workflow by complementing information that is insufficient even if the function request 870 is incomplete”.
  • the deriving unit 110 creates a specific workflow 840 for the obtained abstract workflow 830. Assume that the component performance information repository 140 stores the function list 141 shown in FIG.
  • the derivation unit 110 to the abstract workflow 830, fit a specific component c i of the feature list 141, respectively, to create a set of specific workflow 840 shown in FIG.
  • the deriving unit 110 calculates resource / performance characteristics from the set of the concrete workflows 840 and derives the optimal solution set 850.
  • the component performance information repository 140 stores a performance list 142 shown in FIG.
  • the CPU performance at w i is an accumulated value on the system (a value obtained by multiplying the number of cores and the maximum frequency).
  • Deriving unit 110 from the performance list 142 described above, as shown in FIG. 23, and obtains information about the range of the specific component c i.
  • the deriving unit 110 calculates the resource / performance characteristics F of the first to fourth lines of the specific workflow 840 shown in FIG. 5 as shown in the following (1) to (4).
  • (1) and (3) are comparisons between the specific components A and B. From the frequently used design parameter domain, only (1) of the specific workflow 840 using A is an element of the optimal solution set 850. It became. Specifically, the deriving unit 110 substitutes the maximum value and the minimum value of the definition area of frequently used design parameters into the functions indicating the resource / performance characteristics F of (1) and (3), respectively. Here, A was 20.8 to 43,000 cases / second, and B was 1 to 300,000 cases / second. Therefore, the deriving unit 110 determines that (1) including A is superior to (3) including B for both the minimum value and the maximum value.
  • the resource repository 150 stores the resource list 151 shown in FIG.
  • the performance value is 8 and the configuration that minimizes the cost is an element of the optimal solution set 850.
  • the configuration that is not controlled by the “configuration having the performance value of 8 and minimizing the cost” has the following relationship: “the configuration having the performance value of 8 and the minimizing the cost” Also does not meet. The relationship is one of (performance, cost) (high, small), (equivalent, small), and (high, equivalent).
  • the performance sizing unit 120 lists the configurations not controlled by the resource configuration information 860 shown in FIG.
  • the resource allocation unit 130 allocates resources to each specific component.
  • a calculation example in which the resource allocation unit 130 allocates resources to each specific component is illustrated in the configuration ⁇ CPU3, MEM1, DISK1 ⁇ .
  • the resource allocation unit 130 divides the resources of the configuration ⁇ CPU3, MEM1, DISK1 ⁇ and allocates them to each specific component.
  • the resource allocation unit 130 is a value of CPU A , CPU C , CPU E , CPU D , MEM A , MEM C , MEM E , MEM D , DISK A , DISK C , DISK E , DISK D indicating the divided resource amount.
  • a subscript (for example, “ A ”) of each resource indicates a specific component (for example, specific component A) to which the resource corresponds.
  • CPU D * 100 exceeded 8 (10,000 cases / second) even when the minimum value of wi was 0.1 (GHz). For this reason, the allocation of the CPU to the specific component D may be a minimum allocation. Similarly, the CPU allocation to the specific component E can be a minimum value. On the other hand, since the allocation of the DISK size did not contribute to the performance, the resource allocation unit 130 distributed the DISK according to the ratio of wi.
  • the resource allocation unit 130 calculated the following allocation as the optimal resource allocation.
  • CPU A 2.9 GHz
  • CPU C 2.9 GHz
  • CPU E 0.1 GHz
  • CPU D 0.1 GHz.
  • MEM A 0.49 GB
  • MEM C 0.49 GB
  • MEM E 1 GB
  • MEM D 0.02 GB.
  • DISK A 1.997 TB
  • DISK C 0.001 TB
  • DISK E 0.001 TB
  • DISK D 0.001 TB.
  • the resource allocation unit 130 performed the same calculation for other configurations. Since the configuration ⁇ CPU3, MEM1, DISK1 ⁇ had only one CPU, it was found that all functions on the workflow were assigned to the same machine. As a result, the system configuration of FIG. 8 was obtained.
  • Each component described in each of the above embodiments does not necessarily need to be an independent entity.
  • a plurality of arbitrary constituent elements may be realized as one module. Any one of the constituent elements may be realized by a plurality of modules. Further, any one of the components may be any other one of the components. Further, any one part of the constituent elements may overlap with any other part of the constituent elements.
  • each component and a module that realizes each component may be implemented as resources if necessary. Moreover, each component and the module which implement
  • the program is recorded on a computer-readable non-transitory recording medium such as a magnetic disk or a semiconductor memory and provided to the computer.
  • the program is read from the non-transitory recording medium by the computer when the computer is started up.
  • the read program causes the computer to function as a component in each of the above-described embodiments by controlling the operation of the computer.
  • a plurality of operations are not limited to being executed at different timings. For example, other operations may occur during execution of an operation.
  • the execution timing of one operation and another operation may partially or entirely overlap.
  • each of the embodiments described above it is described that a certain operation becomes a trigger for another operation, but the description does not limit the relationship between the certain operation and another operation. For this reason, when each embodiment is implemented, the relationship between the plurality of operations can be changed within a range that does not hinder the contents.
  • the specific description of each operation of each component does not limit each operation of each component. For this reason, each specific operation
  • movement of each component may be changed in the range which does not cause trouble with respect to a functional, performance, and other characteristic in implementing each embodiment.
  • the specific component can be assigned based on the abstract workflow including the abstract component indicating the function, the information indicating the specific component corresponding to the abstract component, and the design information related to the resource amount allocation to the specific component.
  • a derivation unit for deriving an optimal solution set that is a set of the specific workflows having relatively superior resource / performance characteristics from the set of specific workflows, the optimal solution set, the design information, and the resource performance A performance sizing unit that generates resource configuration information indicating the resource to be allocated to the specific component included in the specific workflow based on the information and the first non-functional requirement satisfied by the specific workflow; and the resource configuration information And the specific workflow Generate and output system configuration information including information on the resource to be used preferentially based on the second non-functional requirement satisfied by the specific workflow and information on the resource related to the second non-functional requirement.
  • An information processing system including a resource allocation unit.
  • the derivation unit assigns each of the plurality of specific components corresponding to any one of the abstract components to the abstract workflow, and sets resource / performance characteristics corresponding to each of the specific workflows as resource amount 2.
  • the derivation unit compares the resource / performance characteristics weighted with the predetermined weight using the skyline method, and derives the optimal solution set based on the comparison result using the skyline method.
  • the information processing system according to supplementary note 2, characterized by:
  • the said performance sizing part performs any one of exploratory optimization and analytical optimization which makes the non-functional requirement which the said specific workflow satisfies one of restrictions and an optimization target.
  • the information processing system according to any one of appendices 1 to 3, wherein the resource to be allocated to the specific component is determined.
  • the said performance sizing part selects the candidate of the said resource which satisfies the said non-functional requirement based on the result of the optimization calculation which used the local search method, the annealing method, and the genetic algorithm arbitrarily
  • the information processing system according to appendix 4 characterized by:
  • a component information storage unit for storing information indicating a connection relationship between sections, the design information, information indicating a specific component corresponding to the abstract component, information indicating a connection relation between the sections, and the design
  • stores the information regarding the performance of the said resource, and the part which inputs the information regarding the performance of the said resource further,
  • the system configuration information optionally includes information on the specific workflow in which the resource is assigned to the specific component and information on the specific component assigned to the same resource.
  • the information processing system according to any one of 8 above.
  • the specific component can be allocated based on an abstract workflow including an abstract component indicating a function, information indicating a specific component corresponding to the abstract component, and design information related to resource amount allocation to the specific component.
  • second non-functional requirements the second based on the resource information on the non-functional requirements, generates system configuration information including information of the resource to be used preferentially, system design method of outputting.
  • the specific component can be assigned based on the abstract workflow including the abstract component indicating the function, the information indicating the specific component corresponding to the abstract component, and the design information related to the resource amount allocation to the specific component.
  • non-functional requirements of the second based on the resource information on the non-functional requirements, generates system configuration information including information of the resource to be used preferentially, program for executing a process of outputting to the computer.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

 本発明は、情報システムの自動構築において、ソフトウェア及びハードウェアの組合せを、より好適に選択する情報処理システムを提供する。その情報処理システムは、機能を示す抽象コンポーネントを含む抽象ワークフローに具体コンポーネントが割り当てられた具体ワークフローの集合から、リソース・性能特性が相対的に優れた最適解集合を導出する手段と、その最適解集合の具体ワークフローのリソース構成情報を生成する手段と、そのリソース構成情報に対する、優先的に使用するリソースの情報を含むシステム構成情報を生成し、出力する手段と、を備える。

Description

情報処理システム及びシステム設計方法
 本発明は、ソフトウェア及びハードウェアから構成されるシステムを、設計するための技術に関する。
 システムを自動設計するための技術は、例えばウェブサービスの合成という分野において注目されており、盛んに研究がなされている。特許文献1、特許文献2及び特許文献3に開示された技術は、機能要求あるいは非機能要求を充足するためのサービスの作成あるいは合成を目的としている。
 特許文献1は、サービス作成方法を開示する。第1に、そのサービス作成方法は、自然言語の要求を意味的に解析してウェブサービスの要件を識別する。第2に、そのサービス作成方法は、識別されたそのウェブサービスの要件に基づいてウェブサービスを決定し、順序付けする。第3に、そのサービス作成方法は、順序付けされたウェブサービスを組み立て、ユーザにとって利用可能なものとする。
 特許文献2は、ビジネスプロセスについて、事前条件及び事後条件に基づいてコンポーネントを合成することによる自動ワークフロー・システムを開示する。その自動ワークフロー・システムは、宣言型言語を使用してビジネス論理を実行する自動ワークフロー・システムである。そして、その自動ワークフロー・システムは、フロー、規則、及び状態をさらに含むプロセス記述を含む。そのフローは、ビジネス機能間の制御フローを表す。その状態は、ビジネス・エンティティについて法的状態遷移を表す。かつ、規則は、外部形式でビジネス・エンティティへ強制されるビジネス規則及び方針を表す。
 上述の構成において、その自動ワークフロー・システムは、機能要件を事前条件及び事後条件として記述することによって、機能要件に基づく自動合成を可能にする。
 特許文献3は、Webサービス構築管理方法を開示する。第1に、そのWebサービス構築管理方法は、非機能要求に基づいてサービス非機能要求情報を作成する。第2に、そのWebサービス構築管理方法は、その非機能要求に基づいて組合せ可能な実装機能群の情報を保管する。第3に、そのWebサービス構築管理方法は、その要求を実現するためのサービス論理モデル情報を作成する。第4に、そのWebサービス構築管理方法は、その論理モデル情報に基づいてその論理モデルを実現する。第5に、そのWebサービス構築管理方法は、その実装機能群情報に基づいて、その非機能要求と組合せ可能な実装機能群を備えたプログラム群を生成する。第6に、そのWebサービス構築管理方法は、そのサービス非機能要求情報を保管する。第7に、そのWebサービス構築管理方法は、そのプログラム群を保管する。第8に、そのWebサービス構築管理方法は、その非機能要求を解釈する。第9に、そのWebサービス構築管理方法は、その組合せ可能な実装機能群を選択し、そのプログラム群から実行プログラムを構成する。第10に、そのWebサービス構築管理方法は、その実行プログラムを実行する。
 上述の構成において、そのWebサービス構築管理方法は、非機能要件に基づいて、Webサービスの論理モデルの生成を実現する。
 また、特許文献4及び特許文献5に開示された技術は、情報システムの構築を支援することを目的とする技術である。
 特許文献4は、意味論を用いた情報システムの自動合成方法を開示する。第1に、その自動合成方法は、複数のコンピュータシステム機能ソースをコンピュータシステムにおけるサービスとして意味論的に記述する。第2に、その自動合成方法は、複数のプログラム可能なコンピュータシステム実行段にコンピュータシステムをセグメント化する。第3に、その自動合成方法は、そのコンピュータシステム実行段であるプレゼンテーションレイヤで生成されたタスクインターフェースに従って、そのサービスを有する実行可能なタスクをリアルタイムで動的に構成するステップを有する。
 特許文献5は、複数のコンポーネントから構成されるシステムの開発を支援する開発支援装置を開示する。その開発支援装置は、データベース、計算手段、決定手段及び予測手段を含む。
 そのデータベースは、既存システムのコンポーネントの種別毎に資源使用量を記憶する。その計算手段は、その開発対象システムの各コンポーネントと同じ種別のコンポーネントについてそのデータベースに記憶されている資源使用量を比較して、開発対象システムの複数のコンポーネントへの資源使用量の配分比を算出する。その決定手段は、その開発対象システムの各コンポーネントに対して、配分比を満足する範囲内である量の資源使用量を配分する。その予測手段は、トランザクションを複数同時に実行した場合のシステム全体の性能を予測する。その決定手段及びその予測手段は、予測結果が性能要求を満たすまで、配分比を満足する範囲内で資源使用量を配分し直し、予測することを繰り返す。
 上述の構成において、その開発支援装置は、性能要求を満足するのに必要な各コンポーネントの資源使用量を探索する。換言すると、その開発支援装置は、複数コンポーネントから構成されるシステムについての、リソース配分の決定支援を実現する。
 また、特許文献6及び特許文献7に開示された技術は、仮想マシンの配置を支援する目的の技術であり、仮想マシンレベルでの機能要求及び非機能要求を考慮したものである。
 特許文献6は、コンピュータ資源を仮想化した仮想マシンを管理する計算機を開示する。その計算機は、複数の物理マシンをその仮想マシンを配備するための物理マシンとして管理する仮想マシン配備決定部を含む。
 第1に、その仮想マシン配備決定部は、その仮想マシン上で動作するソフトウェアの種別と、そのソフトウェアの運用方針を含む設定情報とを取得する。第2に、その仮想マシン配備決定部は、その設定情報に基づいて、その仮想マシンの配備先となる物理マシンを、その複数の物理マシンの中から選択して決定する。
 上述の構成において、その計算機は、非機能要件を考慮して、仮想マシンを物理マシンに配備する。
 特許文献7は、クラウド環境内で資源を配分するシステム及び方法を提供する方法を開示する。第1に、その方法は、仮想ハイパーバイザをアプリケーションプログラミングインタフェースとして生成することによって、クラウド環境と1つ以上のデータセンタとの間に抽象化レイヤを提供する。第2に、その方法は、そのデータセンタによる作業負荷要求に応答し、その作業負荷の非機能要件がその仮想ハイパーバイザを用いるその抽象化レベルにおいて対処されるように、その仮想ハイパーバイザを用いて資源を区画する。更に、その方法は、そのデータセンタ内の仮想マシンをインスタンス化する。
 上述の構成において、その方法は、複数のデータセンタ間にまたがる独立したクラウドシステムにおいて、論理的に接続することで単一のクラウドシステムとして取り扱うための抽象化を行い、非機能要件に基づいて仮想マシンの配備を自動的に導出する。しかし、使用することができる非機能要件は仮想マシン単位であるため、原理上、複数の機能が同一仮想マシンに割り当てられた場合には、適切な配備を導出することはできない。
 非特許文献1は、大きなデータ量をもつデータベース中から、最適なデータを抽出するための演算として、スカイライン法の原理を提案する。さらに、非特許文献1は、その演算の有効性について、2次元及び多次元データに対してスカイライン法を実行した、評価実験の結果を示す。
特表2009-524173号公報 特開2011-129150号公報 国際公開第2011/096314号 特表2007-535767号公報 特開2010-128835号公報 国際公開第2013/072978号 特表2013-518330号公報
Stephan Borzsonyi、Donald Kossmann、Konrad Stocker「The Skyline Operator」、IEEE Computer Society、2001年、Proceedings of THE 17th International Conference on Data Engineering、p.p.421-430
 情報システムの自動構築においては、その情報システムとして正しく動作し、機能要求及び非機能要求を満足し、かつコストに対して最適な、ソフトウェア及びハードウェアの組合せを自動的に選択することが求められる。
 具体的には、情報システムは、ソフトウェア及びリソースの複雑な組合せにより構築される。また、情報システムの構築においては、顧客要求を満足する必要がある。その顧客要求は、機能要求と非機能要求とに大別される。その機能要求は、構築される情報システムにおける機能を定義するものである。即ち、その機能要求は、どのような入力に対してどのような出力をどのように提示するかを決定するものである。その非機能要求は、その機能を達成すべき程度を定義するものである。例えば、その非機能要求は、想定負荷に対する処理時間や構築コストなど様々な制約として与えられる。
 従って、情報システムの自動構築の実現には、以下の3つの技術が必要である。第1の技術は、システムとして正しく動作する、ソフトウェア及びリソースの組合せを得るための技術である。第2の技術は、選択された組合せが機能要求及び非機能要求を満足しているかどうかを判定する技術である。第3の技術は、その組合せをコストに対して最適化する技術である。
 ここで、上述したように、情報システムの構成は、ソフトウェア及びリソースの複雑な組合せである。このため、情報システムの自動構築の処理における探索空間は、例えば、Webサービス合成の処理における探索空間と比較して、非常に大きい。
 図24は、情報システムの構築とWebサービス合成とのそれぞれにおける、探索空間を構成する軸の違いを説明する図である。Webサービス合成は、アプリケーションに相当するWebサービス(図中のWebサービス合成のApp(Application)1乃至5)の実行順序と組合せを考慮して実行される。一方、情報システムの構築においては、アプリケーションとしてのソフトウェア(図中のITシステム構築のApp1乃至5)について、ハードウェアを含むリソースの割り当てを考慮して実行される必要がある。ここで、そのリソースは、図24に示す、CPU(Central Processing Unit)やMem(Memory)、Diskに加え、これらを束ねた仮想的なVM(Virtual Machine)などである。この場合、その組合せ方によって、性能や耐故障性など様々な特性が変化する。
 即ち、情報システムの構築における探索空間は、Webサービス合成における探索空間と比較し、爆発的に増大している。換言すると、サービス合成の場合には単体で動作する既存のコンポーネントにリソースのパラメータを与える必要がないのに対して、情報システムの設計の場合には、個々コンポーネントに割り当てる様々なリソースを考慮する必要がある。そのため、より多くの組合せが考慮されなければならない。よって、探索空間が乗算的に増大する。このため、Webサービス合成で使用される探索空間の削減技術は、情報システムの構築における探索空間の削減技術としての要求を満たさない。
 換言すると、機能要求及び非機能要求から、目的とする複雑なシステム構築において、ソフトウェア選択とリソース選択とを自動で実施することが困難である。その理由は、以下のとおりである。
 ソフトウェア性能は、割り当てられるリソースの性能に依存する。従って、一般的に、ソフトウェア選択とリソース選択とは、同時に考慮されるべきである。しかしながら、ソフトウェア選択とリソース選択とを同時に考慮する場合、結果として、探索空間の組合せ爆発が発生し、探索空間が大きくなりすぎる。
 また、その探索空間の組合せ爆発の問題を、ソフトウェア選択を実施した後にリソース選択を実施することで解決しようとする場合、ソフトウェア選択が困難になる。
 その理由は、ソフトウェア選択は、リソース選択に対する依存関係をもつためである。すなわち、割り当てられるリソースによって性能の優位性が逆転する可能性のあるソフトウェア同士を、それらのソフトウェアに割り当てられるリソースが決定される前に、比較し、選択する必要があるためである。
 さらに、上述した先行技術文献に記載された技術においては、以下の問題点がある。
 特許文献1のサービス作成方法は、構築される情報システムの最適化に、時間がかかりすぎるという問題点がある。その理由は、特許文献1のサービス作成方法がウェブサービスを対象とした方法であり、情報システムの構築のように、パラメータ数が多く、探索空間を大きい処理に適していないからである。
 特許文献2の自動ワークフロー・システムは、性能情報をはじめとする非機能要件が重要となる情報システムを、自動構成することができないという問題点がある。その理由は、その自動ワークフロー・システムが、非機能要件について考慮されていないからである。
 特許文献3のWebサービス構築管理方法は、ハードウェアを機能に対して割り当てることが設計上重要となる情報システムの自動設計には適用することはできないという問題点がある。その理由は、そのWebサービス構築管理方法が、ハードウェア割り当ては固定である、Webサービスを対象としているからである。
 上述のとおり、特許文献1、特許文献2及び特許文献3のような、サービスやビジネスプロセスの合成に関する技術は、ハードウェアの構成及びハードウェアの割り当てを考慮しない。このため、それらの技術は、情報システムとして正しく動作するソフトウェア及びハードウェアの組合せを選択するという課題を解決することができない。
 特許文献4の自動合成方法は、性能や可用性といった非機能要件を考慮しない。そのため、自動合成結果について設計者が判断し、候補から選択する必要があるという問題点がある。
 特許文献5の開発支援装置は、自動的にアプリケーションを決定する用途に使用することができないという問題点がある。その理由は、その開発支援装置が、使用するアプリケーションのモデルの、入力を必要とするからである。
 特許文献6の計算機は、機能要件を基にアプリケーションを決定することができないという問題点がある。その理由は、その計算機が、機能要件やミドルウェア上に載せられるアプリケーションプログラムについて考慮しないからである。
 特許文献7の方法は、複数の機能を同一仮想マシンに割り当てた場合に、適切な配備を導出することができないという問題点を有する。その理由は、使用することができる非機能要件が仮想マシン単位であるからである。
 上述の特許文献5、特許文献6及び特許文献7は、非機能要件に基づいて物理システムあるいは仮想化されたシステムの構成を導出する技術を開示する。一方で、これらの文献に記載された技術は、機能要求について考慮しない。このため、自動的に機能を充足するアプリケーションを開発者が選定する必要がある。このため、それらの技術は、機能要求及び非機能要求を満足する、ソフトウェア及びハードウェアの組合せを自動的に選択するという課題を解決することができない。
 本発明の目的は、情報システムの自動構築において、ソフトウェア及びハードウェアの組合せを、より好適に選択する情報処理システム、システム設計方法及びそのためのプログラムあるいはそのプログラムを記録したコンピュータ読み取り可能な非一時的記録媒体を提供することにある。
 本発明の一様態における情報処理システムは、機能を示す抽象コンポーネントを含む抽象ワークフローと、前記抽象コンポーネントに対応する具体コンポーネントを示す情報と、前記具体コンポーネントへのリソース量割り当てに関する設計情報とに基づいて、前記具体コンポーネントを割り当てられた具体ワークフローの集合の内、リソース・性能特性が相対的に優れた前記具体ワークフローの集合である最適解集合を導出する導出手段と、前記最適解集合と、前記設計情報と、リソースの性能に関する情報と、前記具体ワークフローが充足する第1の非機能要件と、に基づいて、前記具体ワークフローに含まれる前記具体コンポーネントに割り当てる前記リソースを示すリソース構成情報を生成する性能サイジング手段と、前記リソース構成情報と、前記具体ワークフローと、前記具体ワークフローが充足する第2の非機能要件と、前記第2の非機能要件に関するリソースの情報とに基づいて、優先的に使用する前記リソースの情報を含むシステム構成情報を生成し、出力するリソース割り当て手段と、を含む。
 本発明の一様態におけるシステム設計方法は、機能を示す抽象コンポーネントを含む抽象ワークフローと、前記抽象コンポーネントに対応する具体コンポーネントを示す情報と、前記具体コンポーネントへのリソース量割り当てに関する設計情報とに基づいて、前記具体コンポーネントを割り当てられた具体ワークフローの集合の内、リソース・性能特性が相対的に優れた、具体ワークフローの集合である最適解集合を導出し、前記最適解集合と、前記設計情報と、リソースの性能に関する情報と、前記具体ワークフローが充足する第1の非機能要件とに基づいて、前記具体ワークフローに含まれる前記具体コンポーネントに割り当てる前記リソースを示すリソース構成情報を生成し、前記リソース構成情報と、前記具体ワークフローと、前記具体ワークフローが充足する第2の非機能要件と、前記第2の非機能要件に関するリソースの情報とに基づいて、優先的に使用する前記リソースの情報を含むシステム構成情報を生成し、出力する。
 本発明の一様態におけるコンピュータ読み取り可能な非一時的記録媒体は、機能を示す抽象コンポーネントを含む抽象ワークフローと、前記抽象コンポーネントに対応する具体コンポーネントを示す情報と、前記具体コンポーネントへのリソース量割り当てに関する設計情報とに基づいて、前記具体コンポーネントを割り当てられた具体ワークフローの集合の内、リソース・性能特性が相対的に優れた、具体ワークフローの集合である最適解集合を導出する処理と、前記最適解集合と、前記設計情報と、リソースの性能に関する情報と、前記具体ワークフローが充足する第1の非機能要件とに基づいて、前記具体ワークフローに含まれる前記具体コンポーネントに割り当てる前記リソースを示すリソース構成情報を生成する処理と、前記リソース構成情報と、前記具体ワークフローと、前記具体ワークフローが充足する第2の非機能要件と、前記第2の非機能要件に関するリソースの情報とに基づいて、優先的に使用する前記リソースの情報を含むシステム構成情報を生成する処理と、出力する処理をコンピュータに実行させるプログラムを記録する。
 本発明は、情報システムの自動構築において、ソフトウェア及びハードウェアの組合せを、より好適に選択することを可能にするという効果がある。
本発明の第1の実施形態に係る情報処理システムの構成を示すブロック図である。 第1の実施形態における抽象ワークフローの一例を示す図である。 第1の実施形態における機能リストの一例を示す図である。 第1の実施形態における性能リストの一例を示す図である。 第1の実施形態における具体ワークフローの一例を示す図である。 第1の実施形態におけるリソースリストの一例を示す図である。 第1の実施形態におけるリソース構成情報の一例を示す図である。 本発明の実施例におけるシステム構成情報の一例を示す図である。 第1の実施形態に係る情報処理システムを実現するコンピュータのハードウェア構成を示すブロック図である。 第1の実施形態における情報処理システムの動作を示すフローチャートである。 第3の実施形態における具体ワークフローが生成される場合の動作を示す図である。 第2の実施形態におけるワークフローに対してリソース・性能特性を計算する上でワークフローを変形させ、分岐を除去する例を示す図である。 第1の実施形態におけるリソース量に対応する所定の重みで性能を重み付けし、リソース・性能特性を比較する例を説明する図である。 第1の実施形態の変形例に係る情報処理システムの構成を示すブロック図である。 本発明の第2の実施形態に係る情報処理システムの構成を示すブロック図である。 第2の実施形態における機能要求の一例を示す図である。 第2の実施形態における接続リストの一例を示す図である。 第2の実施形態における情報処理システムの動作を示すフローチャートである。 第2の実施形態の変形例に係る情報処理システムの構成を示すブロック図である。 図本発明の第3の実施形態に係る情報処理システムの構成を示すブロック図である。 第3の実施形態におけるスカイライン集合について説明する図である。 第3の実施形態におけるスカイライン集合が生成される場合の動作を説明する図である。 本発明の第1の実施例における各具体コンポーネントの値域に関する情報の一例を示す図である。 関連技術における情報システムの構築とWebサービス合成とのそれぞれにおける、探索空間を構成する軸の違いを説明する図である。
 本発明を実施するための形態について図面を参照して詳細に説明する。尚、各図面及び明細書記載の各実施形態において、同様の構成要素には同様の符号を付与し、適宜説明を省略する。また、図面中の矢印の方向は、一例を示すものであり、ブロック間の信号の向きを限定するものではない。
 <<<第1の実施形態>>>
 図1は、本発明の第1の実施形態に係る情報処理システム101の構成を示すブロック図である。
 図1に示すように、本実施形態に係る情報処理システム101は、導出部110と、性能サイジング部120と、リソース割当部130とを含む。尚、図1に示す各構成要素は、ハードウェア単位の回路でも、コンピュータ装置の機能単位に分割された構成要素でもよい。ここでは、図1に示す構成要素は、コンピュータ装置の機能単位に分割された構成要素とする。
 ===導出部110===
 導出部110は、抽象ワークフロー830と、機能リスト141と、性能リスト142とに基づいて、最適解集合850を導出する。
 抽象ワークフロー830は、機能を示す抽象コンポーネントを含む。抽象ワークフロー830の詳細は、後述する。
 機能リスト141は、抽象コンポーネントに対応する具体コンポーネントを示す情報とも呼ばれる。ここで、その具体コンポーネントは、情報システムを構成する、実在するソフトウェアアプリケーション(アプリケーション、コンポーネント、ソフトウェア及びプログラムなどとも呼ばれる)である。機能リスト141の詳細は、後述する。
 性能リスト142は、具体コンポーネントへのリソース量割り当てに関する設計情報とも呼ばれる。ここで、そのリソース量割り当てにおけるリソースは、ハードウェア(CPUや、メモリ、ディスクなど)である。即ち、リソース量は、ハードウェア及び仮想ハードウェアの数量である。性能リスト142の詳細は、後述する。
 その最適解集合850は、具体コンポーネントを割り当てられた図5に示すような具体ワークフロー840の集合の内、リソース・性能特性が相対的に優れた具体ワークフロー840の集合である。例えば、最適解集合850は、図5に示す具体ワークフロー840の集合の内の、1行目の具体ワークフロー840を要素とする集合である。
 そのリソース・性能特性は、例えば、具体ワークフロー840の、割り当てられたリソース量に対する、性能を示す関数である。導出部110は、例えば、性能リスト142に含まれる、その具体コンポーネントの性能を示す関数(後述)に基づいて、そのリソース・性能特性を生成する。
 具体的には、第1に、導出部110は、具体ワークフロー840のそれぞれに対応するリソース・性能特性を、リソース量に対応する所定の重みで重み付けして比較する。その具体ワークフロー840は、抽象ワークフロー830に含まれる抽象コンポーネントのいずれかひとつに対応する、複数の具体コンポーネントのそれぞれが、その抽象ワークフロー830に割り当てられたものである。
 その所定の重みは、そのリソース・性能特性を比較する場合の、リソース量の所定の定義域の範囲を限定する、窓関数であってよい。即ち、その所定の重みは、リソース量の所定の定義域の範囲を「1」とし、ほかの範囲を「0」としてよい。またその所定の重みは、リソース量の所定の定義域の範囲を「0」を超え「1」以下である小数としてもよい。その所定の重みは、経験的にあるいは理論的に得られる、そのリソース量がシステムの設計時において設計値として採用される頻度に対応する。
 第2に、導出部110は、そのリソース・性能特性を比較した結果に基づいて、その具体コンポーネントを含む具体ワークフロー840の集合である、最適解集合850を導出する。
 ===抽象ワークフロー830===
 図2は、抽象ワークフロー830の一例を示す図である。図2において、a、b、c及びdのそれぞれは、抽象コンポーネントを示す。抽象コンポーネントは、機能カテゴリの区分、即ち機能を示す。本実施形態において、aは、例えば入力データを保存する機能を示す抽象コンポーネントである。bは、例えば入力データの各単語の出現頻度を計算する機能を示す抽象コンポーネントである。cは、例えば出現頻度の大きい順に表示する機能を示す抽象コンポーネントである。dは、例えば計算結果を保存する機能を示す抽象コンポーネントである。
 抽象ワークフロー830は、G:=<f0x、F、V>と表現される場合もある。ここで、f0x∈Fは、最初に実行される抽象コンポーネントである。Fは、ワークフローに含まれる抽象コンポーネントの集合である。Vは、抽象コンポーネント間の接続を示す、抽象コンポーネント2つ組の情報である。
 即ち、図2に示す抽象ワークフロー830は、最初に実行される抽象コンポーネントがaであることを示す。そして、抽象ワークフロー830は、抽象ワークフロー830が抽象コンポーネントa、b、c及びdを含むことを示す。さらに、抽象ワークフロー830は、抽象コンポーネントaとbとの間の、抽象コンポーネントbとdとの間の、及び抽象コンポーネントdとcとの間の、接続を示す。
 尚、抽象ワークフロー830は、図2に示す例に係わらず、任意の構造であってよい。
 ===機能リスト141===
 図3は、機能リスト141の一例を示す図である。図3に示すように、機能リスト141は、具体コンポーネントcと、その具体コンポーネントcが属する抽象コンポーネントで示される機能カテゴリ区分fと、その具体コンポーネントcが充足する制約aとの3つ組を示す、レコードを含む。ここで、その制約は、例えば、信頼性、可用性要求などである。
 本実施形態において、Aは、例えば、10並列分散ファイルシステムXへ保存するアプリケーションを示す具体コンポーネントcである。Bは、例えば、ジャーナリングファイルシステムYへ保存するアプリケーションを示す具体コンポーネントcである。Cは、例えば、ワードカウントアプリケーションを示す具体コンポーネントcである。Dは、例えば、Webアプリケーションを示す具体コンポーネントcである。Eは、例えば、メモリキャッシュを使用するコンポーネントを示す具体コンポーネントcである。Fは、例えば、ネットワークストレージを使用するコンポーネントを示す具体コンポーネントcである。
 換言すると、機能リスト141の1つのレコード<c、f、a>は、具体コンポーネントcが、機能カテゴリ区分fに属し、制約aを充足することを意味する。
 尚、機能リスト141は、図3に示す例に係わらず、任意の構造であってよい。例えば、機能リスト141は、aを含まなくてもよいし、図3に示す情報以外の、任意の情報を含んでもよい。例えば、機能リスト141は、複数のリストに分離されてもよいし、その一部あるいは全部を、性能リスト142に統合されてもよい。
 ===性能リスト142===
 図4は、性能リスト142の一例を示す図である。図4に示すように、性能リスト142は、具体コンポーネントcと、その具体コンポーネントcの、性能を示す関数v、上述の重みを示す関数w及びコスト情報pとの4つ組を示す、レコードを含む。
 ここで、関数vは、あるリソース量rが与えられたときの性能v(r)を示す、ベクトルからベクトルへの関数である。リソース量rは、例えば、(CPU:20GHz(Giga Hertz)、Memory:50GB(Giga Byte)、Disk:3TB(Tera Byte))のような多次元(ベクトル)データである。
 また、関数wは、あるリソース量(ベクトル形式)rが与えられたときの重みw(r)を示す、ベクトルからスカラへの関数である。重みw(r)は、上述したように、そのリソース量rが、システムの設計時において採用される頻度に対応する値である。即ち、関数wは、あるリソースのリソース量の、設計出現頻度とも言われる。
 換言すると、性能リスト142のひとつのレコード<c、v、w、p>は、以下のことを意味する。第1に、具体コンポーネントcが、あるリソース量(ベクトル形式)rが与えられたときの性能v(r)をもつ。第2に、そのリソース量に対応する重みがw(r)である。第3に、その具体コンポーネントの価格がpである。
 尚、性能リスト142は、図4に示す例に係わらず、任意の構造であってよい。例えば、機能リスト141は、図4に示す情報以外の、任意の情報を含んでもよい。例えば、性能リスト142は、複数のリストに分離されてもよいし、その一部あるいは全部を、機能リスト141に統合されてもよい。
 ===具体ワークフロー840===
 図5は、具体ワークフロー840の一例を示す図である。図5は、4つの具体ワークフロー840の集合を示す。図5において、A、B、C、D、E及びFのそれぞれは、図3に示す具体コンポーネントcに対応する。
 具体ワークフロー840は、GD:=<c0x、CD、VD>と表現される場合もある。ここで、c0x∈CDは、最初に実行される具体コンポーネントcである。CDは、GDに含まれるcの集合である。VDは、c間の接続を示す、cの2つ組の情報である。
 即ち、図5に示す、最上行の具体ワークフロー840は、最初に実行される具体コンポーネントcがAであることを示す。そして、その具体ワークフロー840は、具体ワークフロー840が具体コンポーネントcのA、C、D及びEを含むことを示す。さらに、具体ワークフロー840は、具体コンポーネントcのAとCとの間の、具体コンポーネントcのCとEとの間の、及び具体コンポーネントcのEとDとの間の、接続を示す。
 ===性能サイジング部120===
 性能サイジング部120は、最適解集合850と、リソースリスト151と、第1の非機能要件とに基づいて、リソース構成情報860を生成する。前述したように、最適解集合850は、リソース・性能特性を示す具体ワークフロー840を含む。その第1の非機能要件は、具体ワークフロー840が充足する非機能要件である。リソース構成情報860は、具体ワークフロー840に含まれる具体コンポーネントに割り当てるリソースと、性能との対応を示す。リソースリスト151は、リソースの性能に関する情報とも呼ばれる。その第1の非機能要件は、例えば、性能である。
 性能サイジング部120は、例えば、局所探索法、焼きなまし法及び遺伝的アルゴリズムを任意に用いた最適化計算の結果に基づいて、その第1の非機能要件を充足する、そのリソースの候補を選定してよい。
 ===リソースリスト151===
 図6は、リソースリスト151の一例を示す図である。リソースリスト151は、システムを構成するリソースhと、そのリソースhの、リソース量r、価格情報p及び入手容易性eとの4つ組を示す、レコードを含む。
 換言すると、リソースリスト151の1つのレコード<h、r、p、e>は、リソースhが、リソース量rをもち、その価格はpであって、[0、1]の範囲で正規化された入手容易性はeであることを意味する。
 尚、リソースリスト151は、図6に示す例に係わらず、任意の構造であってよい。例えば、リソースリスト151は、eを含まなくてもよいし、図6に示す情報以外の、任意の情報を含んでもよい。
 ===リソース構成情報860===
 図7は、リソース構成情報860の一例を示す図である。図7に示すようにリソース構成情報860は、リソース構成と、そのリソース構成に対する性能及びコストを示す。尚、リソース要素の列の数値のそれぞれは、そのリソース要素の台数を示す。
 ===リソース割当部130===
 リソース割当部130は、リソース構成情報860と、最適解集合850に含まれる具体ワークフロー840と、その具体ワークフロー840が充足する第2の非機能要件と、リソースリスト151とに基づいて、図8に示すようなシステム構成情報890を生成し、出力する。
その具体ワークフロー840は、最適解集合850に含まれる具体ワークフロー840である。リソースリスト151は、第2の非機能要件に関するリソースの情報とも呼ばれる。
 ===システム構成情報890===
 図8は、システム構成情報890の一例を示す図である。図8に示すように、システム構成情報890は、優先的に使用するリソースの情報を少なくとも含む。
 尚、システム構成情報890は、図8に示す例に係わらず、任意の構造であってよい。例えば、システム構成情報890は、コストや性能の情報を含まなくてもよいし、図8に示す情報以外の、任意の情報を含んでもよい。
 以上が、情報処理システム101の機能単位の各構成要素についての説明である。
 次に、情報処理システム101のハードウェア単位の構成要素について説明する。
 図9は、本実施形態における情報処理システム101を実現するコンピュータ700のハードウェア構成を示す図である。まず、図9を参照して、情報処理システム101を実現するコンピュータ700の、ハードウェア単位の各構成要素について説明する。
 図9に示すように、コンピュータ700は、CPU(Central Processing Unit、プロセッサとも呼ばれる)701、記憶部702、記憶装置703、入力部704、出力部705及び通信部706を含む。さらに、コンピュータ700は、外部から供給される記録媒体(または記憶媒体)707を含む。例えば、記録媒体707は、情報を非一時的に記憶する不揮発性記録媒体(非一時的記録媒体)である。また、記録媒体707は、情報を信号として保持する、一時的記録媒体であってもよい。
 CPU701は、オペレーティングシステム(不図示)を動作させて、コンピュータ700の全体の動作を制御する。例えば、CPU701は、記憶装置703に装着された記録媒体707から、そのプログラムやデータを読み込み、読み込んだそのプログラムやそのデータを記憶部702に書き込む。ここで、そのプログラムは、例えば、後述の図10に示すフローチャートの動作をコンピュータ700に実行させるためのプログラムである。
 そして、CPU701は、その読み込んだプログラムに従って、またその読み込んだデータに基づいて、図1に示す導出部110、性能サイジング部120及びリソース割当部130として各種の処理を実行する。
 尚、CPU701は、通信網(不図示)に接続される外部コンピュータ(不図示)から、記憶部702にそのプログラムやそのデータをダウンロードしてもよい。
 記憶部702は、そのプログラムやそのデータを記憶する。記憶部702は、例えば、抽象ワークフロー830、機能リスト141、性能リスト142、具体ワークフロー840、リソース構成情報860及びリソースリスト151を記憶してよい。記憶部702は、導出部110、性能サイジング部120及びリソース割当部130の一部として含まれてよい。
 記憶装置703は、例えば、光ディスクや、フレキシブルディスク、磁気光ディスク、外付けハードディスク、半導体メモリなどであって、記録媒体707を含む。記憶装置703(記録媒体707)は、そのプログラムをコンピュータ読み取り可能に記憶する。記憶装置703は、例えば、抽象ワークフロー830、機能リスト141、性能リスト142、具体ワークフロー840、リソース構成情報860及びリソースリスト151を記憶してよい。記憶装置703は、導出部110、性能サイジング部120及びリソース割当部130の一部として含まれてよい。
 入力部704は、オペレータによる操作の入力や外部からの情報の入力を受け付ける。入力操作に用いられるデバイスは、例えば、マウスや、キーボード、内蔵のキーボタン及びタッチパネルなどである。入力部704は、導出部110、性能サイジング部120及びリソース割当部130の一部として含まれてよい。
 出力部705は、例えばディスプレイで実現される。出力部705は、例えばGUI(GRAPHICAL User Interface)によるオペレータへの入力要求や、オペレータに対する出力提示などのために用いられる。出力部705は、導出部110、性能サイジング部120及びリソース割当部130の一部として含まれてよい。
 通信部706は、外部システムとのインタフェースを実現する。通信部706は、導出部110、性能サイジング部120及びリソース割当部130の一部として含まれてよい。
 以上説明したように、図1に示す情報処理システム101の機能単位のブロックは、図9に示すハードウェア構成のコンピュータ700によって実現される。但し、コンピュータ700が備える各部の実現手段は、上記に限定されない。すなわち、コンピュータ700は、物理的に結合した1つの装置により実現されてもよいし、物理的に分離した2つ以上の装置を有線または無線で接続し、これら複数の装置により実現されてもよい。
 尚、上述のプログラムのコードを記録した記録媒体707が、コンピュータ700に供給される場合、CPU701は、記録媒体707に格納されたそのプログラムのコードを読み出して実行してもよい。あるいは、CPU701は、記録媒体707に格納されたそのプログラムのコードを、記憶部702、記憶装置703またはその両方に格納してもよい。すなわち、本実施形態は、コンピュータ700(CPU701)が実行するそのプログラム(ソフトウェア)を、一時的にまたは非一時的に、記憶する記録媒体707の実施形態を含む。尚、情報を非一時的に記憶する記憶媒体は、不揮発性記憶媒体とも呼ばれる。
 以上が、本実施形態における情報処理システム101を実現するコンピュータ700の、ハードウェア単位の各構成要素についての説明である。
 次に本実施形態の動作について、図面を参照して詳細に説明する。
 図10は、本実施形態の動作を示すフローチャートである。尚、このフローチャートによる処理は、前述したCPU701によるプログラム制御に基づいて、実行されてよい。また、処理のステップ名については、S601のように、記号で記載する。
 導出部110は、以下のように動作する。
 導出部110は、抽象ワークフロー830を取得したことを契機に、図10に示す動作を開始する。
 導出部110は、機能リスト141に基づいて、抽象ワークフロー830に含まれる抽象コンポーネントfのそれぞれに対応する具体コンポーネントcの集合Cを取得する(ステップS601)。例えば、導出部110は、抽象ワークフロー830の抽象コンポーネントを集合Cで置き換えた中間ワークフローを生成する。
 次に、導出部110は、その中間ワークフローに含まれる集合Cに基づいて、それぞれ1つずつ具体コンポーネントcを選択し、具体ワークフロー840を生成する(ステップS602)。
 図11は、ステップS601とステップS602の、具体ワークフロー840が生成される動作を説明する図である。導出部110は、ステップS601において、機能リスト141と抽象ワークフロー830とから中間ワークフローを生成する。導出部110は、ステップS602において、中間ワークフローから具体ワークフロー840を生成する。
 次に、導出部110は、具体ワークフロー840から最適解集合850を導出する(ステップS603)。以下に、導出部110が、具体ワークフロー840から最適解集合850を導出する動作の一例を、詳細に説明する。
 第1に、導出部110は、具体ワークフロー840のリソース・性能特性となる関数fGDx(r)を、個々の具体コンポーネントcのリソース・性能特性の関数v(r)とワークフローの形状とから合成によって求める。第2に、導出部110は、求めた関数fGDx(r)のうち、最適なリソース・性能特性の関数fGDx(r)を得られる具体コンポーネントを選択する。この選択は、ナップザック問題として知られている最適化計算問題に帰着し、その解き方には動的計画法を用いることができる。但し、定数の比較を使用するナップザック問題と異なる点として、関数fGDx(r)の最適化は、リソース・性能特性を示す関数間の、半順序による比較を使用する。そのため、得られる最適解は単一であることが保証されない最適解集合850である。
 接続関係にある関数どうしの合成は、以下の法則に基づいて実行される。関数の接続関係は、直列接続と、合流によって定義されるため、それぞれの接続関係の法則について説明する。
 例えば、コンポーネントaのリソース・性能特性を示す関数f(r)とコンポーネントbのリソース・性能特性を示す関数f(r)との直列接続a→bのリソース・性能特性を示す関数は、fa→b(r):=min(f(r)、f(r))である。また、f(r)とf(r)とのf(r)への合流[a|b]→cのリソース・性能特性を示す関数は、f[a|b]→c(r):=min(min(f(r)、f(r))、f(r))である。
 上述の定義を用いることができるように、分岐のあるワークフローを、分岐のないワークフローに置き換えることができる。図12は、ワークフローの分岐の解消を説明する図である。図12に示すように、上側の分岐のあるワークフローは、下側の分岐のないワークフローを形成することができる。従って、上述の直列接続と合流とのそれぞれの、リソース・性能特性を示す関数の合成により、任意のワークフローのリソース・性能特性を示す関数を求めることができる。
 また、導出部110は、各具体コンポーネントcについて、比較を行うための定義域を、重みを示すwを用いて限定する。
 図13は、リソース量に対応する所定の重みで性能を重み付けし、リソース・性能特性を比較する例を説明する図である。図13は、2つの具体コンポーネントのそれぞれのリソース・性能特性を示す関数401と関数411とを比較する場合を示す。関数402及び関数412のそれぞれは、その2つの具体コンポーネントのそれぞれに対応するwである。関数403及び関数413のそれぞれは、関数401が関数402で重み付けされたもの、及び関数411が関数412で重み付けされたものである。換言すると、関数403及び関数413のそれぞれは、リソース・性能特性を示す関数401及び関数411のそれぞれが、窓関数wと乗算され、範囲を限定されたものである。
 導出部110は、関数403と関数413とを、それらの最大値や、最小値、中間値及び積分値などの組合せに基づいて、比較することで、優劣(最適さ)を判定する。
 以上が、導出部110が、具体ワークフロー840から最適解集合850を導出する動作の説明である。
 尚、導出部110は、複数の抽象ワークフロー830を取得する場合がある。この場合、導出部110は、各抽象ワークフロー830に対応する最適解集合850を前述のステップS601乃至ステップS603によって導出する。次に、導出部110は、それらの最適解集合850の和集合をとり、その和集合からいずれかの抽象ワークフロー830において最適解とならないものを除去すればよい。
 図10に戻って、性能サイジング部120は、最適解集合850と性能リスト142とリソースリスト151と非機能要件とに基づいて、リソース構成情報860を生成する(ステップS604)。
その非機能要件は、最適解集合850に含まれる具体ワークフロー840が充足する第1の非機能要件であり、例えば、性能やコストである。
 換言すると、性能サイジング部120は、入力された最適解集合850に含まれる具体ワークフロー840であるGDについて、そのリソース・性能特性fGDx(r)をリソースrについて解く。これは、情報処理システム101に与えられた入力のうち、リソースrを変量、コストを制約として性能vGDx(r)を最大化する、一般的な制約付き多変量最適化問題を解くことである。尚、そのリソース・性能特性fGDx(r)は、最適解集合850に含まれる具体ワークフロー840であるGDと、性能リスト142とに基づいて、導出部110によって生成されたものである。その多変量最適化問題の最適解rGDxが、具体ワークフロー840であるGDに対する最適な割り当てリソース総量である。
 上述したように、そのリソース構成情報860は、具体ワークフロー840に含まれる具体コンポーネントに割り当てるリソースと性能との対応を示す。即ち、リソース構成情報860のリソースの各要素の台数が、最適解rGDxであり、リソース構成情報860の性能の数値が、性能vGDx(r)である。
 次に、リソース割当部130は、最適解集合850に含まれる具体ワークフロー840であるGDとリソース構成情報860と非機能要件とリソースリスト151とに基づいて、システム構成情報890を生成し、出力する(ステップS605)。ここで、その非機能要件は、具体ワークフロー840が充足する第2の非機能要件であり、例えば、コストや入手容易性である。
 換言すると、リソース割当部130は、具体ワークフロー840であるGD及びそのGDの最適な割り当てリソース総量rGDxを入力として、そのGDに含まれる具体コンポーネントに割り当てる、最適なリソース量を計算する。尚、リソース割当部130は、複数の具体コンポーネントについて、割り当てるリソースを集約させて、同一のリソースを割り当ててよい。
 さらに換言すると、リソース割当部130は、個々の具体コンポーネントに割り当てるリソースの総和について、以下の2点の制約を充足し、リソースのコストを最小化する最適化問題を解く。その総和は、例えば、CPU、Memory、Diskのそれぞれのリソースの種類毎の総和である。その総和は、具体的には、(CPU:20GHz、Memory:50GB、Disk:3TB)のような多次元(ベクトル)データである。
 第1の制約は、リソース割当部130がリソースの割り当てを実施した結果、具体ワークフロー840の性能が、構築するシステムの性能目標を充足することである。
 第2の制約は、リソース割当部130がリソースの割り当てを実施した結果、個々の具体コンポーネントに割り当てられたリソースの総和が、割り当てリソース総量rGDxに遊びベクトル定数rを加えた値を超えないことである。即ち、その第2の制約は、具体コンポーネントi、iを集約し、リソースj、jを割り当てることを、assign(j)={i、i}及びassign(j)={i、i}で表現したときに、以下の式が充足されることである。Σj∈nassign(j)<rGDx+r。但し、nは割り当てに使用したリソースの集合である。
 よって、リソース割当部130は、以上の2条件を満足し、Σj∈nを最小化するときのリソース割り当てassignを求める。
 以上の動作において、例えば、抽象ワークフロー830は、図9に示す記憶部702あるいは記憶装置703に、予め記憶されていてよい。導出部110は、図9に示す入力部704を介して操作者が入力した、抽象ワークフロー830を取得してもよい。導出部110は、図9に示す通信部706を介して図示しない機器から、抽象ワークフロー830を受信してもよい。導出部110は、図9に示す記憶装置703を介して、記録媒体707に記録された抽象ワークフロー830を取得してもよい。導出部110は、機能リスト141や性能リスト142を、抽象ワークフロー830の場合と同様にして取得してよい。
 性能サイジング部120は、性能リスト142や第1の非機能要件を、導出部110が抽象ワークフロー830を取得する場合と同様にして、取得してよい。
 リソース割当部130は、リソースリスト151や、第2の非機能要件を、導出部110が抽象ワークフロー830を取得する場合と同様にして、取得してよい。
 また、リソース割当部130は、図9に示す出力部705を介して、システム構成情報890を出力する。リソース割当部130は、図9に示す通信部706を介して、図示しない機器にシステム構成情報890を送信してもよい。リソース割当部130は、図9に示す記憶装置703を介して、記録媒体707にシステム構成情報890を記録してもよい。
 以上が、本実施形態の動作についての説明である。
 以上説明したように、導出部110は、具体ワークフロー840の割り当てリソース量に対する性能を示す関数(リソース・性能特性とも呼ばれる)を比較することで、最適な具体ワークフロー840を導出する。
 ここで、具体ワークフロー840のそれぞれは、1つの抽象コンポーネント(機能カテゴリの区分とも呼ばれる)に対応する、複数の競合する具体コンポーネントのそれぞれを含む。すなわち、導出部110は、同じ機能を実現する複数の具体コンポーネントの内、同程度のリソース量を割り当てた場合の非機能要件(例えば、性能)の達成度がより高い具体コンポーネントを選択する。
 但し、リソース・性能特性は関数であるため、その関数の定義域によって性能値の大小関係が異なる。そのため、導出部110は、性能リスト142に含まれるw(リソース量割り当てに関する設計情報とも呼ばれる)に基づいて、その関数の定義域を決定する。
 また、性能サイジング部120は、リソース・性能特性を示す関数に対して、非機能要件を制約あるいは最適化目標のいずれかとする、探索的あるいは解析的な最適化を行う。性能サイジング部120は、この最適化を行うことによって、具体ワークフロー840を構成する具体コンポーネントに割り当てるリソースの総量(例えば、リソース構成情報860に含まれる情報)を得る。
 尚、リソース・性能特性を示す関数は、具体ワークフロー840を構成する具体コンポーネントのそれぞれのリソース・性能特性を示す関数に基づいて、生成される。
その非機能要件は、導出するワークフローが充足すべき非機能要件である。
 ここで、具体ワークフロー840は、具体コンポーネントを直列あるいは並列に接続したものである。そして、接続された複数の具体コンポーネントを、1つのコンポーネントと見なすことができる。接続された結果である、その1つのコンポーネントのリソース・性能特性を示す関数は、接続される具体コンポーネントのリソース・性能特性を示す関数を使用して合成され得る。その合成を再帰的に繰り返すことで、具体ワークフロー840を、単一コンポーネントと見なすことができ、具体ワークフロー840のリソース・性能特性を示す単一の関数を得ることができる。
 また、リソース割当部130は、リソース構成情報860と、リソースリスト151とに基づいて、リソース総量を制約とする最適化計算により、所望の情報システムを形成するためのリソース割り当てを得る。即ち、リソース割当部130は、リソース割り当てを変量とし、リソース総量を制約とし、具体ワークフロー840のリソース・性能特性関数を目的関数とする最適化計算を行う。
 ここで、リソース構成情報860は、具体ワークフロー840を構成する具体コンポーネントに割り当てるリソースの総量を示す情報である。リソースリスト151は、リソースの非機能的要件に関する情報である、例えばリソース価格や入手容易性情報などを含む。
 その最適化計算において、最適化目的変数は、非機能要件の達成度や構築に使用するリソース及びソフトウェアの価格情報、入手容易性情報などからなる、多次元の変量である。また、最適化の制約は、具体ワークフロー840が達成すべき非機能要件を充足することである。従って、リソース割当部130は、その最適化計算を、多目的最適化問題として解く。
 上述した本実施形態における第1の効果は、情報システムの自動構築において、ソフトウェア及びリソースの組合せを、より好適に選択することを可能にする点である。
 その理由は、導出部110が抽象ワークフロー830に基づいて機能要件を満足する最適解集合850を導出し、性能サイジング部120及びリソース割当部130が非機能要件に基づいてシステム構成情報890を生成するからである。
 上述した本実施形態における第2の効果は、情報システムの設計において人手が介在した場合の、最適構成の見落としを防止することが可能になる点である。
 その理由は、第1の効果の理由と同じである。
 上述した本実施形態における第3の効果は、リソースの選択にさきがけて、コンポーネントの選択を実行することが可能になる点である。
 その理由は、導出部110が、同じ機能をもつ具体コンポーネントのそれぞれに対応する具体ワークフロー840のリソース・性能特性を、リソースのリソース量に対応する重みで重み付けし、比較するからである。
 上述した本実施形態における第4の効果は、コンポーネントの選択とリソースの選択とを同時に実施することによる探索空間の組合せ爆発を回避することが可能になる点である。
 その理由は、上述の第2の効果に示すように、リソースの選択にさきがけて、コンポーネントの選択を実行するからである。
 <<<第1の実施形態の変形例>>>
 図14は、第1の実施形態の変形例である情報処理システム100を示す図である。図14に示すように、情報処理システム100は、図1に示す情報処理システム101とコンポーネント性能情報リポジトリ140とリソースリポジトリ150とを含む。情報処理システム101と、コンポーネント性能情報リポジトリ140及びリソースリポジトリ150とは、ネットワーク709を介して接続されている。尚、情報処理システム101と、コンポーネント性能情報リポジトリ140及びリソースリポジトリ150とは、1台の図9に示すようなコンピュータ700であってよいし、ネットワークを介することなく直接接続されてもよい。
 ===コンポーネント性能情報リポジトリ140===
 コンポーネント性能情報リポジトリ140は、機能リスト141及び性能リスト142を記憶する。コンポーネント性能情報リポジトリ140は、図9に示す記憶装置703に記憶されてよい。また、コンポーネント性能情報リポジトリ140は、図9に示す入力部704を介して操作者より入力されてもよい。この場合、図9に示す出力部705に操作画面が表示されてもよい。
 ===リソースリポジトリ150===
 リソースリポジトリ150は、リソースリスト151を記憶する。リソースリポジトリ150は、図9に示す記憶装置703に記憶されてよい。また、リソースリポジトリ150は、図9に示す入力部704を介して操作者より入力されてもよい。この場合、図9に示す出力部705に操作画面が表示されてもよい。
 本変形例において、導出部110は、コンポーネント性能情報リポジトリ140の機能リスト141及び性能リスト142を参照する。性能サイジング部120は、コンポーネント性能情報リポジトリ140の性能リスト142を参照する。また、リソース割当部130は、リソースリポジトリ150のリソースリスト151を参照する。
 上述した本実施形態における変形例の効果は、情報処理システム100の構築を柔軟に実現することが可能になる点である。
 その理由は、情報処理システム101と、コンポーネント性能情報リポジトリ140及びリソースリポジトリ150とを、ネットワーク709を介して接続するからである。
 <<<第2の実施形態>>>
 次に、第2の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
 図15は、本発明の第2の実施形態に係る情報処理システム201の構成を示すブロック図である。
 図15に示すように、本実施形態における情報処理システム201は、図1に示す第1の実施形態の情報処理システム101と比べて、機能コンポーネント割当部260をさらに含む点が異なる。
 ===機能コンポーネント割当部260===
 機能コンポーネント割当部260は、機能要求870と接続リスト271とに基づいて、抽象ワークフロー830を生成する。
 図16は、機能要求870の一例を示す図である。図16に示すように、機能要求870は、3つの機能要件a、b及びcを含む。本実施形態において、機能要件aは、例えば入力データを保存する機能であり、機能要件bは、例えば入力データの各単語の出現頻度を計算する機能であり、機能要件cは、例えば出現頻度の大きい順に表示する機能である。図16に示す例に係わらず、機能要求870が含む機能要件は、任意の数であってよい。
 図17は、接続リスト271の一例を示す図である。図17に示すように、接続リスト271は、コンポーネントfの出力をコンポーネントfの入力とすることが可能であることを示す2つ組(ペア)<f、f>を含む。図17は、抽象コンポーネントのa及びbと、b及びdと、d及びcとのそれぞれについての接続を示す。
 機能コンポーネント割当部260は、機能要件a、b及びcを抽象コンポーネントa、b及びcとし、接続リスト271に基づいて、図2に示すような抽象ワークフロー830を生成する。換言すると、機能コンポーネント割当部260は、機能要求を示す機能要件の列<f、f、・・・、f>を入力とし、抽象ワークフローG:=<f0x、F、V>を要素とする集合を出力する。
 尚、情報処理システム201は、図1に示す情報処理システム101と同様に、図9に示すコンピュータ700で実現されてよい。この場合、CPU701は、その読み込んだプログラムに従って、またその読み込んだデータに基づいて、図15に示す機能コンポーネント割当部260としても各種の処理を実行する。
 また、記憶部702は、機能要求870及び接続リスト271を記憶してよい。記憶部702は、機能コンポーネント割当部260の一部としても含まれてよい。
 さらに、記憶装置703は、機能要求870及び接続リスト271を記憶してよい。記憶装置703は、機能コンポーネント割当部260の一部としても含まれてよい。
 次に本実施形態の動作について、図面を参照して詳細に説明する。
 図18は、本実施形態の動作を示すフローチャートである。機能コンポーネント割当部260は、機能要求870を取得したことを契機に、図18に示す動作を開始する。
 機能コンポーネント割当部260は、機能要求870に含まれる機能要件(f乃至f)を全て充足する抽象ワークフローG:=<f0x、F、V>を生成する(ステップS621)。
 抽象ワークフロー830は、以下の条件を満足する、Gである。第1の条件は、∀f∈<f、f、・・・、f>、f∈F、かつ∀<f、f>∈Fx、<f、f>∈Pであることである。第2の条件は、Fの各要素は必ずV中の辺により、相互に接続されていることである。第3の条件は、分断が発生しないグラフであることである。
このGの計算は組合せ最適化問題に帰属し、遺伝的アルゴリズムやタブー探索といったヒューリスティクスアルゴリズムを用いて実現することができる。
 ステップS601からステップS605の動作は、図10に示すステップS601からステップS605の動作と同じである。
 即ち、機能コンポーネント割当部260によって生成された抽象ワークフロー830について、第1の実施形態で述べたように導出部110、性能サイジング部120及びリソース割当部130を適用することで、所望のシステム構成の情報を得ることができる。
 上述した本実施形態における第1の効果は、第1の実施形態の効果に加え、機能要求870に基づいて、ソフトウェア及びリソースの組合せがより好適に選択された、情報システムの自動構築を可能にする点である。
 その理由は、機能コンポーネント割当部260が、機能要求870と接続リスト271とに基づいて、抽象ワークフロー830を生成するからである。
 上述した本実施形態における第2の効果は、機能要求870が不完全であっても不足する情報を補完して接続可能なワークフローを生成すること、を可能にする点である。
 その理由は、機能コンポーネント割当部260が、接続リスト271に基づいて、抽象ワークフロー830を生成するからである。
 <<<第2の実施形態の変形例>>>
 図19は、第2の実施形態の変形例である情報処理システム200を示す図である。図19に示すように、情報処理システム200は、図15に示す情報処理システム201とコンポーネント性能情報リポジトリ140とリソースリポジトリ150とコンポーネント接続情報リポジトリ270とを含む。情報処理システム201と、コンポーネント性能情報リポジトリ140、リソースリポジトリ150及びコンポーネント接続情報リポジトリ270とは、ネットワーク709を介して接続されている。尚、情報処理システム201と、コンポーネント性能情報リポジトリ140、リソースリポジトリ150及びコンポーネント接続情報リポジトリ270とは、1台の図9に示すようなコンピュータ700であってよい。また、情報処理システム201と、コンポーネント性能情報リポジトリ140、リソースリポジトリ150及びコンポーネント接続情報リポジトリ270とは、ネットワークを介することなく直接接続されてもよい。
 ===コンポーネント接続情報リポジトリ270===
 コンポーネント接続情報リポジトリ270は、接続リスト271を記憶する。コンポーネント接続情報リポジトリ270は、図9に示す記憶装置703に記憶されてよい。また、コンポーネント接続情報リポジトリ270は、図9に示す入力部704を介して操作者より入力されてもよい。この場合、図9に示す出力部705に操作画面が表示されてもよい。
 上述した本実施形態における変形例の効果は、情報処理システム200の構築を柔軟に実現することが可能になる点である。
 その理由は、情報処理システム201と、コンポーネント性能情報リポジトリ140、リソースリポジトリ150及びコンポーネント接続情報リポジトリ270とを、ネットワーク709を介して接続するからである。
 <<<第3の実施形態>>>
 次に、本発明の第3の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
 図20は、本発明の第3の実施形態に係る情報処理システム301の構成を示すブロック図である。
 図20に示すように、本実施形態における情報処理システム301は、図1に示す第1の実施形態の情報処理システム101と比べて、導出部110に替えて導出部380を含む点が異なる。
 ===導出部380===
 第1に、導出部380は、具体ワークフロー840のそれぞれに対応する、リソース量に対応する所定の重みで重み付けした、リソース・性能特性を、スカイライン法を用いて比較する。第2に、導出部380は、その比較した結果に基づいて、その具体ワークフロー840の集合である、スカイライン集合(最適解集合とも呼ばれる)880を導出する。
 次に、具体ワークフロー840の集合の部分集合である、スカイライン集合880を導出する手順について説明する。
 図21は、一般的なスカイライン集合について説明する図である。図21は、横軸に(x、y)の値(2次元)を、縦軸にf(x、y)の値を取る、2次元対1次元の3次元の示す図である。図21を参照すると、複数の異なるプロット(x、y)が与えられたとき、x及びyに対してそれぞれ正の相関をもつ関数f(x、y)を最小化する(x、y)を求めることを想定する。すると、関数を最小化しうる(x、y)はスカイライン(図21中の点線)上にあることがわかる。このスカイライン上にあるプロットの集合が、スカイライン集合である。
 従って、リソース・性能特性のそれぞれをプロットとして、そのスカイライン集合880を求めれば、リソース量を最小化する具体ワークフロー840は、そのスカイライン集合880に含まれるリソース・性能特性に対応する具体ワークフロー840である。結果的に、スカイライン集合880に含まれない具体ワークフロー840、即ちそのスカイライン上に位置しないリソース・性能特性に対応する具体ワークフロー840については、リソース・性能特性が適用された値を計算する必要はない。
 導出部380は、スカイライン集合880を、各プロット(リソース・性能特性)について以下の手順を実行し求める。
 初期状態において、全てのプロットが未処理のプロット集合に含まれ、スカイライン集合は空集合である。例えば、(未処理プロット集合、スカイライン集合)は、({a、b、c、d、・・・}、{})という状態である。まず、未処理プロット集合から最初の任意のプロット(例えば、a)が取り出され、スカイライン集合に加えられる。即ち、最初に取り出されたプロットは、必ず最初(初期状態の次)のスカイライン集合に含まれる。例えば、(未処理プロット集合、スカイライン集合)は、({b、c、d、・・・}、{a})という状態になる。
 続けて、未処理プロット集合から次の任意のプロットが取り出される。そして、その取り出されたプロットが、スカイライン集合のプロットのいずれかを支配する関係にあれば、支配されたプロットがスカイライン集合から除去され、その取り出されたプロットがスカイライン集合に加えられる。
 「プロットaがプロットbを支配する」とは、プロットaの利得の全ての次元について、プロットaがプロットbより優れているあるいは等しいことに加え、必ず1つ以上の次元においてプロットaがプロットbより優れていることである。
 導出部380は、全ての未処理プロット集合のプロットについて、上述の手順を実行し、完了した時点でのスカイライン集合880を解として得る。
 図22は、導出部380が、あるプロットについて、上述の手順を実行して、スカイライン集合880を生成する場合の動作を説明する図である。図22の上段のグラフに示すように、点線のプロットが投入されたとき、その投入されたプロットは既存のスカイライン上のプロット1つを支配する。このため、導出部380は、図22の下段のグラフに示すように、その支配される既存のプロットをスカイライン集合から除外し、その投入されたプロットをスカイライン集合に加える。このようにして、導出部380は、複数のプロットに対してスカイラインを導出するために、プロットを順次評価し、スカイライン集合の要素を入れ替えて、最終的なスカイライン集合880を導出する。
 尚、スカイライン集合880を導出するためには、具体ワークフロー840のそれぞれに対応する利得関数が必要である。本実施形態における利得関数は、前述のリソース・性能特性を示す関数である「fGDx(r)」である。それらの関数間の比較、及び具体ワークフロー840のリソース・性能特性を計算する方法は、第1の実施形態で説明したとおりである。
 上述した本実施形態における第1の効果は、第1の実施形態の効果に加えて、スカイライン法を使用することによる最適解集合を導出するための計算時間を削減することが可能になる点である。
 その理由は、導出部380が、全要素間の比較が必要な最適化計算に替えて、スカイライン法により最適解集合であるスカイライン集合880を導出するからである。
 上述した本実施形態における第2の効果は、ストリーム実行が可能になる点である。
 その理由は、スカイライン集合880を導出するための計算では、スカイライン集合のサイズ(スカイライン集合の要素数)を変更しつつ、スカイライン集合へのプロットの入力に対し、その段階での解(スカイライン集合)を保持することが可能だからである。
 <<<第1の実施例>>>
 次に、本発明の実施例について図面を参照して詳細に説明する。以下、本実施例の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
 本実施例は、図19に示す情報処理システム200における実施例である。
 情報処理システム200は、図16に示す機能要求870を、与えられたとした。
 また、第1の非機能要件は、スループットが毎秒1万件以上の処理の性能要求であり、第2の非機能要件は、500万円以下のコスト要求であるとした。コンポーネント接続情報リポジトリ270は、図17に示す接続リスト271を記憶しているものとした。
 上述の前提に対して、機能コンポーネント割当部260は、組合せ最適化問題の解として、図2に示すような抽象ワークフロー830を生成した。例えば、機能コンポーネント割当部260は、その解法の一例として、以下のように部分解を使用して段階的に解いた。
 Step1: <a、b>、<d、c>
 Step2: <a、b>、<b、d>、<d、c>
 Step1では、機能コンポーネント割当部260は、機能要求870について、接続リスト271に基づいて、前方から<a、b>を計画し、後方から<d、c>を計画した。この時点で機能要求870は充足されるが、分断がありワークフローを形成していないため、機能コンポーネント割当部260は、処理を継続した。
 Step2では、機能コンポーネント割当部260は、接続リスト271から、<b、d>の接続情報を取り出すことができるため、<a、b>と<d、c>とを接続した。
 以上により、機能コンポーネント割当部260は、図2に示す、G:=<F0x、Fx、>で表現される抽象ワークフロー830を生成した。尚、この抽象ワークフロー830には、機能要求870には含まれていない「計算結果を保存する」機能が挿入された。これは、第2の実施形態の第2の効果である、「機能要求870が不完全であっても不足する情報を補完して接続可能なワークフローを生成すること」に対応する。
 次に、導出部110は、得られた抽象ワークフロー830について、具体ワークフロー840を作成した。コンポーネント性能情報リポジトリ140は、図3に示す機能リスト141を記憶していたとする。
 まず、導出部110は、抽象ワークフロー830に対して、機能リスト141の具体コンポーネントcをそれぞれあてはめ、図5に示す具体ワークフロー840の集合を作成した。
 次に、導出部110は、この具体ワークフロー840の集合からリソース・性能特性を計算し、最適解集合850を導出した。
 ここで、コンポーネント性能情報リポジトリ140には、図4に示す性能リスト142が格納されていた。但し、wにおけるCPUの性能は、システム上の累算値(コア数と最大周波数とを乗算した値)である。
 導出部110は、上述の性能リスト142より、図23に示すような、各具体コンポーネントcの値域に関する情報を取得した。
 このとき、導出部110は、図5に示す具体ワークフロー840の1乃至4行目のそれぞれのリソース・性能特性Fを、以下の(1)乃至(4)のそれぞれのとおり計算した。
 (1){<A、C>、<C、E>、<E、D>}
 F=Min(cpu+mem/100、cpu+mem/100、8、cpu*100)=Min(cpu+mem/100、8、cpu*100)
 (2){<A、C>、<C、F>、<F、D>}
 F=Min(cpu+mem/100、cpu+mem/100、0.2、cpu*100)=Min(cpu+mem/100、0.2、cpu*100)=0.2
 (3){<B、C>、<C、E>、<E、D>}
 F=Min(cpu*10、cpu+mem/100、8、cpu*100)=Min(cpu*10、cpu+mem/100、8)
 (4){<B、C>、<C、F>、<F、D>}
 F=Min(cpu*10、cpu+mem/100、0.2、cpu*100)=Min(cpu*10、cpu+mem/100、0.2)=0.2。
 この時の関数を比較すると、(2)及び(4)は、第1の非機能要求(スループットが毎秒1万件以上)を充足できなかった。
 また、(1)と(3)は具体コンポーネントAとBの比較となり、頻繁に使用される設計パラメータの定義域から、Aを使用する具体ワークフロー840の(1)のみが最適解集合850の要素となった。具体的には、導出部110は、頻繁に使用される設計パラメータの定義域の最大値及び最小値を、それぞれの(1)及び(3)のリソース・性能特性Fを示す関数に代入した。ここで、Aは20.8~43.2万件/秒に対して、Bは1~30万件/秒であった。従って、導出部110は、最小値・最大値ともに、Bを含む(3)よりもAを含む(1)が優れていると判断した。
 次に、リソースリポジトリ150は、図6に示すリソースリスト151を記憶していた。
 さらに、本実施例におけるリソース組合せの最適化のヒューリスティクスとして、必ずCPU、メモリ、ディスクのそれぞれを少なくとも1つずつ選択する制約があるものとした。
 また、性能の最大値は(1)の式を解析的に解くと8であったため、性能の値が8であり、かつコストを最小とする構成は最適解集合850の要素であった。この構成に支配されない構成を全て列挙すると下記構成が最適解集合850の要素であった。ここで、「性能の値が8であり、かつコストを最小とする構成」に支配されない構成は、「性能の値が8であり、かつコストを最小とする構成」が、以下のいずれの関係も満たさない。その関係は、(性能、コスト)が、(高い、小さい)、(同等、小さい)及び(高い、同等)のいずれかの関係である。
 性能サイジング部120は、その支配されない構成を、図7に示すリソース構成情報860のように列挙した。
 最後に、各構成について、リソース割当部130が、各具体コンポーネントにリソースの割り当てを実施した。上記構成のうち、構成{CPU3、MEM1、DISK1}にリソース割当部130が、各具体コンポーネントにリソースの割り当てを実施する計算例を示す。
 {CPU3、MEM1、DISK1}の構成においては、複数のマシンに複数の具体コンポーネントを割り当てるということはできない。その結果として、所望のシステムは、単一のシステムとして構成された。
 そこで、リソース割当部130は、構成{CPU3、MEM1、DISK1}がもつリソースを分割し、各具体コンポーネントに割り当てを行った。リソース割当部130は、分割されたリソース量を示すCPU、CPU、CPU、CPU、MEM、MEM、MEM、MEM、DISK、DISK、DISK、DISKの値を変量とし、具体ワークフロー840の性能を目的関数とした。
尚、各リソースの添え字(例えば「」)は、そのリソースが対応する具体コンポーネント(例えば、具体コンポーネントA)を示す。
 この場合、制約式は、例えば以下のとおりであった。CPU+CPU+CPU+CPU=6(GHz)。MEM+MEM+MEM+MEM=2(GB)。DISK+DISK+DISK+DISK=2(TB)。また、目的関数は、Min(CPU+MEM/100、CPU+MEM/100、8、CPU*100)であった。
 これらの目的関数の最小値が具体ワークフロー840の性能となった。その一方で、CPU+MEM/100及びCPU+MEM/100の両方が同時に8を超えることはできなかったため、これらがボトルネックであることがわかった。また、具体ワークフロー840の性能への貢献を考慮すると、CPU+MEM/100=CPU+MEM/100が最適なヒューリスティクスとして想定することができた。
 また、CPU*100は、wiの最小値として0.1(GHz)としても、8(万件/秒)を超えた。そのため、具体コンポーネントDに対するCPUの割り当ては、最小の割り当てでよかった。同様に、具体コンポーネントEに対するCPUの割り当ても、最小値でよかった。一方で、DISKサイズの割り当ては性能に寄与しなかったため、リソース割当部130は、DISKを、wiの比率に従い分配した。
 その結果、リソース割当部130は、最適なリソース割り当てとして、以下の割り当てを算出した。CPU=2.9GHz、CPU=2.9GHz、CPU=0.1GHz、CPU=0.1GHz。MEM=0.49GB、MEM=0.49GB、MEM=1GB、MEM=0.02GB。DISK=1.997TB、DISK=0.001TB、DISK=0.001TB、DISK=0.001TB。
 リソース割当部130は、ほかの構成についても同様の計算を行った。構成{CPU3、MEM1、DISK1}からは、CPUをひとつしかもたなかったため、ワークフロー上の全機能が同一マシンに割り当てられることがわかった。その結果、図8のシステム構成が得られた。
 上述した本実施例における効果は、第2の実施形態と同様である。
 以上の各実施形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はない。例えば、複数個の任意のその構成要素が1個のモジュールとして実現されてよい。また、その構成要素の内の任意のひとつが複数のモジュールで実現されてもよい。また、その構成要素の内の任意のひとつがその構成要素の内の任意の他のひとつであってよい。また、その構成要素の内の任意のひとつの一部と、その構成要素の内の任意の他のひとつの一部とが重複してもよい。
 以上説明した各実施形態における各構成要素及び各構成要素を実現するモジュールは、必要に応じ、可能であれば、リソース的に実現されてよい。また、各構成要素及び各構成要素を実現するモジュールは、コンピュータ及びプログラムで実現されてよい。また、各構成要素及び各構成要素を実現するモジュールは、リソース的なモジュールとコンピュータ及びプログラムとの混在により実現されてもよい。
 そのプログラムは、例えば、磁気ディスクや半導体メモリなど、コンピュータが読み取り可能な非一時的記録媒体に記録され、コンピュータに提供される。そして、そのプログラムは、コンピュータの立ち上げ時などに、非一時的記録媒体からコンピュータに読み取られる。この読み取られたプログラムは、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施形態における構成要素として機能させる。
 また、以上説明した各実施形態では、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の順番は内容的に支障のない範囲で変更することができる。
 さらに、以上説明した各実施形態では、複数の動作は個々に相違するタイミングで実行されることに限定されない。例えば、ある動作の実行中に他の動作が発生してよい。また、ある動作と他の動作との実行タイミングが部分的に乃至全部において重複してもよい。
 さらに、以上説明した各実施形態では、ある動作が他の動作の契機になるように記載しているが、その記載はある動作と他の動作との関係を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の関係は内容的に支障のない範囲で変更することができる。また各構成要素の各動作の具体的な記載は、各構成要素の各動作を限定するものではない。このため、各構成要素の具体的な各動作は、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障を来さない範囲内で変更されてよい。
 上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
 (付記1) 機能を示す抽象コンポーネントを含む抽象ワークフローと、前記抽象コンポーネントに対応する具体コンポーネントを示す情報と、前記具体コンポーネントへのリソース量割り当てに関する設計情報とに基づいて、前記具体コンポーネントを割り当てられた具体ワークフローの集合の内、リソース・性能特性が相対的に優れた前記具体ワークフローの集合である最適解集合を導出する導出部と、前記最適解集合と、前記設計情報と、リソースの性能に関する情報と、前記具体ワークフローが充足する第1の非機能要件とに基づいて、前記具体ワークフローに含まれる前記具体コンポーネントに割り当てる前記リソースを示すリソース構成情報を生成する性能サイジング部と、前記リソース構成情報と、前記具体ワークフローと、前記具体ワークフローが充足する第2の非機能要件と、前記第2の非機能要件に関するリソースの情報とに基づいて、優先的に使用する前記リソースの情報を含むシステム構成情報を生成し、出力するリソース割り当て部と、を含む情報処理システム。
 (付記2)前記導出部は、前記抽象コンポーネントのいずれかひとつに対応する複数の前記具体コンポーネントのそれぞれを前記抽象ワークフローに割り当てた、前記具体ワークフローのそれぞれに対応するリソース・性能特性を、リソース量に対応する所定の重みで重み付けして比較し、前記リソース・性能特性を比較した結果に基づいて、前記最適解集合を導出することを特徴とする付記1記載の情報処理システム。
 (付記3)前記導出部は、前記所定の重みで重み付けした前記リソース・性能特性を、スカイライン法を用いて比較し、前記スカイライン法を用いて比較した結果に基づいて、前記最適解集合を導出することを特徴とする付記2記載の情報処理システム。
 (付記4)前記性能サイジング部は、前記具体ワークフローが充足する非機能要件を制約及び最適化目標のいずれかひとつとする、探索的な最適化及び解析的な最適化のいずれかひとつを実行することによって、前記具体コンポーネントに割り当てる前記リソースを決定することを特徴とする付記1乃至3のいずれかひとつに記載の情報処理システム。
 (付記5)前記性能サイジング部は、局所探索法、焼きなまし法及び遺伝的アルゴリズムを任意に用いた最適化計算の結果に基づいて、前記非機能要件を充足する、前記リソースの候補を選定することを特徴とする付記4記載の情報処理システム。
 (付記6)機能要求の正規化されたゴールモデル表現を入力とし、前記抽象コンポーネントの機能カテゴリの区分と、前記区分において充足される機能がオントロジーを使用して正規化された表現と、前記区分間の接続関係とに基づいて、前記抽象ワークフローを生成する、機能コンポーネント割り当て部をさらに含む、ことを特徴とする付記1乃至5のいずれかひとつに記載の情報処理システム。
 (付記7)前記抽象コンポーネントの機能カテゴリの区分と、前記区分において充足される機能がオントロジーを使用して正規化された表現と、を含む前記抽象コンポーネントに対応する具体コンポーネントを示す情報と、前記区分間の接続関係を示す情報と、前記設計情報と、を記憶するコンポーネント情報記憶部と、前記抽象コンポーネントに対応する具体コンポーネントを示す情報と、前記区分間の接続関係を示す情報と、前記設計情報と、を入力する部、とをさらに含むことを特徴とする付記6記載の情報処理システム。
 (付記8)前記リソースの性能に関する情報を記憶するリソース情報記憶部と、前記リソースの性能に関する情報を入力する部、とをさらに含むことを特徴とする付記1乃至7のいずれかひとつに記載の情報処理システム。
 (付記9)前記システム構成情報は、前記具体コンポーネントに前記リソースが割り当てられた前記具体ワークフロー、及び同一の前記リソースに割り当てられた前記具体コンポーネントの情報を任意に含むことを特徴とする付記1乃至8のいずれかひとつに記載の情報処理システム。
 (付記10)機能を示す抽象コンポーネントを含む抽象ワークフローと、前記抽象コンポーネントに対応する具体コンポーネントを示す情報と、前記具体コンポーネントへのリソース量割り当てに関する設計情報とに基づいて、前記具体コンポーネントを割り当てられた具体ワークフローの集合の内、リソース・性能特性が相対的に優れた、具体ワークフローの集合である最適解集合を導出し、前記最適解集合と、前記設計情報と、リソースの性能に関する情報と、前記具体ワークフローが充足する第1の非機能要件とに基づいて、前記具体ワークフローに含まれる前記具体コンポーネントに割り当てる前記リソースを示すリソース構成情報を生成し、前記リソース構成情報と、前記具体ワークフローと、前記具体ワークフローが充足する第2の非機能要件と、前記第2の非機能要件に関するリソースの情報とに基づいて、優先的に使用する前記リソースの情報を含むシステム構成情報を生成し、出力するシステム設計方法。
 (付記11)機能を示す抽象コンポーネントを含む抽象ワークフローと、前記抽象コンポーネントに対応する具体コンポーネントを示す情報と、前記具体コンポーネントへのリソース量割り当てに関する設計情報とに基づいて、前記具体コンポーネントを割り当てられた具体ワークフローの集合の内、リソース・性能特性が相対的に優れた、具体ワークフローの集合である最適解集合を導出し、前記最適解集合と、前記設計情報と、リソースの性能に関する情報と、前記具体ワークフローが充足する第1の非機能要件とに基づいて、前記具体ワークフローに含まれる前記具体コンポーネントに割り当てる前記リソースを示すリソース構成情報を生成し、前記リソース構成情報と、前記具体ワークフローと、前記具体ワークフローが充足する第2の非機能要件と、前記第2の非機能要件に関するリソースの情報とに基づいて、優先的に使用する前記リソースの情報を含むシステム構成情報を生成し、出力する処理をコンピュータに実行させる
 プログラム。
 以上、各実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態及び実施例に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 この出願は、2014年8月1日に出願された日本出願特願2014-157473を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 100  情報処理システム
 101  情報処理システム
 110  導出部
 120  性能サイジング部
 130  リソース割当部
 140  コンポーネント性能情報リポジトリ
 141  機能リスト
 142  性能リスト
 150  リソースリポジトリ
 151  リソースリスト
 200  情報処理システム
 201  情報処理システム
 260  機能コンポーネント割当部
 270  コンポーネント接続情報リポジトリ
 271  接続リスト
 301  情報処理システム
 380  導出部
 401  関数
 402  関数
 403  関数
 411  関数
 412  関数
 413  関数
 700  コンピュータ
 701  CPU
 702  記憶部
 703  記憶装置
 704  入力部
 705  出力部
 706  通信部
 707  記録媒体
 709  ネットワーク
 830  抽象ワークフロー
 840  具体ワークフロー
 850  最適解集合
 860  リソース構成情報
 870  機能要求
 880  スカイライン集合
 890  システム構成情報

Claims (10)

  1.  機能を示す抽象コンポーネントを含む抽象ワークフローと、前記抽象コンポーネントに対応する具体コンポーネントを示す情報と、前記具体コンポーネントへのリソース量割り当てに関する設計情報とに基づいて、前記具体コンポーネントを割り当てられた具体ワークフローの集合の内、リソース・性能特性が相対的に優れた前記具体ワークフローの集合である最適解集合を導出する導出手段と、
     前記最適解集合と、前記設計情報と、リソースの性能に関する情報と、前記具体ワークフローが充足する第1の非機能要件とに基づいて、前記具体ワークフローに含まれる前記具体コンポーネントに割り当てる前記リソースを示すリソース構成情報を生成する性能サイジング手段と、
     前記リソース構成情報と、前記具体ワークフローと、前記具体ワークフローが充足する第2の非機能要件と、前記第2の非機能要件に関するリソースの情報とに基づいて、優先的に使用する前記リソースの情報を含むシステム構成情報を生成し、出力するリソース割り当て手段と、を含む
     情報処理システム。
  2.  前記導出手段は、前記抽象コンポーネントのいずれかひとつに対応する複数の前記具体コンポーネントのそれぞれを前記抽象ワークフローに割り当てた、前記具体ワークフローのそれぞれに対応するリソース・性能特性を、リソース量に対応する所定の重みで重み付けして比較し、前記リソース・性能特性を比較した結果に基づいて、前記最適解集合を導出する
     ことを特徴とする請求項1記載の情報処理システム。
  3.  前記導出手段は、前記所定の重みで重み付けした前記リソース・性能特性を、スカイライン法を用いて比較し、前記スカイライン法を用いて比較した結果に基づいて、前記最適解集合を導出する
     ことを特徴とする請求項2記載の情報処理システム。
  4.  前記性能サイジング手段は、前記具体ワークフローが充足する非機能要件を制約及び最適化目標のいずれかひとつとする、探索的な最適化及び解析的な最適化のいずれかひとつを実行することによって、前記具体コンポーネントに割り当てる前記リソースを決定する
     ことを特徴とする請求項1乃至3のいずれか1項に記載の情報処理システム。
  5.  機能要求の正規化されたゴールモデル表現を入力とし、前記抽象コンポーネントの機能カテゴリの区分と、前記区分において充足される機能がオントロジーを使用して正規化された表現と、前記区分間の接続関係とに基づいて、前記抽象ワークフローを生成する、機能コンポーネント割り当て手段をさらに含む、
     ことを特徴とする請求項1乃至4のいずれか1項に記載の情報処理システム。
  6.  前記抽象コンポーネントの機能カテゴリの区分と、前記区分において充足される機能がオントロジーを使用して正規化された表現と、を含む前記抽象コンポーネントに対応する具体コンポーネントを示す情報と、
     前記区分間の接続関係を示す情報と、
     前記設計情報と、を記憶するコンポーネント情報記憶手段と、
     前記抽象コンポーネントに対応する具体コンポーネントを示す情報と、
     前記区分間の接続関係を示す情報と、
     前記設計情報と、を任意に入力する手段と、をさらに含む
     ことを特徴とする請求項5記載の情報処理システム。
  7.  前記リソースの性能に関する情報を記憶するリソース情報記憶手段と、
     前記リソースの性能に関する情報を入力する手段と、をさらに含む
     ことを特徴とする請求項1乃至6のいずれか1項に記載の情報処理システム。
  8.  前記システム構成情報は、前記具体コンポーネントに前記リソースが割り当てられた前記具体ワークフロー、及び同一の前記リソースに割り当てられた前記具体コンポーネントの情報を任意に含む
     ことを特徴とする請求項1乃至7のいずれか1項に記載の情報処理システム。
  9.  機能を示す抽象コンポーネントを含む抽象ワークフローと、前記抽象コンポーネントに対応する具体コンポーネントを示す情報と、前記具体コンポーネントへのリソース量割り当てに関する設計情報とに基づいて、前記具体コンポーネントを割り当てられた具体ワークフローの集合の内、リソース・性能特性が相対的に優れた、具体ワークフローの集合である最適解集合を導出し、
     前記最適解集合と、前記設計情報と、リソースの性能に関する情報と、前記具体ワークフローが充足する第1の非機能要件とに基づいて、前記具体ワークフローに含まれる前記具体コンポーネントに割り当てる前記リソースを示すリソース構成情報を生成し、
     前記リソース構成情報と、前記具体ワークフローと、前記具体ワークフローが充足する第2の非機能要件と、前記第2の非機能要件に関するリソースの情報とに基づいて、優先的に使用する前記リソースの情報を含むシステム構成情報を生成し、出力する
     システム設計方法。
  10.  機能を示す抽象コンポーネントを含む抽象ワークフローと、前記抽象コンポーネントに対応する具体コンポーネントを示す情報と、前記具体コンポーネントへのリソース量割り当てに関する設計情報とに基づいて、前記具体コンポーネントを割り当てられた具体ワークフローの集合の内、リソース・性能特性が相対的に優れた、具体ワークフローの集合である最適解集合を導出する処理と、
     前記最適解集合と、前記設計情報と、リソースの性能に関する情報と、前記具体ワークフローが充足する第1の非機能要件とに基づいて、前記具体ワークフローに含まれる前記具体コンポーネントに割り当てる前記リソースを示すリソース構成情報を生成する処理と、
     前記リソース構成情報と、前記具体ワークフローと、前記具体ワークフローが充足する第2の非機能要件と、前記第2の非機能要件に関するリソースの情報とに基づいて、優先的に使用する前記リソースの情報を含むシステム構成情報を生成する処理と、
     前記システム構成情報を出力する処理と、をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な
     非一時的記録媒体。
PCT/JP2015/003653 2014-08-01 2015-07-21 情報処理システム及びシステム設計方法 WO2016017111A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016537741A JPWO2016017111A1 (ja) 2014-08-01 2015-07-21 情報処理システム及びシステム設計方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014157473 2014-08-01
JP2014-157473 2014-08-01

Publications (1)

Publication Number Publication Date
WO2016017111A1 true WO2016017111A1 (ja) 2016-02-04

Family

ID=55217032

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/003653 WO2016017111A1 (ja) 2014-08-01 2015-07-21 情報処理システム及びシステム設計方法

Country Status (2)

Country Link
JP (1) JPWO2016017111A1 (ja)
WO (1) WO2016017111A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017151592A (ja) * 2016-02-23 2017-08-31 日本電気株式会社 構成選定装置、構成選定システム、方法およびプログラム
WO2018198783A1 (ja) * 2017-04-27 2018-11-01 日立オートモティブシステムズ株式会社 車両制御システム検証手法および検証装置および制御装置
JP2022143458A (ja) * 2021-03-17 2022-10-03 株式会社豊田中央研究所 システム計算装置、及びシステム計算プログラム
WO2023248407A1 (ja) * 2022-06-23 2023-12-28 日本電気株式会社 システム検証装置、システム検証方法、及びコンピュータ読み取り可能な記録媒体

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002183416A (ja) * 2000-12-15 2002-06-28 Hitachi Ltd システム提案方法及びその実施装置並びにその処理プログラムを記録した記録媒体
WO2014061229A1 (ja) * 2012-10-16 2014-04-24 日本電気株式会社 情報システム構築支援装置、情報システム構築支援方法および情報システム構築支援プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002183416A (ja) * 2000-12-15 2002-06-28 Hitachi Ltd システム提案方法及びその実施装置並びにその処理プログラムを記録した記録媒体
WO2014061229A1 (ja) * 2012-10-16 2014-04-24 日本電気株式会社 情報システム構築支援装置、情報システム構築支援方法および情報システム構築支援プログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017151592A (ja) * 2016-02-23 2017-08-31 日本電気株式会社 構成選定装置、構成選定システム、方法およびプログラム
WO2018198783A1 (ja) * 2017-04-27 2018-11-01 日立オートモティブシステムズ株式会社 車両制御システム検証手法および検証装置および制御装置
JP2018185244A (ja) * 2017-04-27 2018-11-22 日立オートモティブシステムズ株式会社 車両制御システム検証手法および検証装置および制御装置
US11372442B2 (en) 2017-04-27 2022-06-28 Hitachi Astemo, Ltd. Vehicle control system validation technique and validation device, and control device
JP2022143458A (ja) * 2021-03-17 2022-10-03 株式会社豊田中央研究所 システム計算装置、及びシステム計算プログラム
JP7331877B2 (ja) 2021-03-17 2023-08-23 株式会社豊田中央研究所 システム計算装置、及びシステム計算プログラム
WO2023248407A1 (ja) * 2022-06-23 2023-12-28 日本電気株式会社 システム検証装置、システム検証方法、及びコンピュータ読み取り可能な記録媒体

Also Published As

Publication number Publication date
JPWO2016017111A1 (ja) 2017-05-18

Similar Documents

Publication Publication Date Title
Kannan et al. Grandslam: Guaranteeing slas for jobs in microservices execution frameworks
JP7178977B2 (ja) 複合コントロール
US11442764B2 (en) Optimizing the deployment of virtual resources and automating post-deployment actions in a cloud environment
US8667020B2 (en) Placement goal-based database instance dynamic consolidation
US8667019B2 (en) Placement goal-based database instance consolidation
Marozzo et al. JS4Cloud: script‐based workflow programming for scalable data analysis on cloud platforms
US11188348B2 (en) Hybrid computing device selection analysis
WO2016017111A1 (ja) 情報処理システム及びシステム設計方法
US20200044938A1 (en) Allocation of Shared Computing Resources Using a Classifier Chain
US20220357974A1 (en) Container creation in a computing system
Delgoshaei et al. An applicable method for modifying over-allocated multi-mode resource constraint schedules in the presence of preemptive resources
JPWO2014181495A1 (ja) 仮想マシン配置決定装置、仮想マシン配置決定方法および仮想マシン配置決定プログラム
Rawat et al. Optimize task allocation in cloud environment based on big-bang big-crunch
Weidner et al. Rethinking high performance computing platforms: Challenges, opportunities and recommendations
US9355377B2 (en) Carbon dioxide emissions optimized secure cloud computing
US11614963B2 (en) Machine learning based runtime optimization
Klasky et al. A view from ORNL: Scientific data research opportunities in the big data age
US11823077B2 (en) Parallelized scoring for ensemble model
Noorshams et al. Automated modeling of I/O performance and interference effects in virtualized storage systems
Farzaneh et al. A novel virtual machine placement algorithm using RF element in cloud infrastructure
US11645595B2 (en) Predictive capacity optimizer
US11288046B2 (en) Methods and systems for program optimization utilizing intelligent space exploration
Prakash et al. An efficient workflow scheduling approach in cloud computing
Abouelhoda et al. Towards scalable and cost-aware bioinformatics workflow execution in the cloud-recent advances to the tavaxy workflow system
Kaufmann et al. The {HCl} Scheduler: Going all-in on Heterogeneity

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016537741

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

Country of ref document: EP

Kind code of ref document: A1