Patent Description:
In recent years, techniques for allowing a service provider, such as that of a cloud service, to provide a service to an end user has been actively developed. For example, Patent Literature <NUM> discloses "an inter-business operator package service construction device that provides a package of one or a plurality of communication services which are released on communication service APIs for each wholesale service provider and which are different from each other, in response to an order request for utilizing a communication service from a terminal which provides communication to a user, the inter-business operator package service construction device including a package construction function unit that retains a catalog describing specifications of communication wholesale services and a coordination rule defining coordination of various kinds of communication services and, in a case where an order request for utilizing a plurality of communication services is made from the terminal, constructs a coordination service by collectively coordinating the communication service APIs corresponding to the plurality of communication services requested by the order request based on the retained catalog and coordination rule and provides the constructed coordination service to the terminal". <CIT> discloses a single, logical, multi-tier application blueprint used for the deployment and management of multiple physical applications in a cloud environment.

Patent Literature <NUM>: <CIT> (Claim <NUM>).

Further, in recent years, there are a number of services such as a platform as a service (PaaS) and an infrastructure as a service (IaaS) which can be utilized or provided via the Internet, and a technique for a system that provides such a plurality of types of services has been actively developed. A vendor which handles a plurality of types of services has unique domains (multi-domain). In other words, a plurality of types of domains exist, and a system is designed so as to achieve coordination among the domains. Further, a virtualization technology is used to provide a plurality of types of services. Thus, resources within each domain are multi-layered and belong to a physical layer, a virtual layer, an application layer, or the like (multi-layer). The resources are also referred to as information and communication technology (ICT) resources. Further, a system is designed so as to achieve coordination among a plurality of types of services, which achieves interaction among users who utilize different services (multi-service). Note that a multi-service, a multi-domain and a multi-layer will be collectively referred to as "triple multi" below.

However, typically, owners of resources are different, and thus, the respective resources are individually managed for each domain and for each layer. It is therefore normally impossible to apply operation know-how of a system constituted with certain resources to other resources. This results in making control of resources in triple multi extremely complicated in related art and making design of a system which can support triple multi difficult.

In view of such circumstances, an object of the present invention is to facilitate design change of a system that provides a plurality of types of services. Means for Solving the Problem.

In the present invention, it is possible to facilitate design change of a system that provides a plurality of types of services.

An embodiment for implementing the present invention (hereinafter, referred to as "the present embodiment") will be described below with reference to the drawings. In the present embodiment, design of a system which can support triple multi will be described. It is assumed that the multi-layer is constituted with a physical layer, a virtual layer, and an application layer. The virtual layer exists on the physical layer, and the application layer exists on the virtual layer. Resources for providing a plurality of types of services can be arranged in each of the physical layer, the virtual layer, and the application layer. The resource to be arranged in the application layer may be referred to as an "application". For explanatory convenience, an application may be abbreviated as an "app". The resource to be arranged in the physical layer may be referred to as a "physical resource". The resource to be arranged in the virtual layer may be referred to as a "virtual resource". The physical resource and the virtual resource may be collectively referred to as an "infrastructure".

A resource management device according to the present invention is a device that manages resources for providing a plurality of types of services. As illustrated in <FIG>, a resource management device <NUM> of the present embodiment includes an acquisition unit <NUM>, an app selection unit <NUM>, an infrastructure selection unit <NUM>, a design unit <NUM>, and an orchestrator unit <NUM>. Further, the resource management device <NUM> stores a catalog database d1, a data model database d2, a blueprint database d3 and a best practice database d4. Various kinds of information including the catalog database d1, the data model database d2, the blueprint database d3 and the best practice database d4 are stored in a storage unit (not illustrated) provided at the resource management device <NUM>.

The acquisition unit <NUM> acquires a request from an external device. The external device includes, but not limited to, for example, a device such as an information terminal to be used by a user who utilizes a service and a console to be used by an operator who manages a network. The request includes, but not limited to, a request which, for example, requires design, construction and change of a system and which, for example, expresses a request on business. A form of the request can include, but not limited to, for example, text, speech and a command. Further, an external information source can be used as the external device, and the acquisition unit <NUM> can acquire external information from the external information source. The external information includes, but not limited to, for example, an alert occurring on a network by monitoring a system, a log of a system on a network, information posted on a social networking service (SNS) and information regarding weather and traffic. The request may be equated with the external information as a trigger of processing to be performed in the present embodiment, and the request is not distinguished from the external information unless the circumstances are exceptional in the present embodiment.

The app selection unit <NUM> selects apps for satisfying the request acquired by the acquisition unit <NUM>. The app selection unit <NUM> can select apps by analyzing the request and extracting a predetermined catalog from the catalog database d1 based on the analysis result. A technique for analyzing a request itself is well known, and thus, detailed description will be omitted. A catalog is a form of process required for providing a service, and one or a plurality of apps required for providing the service are designated. The catalog itself is well known, and thus, detailed description will be omitted.

Further, the app selection unit <NUM> can set a data pipeline to be utilized by the selected apps. The data pipeline is a path of data from a data transmission source (for example, an infrastructure) to a data transmission destination (for example, an infrastructure). The app selection unit <NUM> can set the data pipeline through well-known pipeline processing. For example, the data pipeline can include, but not limited to, a pipeline which has predetermined data processing order by a software pipeline which is one of the pipeline processing.

Particularly, the app selection unit <NUM> can select apps included in a best practice. The app selection unit <NUM> can select apps by selecting a best practice including apps for satisfying a request from the best practice database d4. The best practice is a group of resources which have been confirmed to be optimized so as to exert performance of a level equal to or greater than a predetermined level in provision of a predetermined service. Details of the best practice will be described later. While the apps selected by the app selection unit <NUM> may be apps included in the best practice or apps which are not included in the best practice, the app selection unit <NUM> preferentially selects infrastructures included in the best practice.

The infrastructure selection unit <NUM> selects infrastructures for the apps selected by the app selection unit <NUM>. The infrastructure selection unit <NUM> can select infrastructures having relation with the selected apps using a specific data model with reference to the data model database d2. Details of the data model will be described later.

Particularly, the infrastructure selection unit <NUM> can select infrastructures included in the best practice. The infrastructure selection unit <NUM> can select infrastructures capable of exchanging data with the apps selected by the app selection unit <NUM> or infrastructures capable of exchanging data with the infrastructures selected by the infrastructure selection unit <NUM> with reference to the best practice database d4. While the infrastructures selected by the infrastructure selection unit <NUM> may be infrastructures included in the best practice or may be infrastructures which are not included in the best practice, the infrastructure selection unit <NUM> preferentially selects infrastructures included in the best practice.

The design unit <NUM> designs a system using the apps selected by the app selection unit <NUM> and the infrastructures selected by the infrastructure selection unit <NUM>. Specifically, the design unit <NUM> generates a blueprint. The blueprint is design information of a system including resources which satisfy the request. The blueprint itself is well known, and thus, detailed description will be omitted. Further, the design unit <NUM> can set parameters for generating the blueprint. The parameters include, but not limited to, for example, the number of users who utilize a service, an IP address of physical machine arranged in the physical layer, an IP address of virtual machine arranged in the virtual layer, or the like. The parameter itself is well known, and thus, detailed description will be omitted.

The orchestrator unit <NUM> executes orchestration for the system designed by the design unit <NUM> in accordance with the blueprint generated by the design unit <NUM>. The orchestration is automatic control of deployment, setting and management of the service. The service is provided by the orchestration. Further, the orchestrator unit <NUM> can execute a test of the system.

The catalog database d1 is an aggregate of catalogs. The data model database d2 is an aggregate of data models. The blueprint database d3 is an aggregate of blueprints. The blueprint generated by the design unit <NUM> is accumulated in the blueprint database d3. The best practice database d4 is an aggregate of best practices.

The data model in the present embodiment clearly specifies relation among resources which exchange predetermined data. The data model is expressed with a set of relation and two resources having the relation. Note that a data model originally determines a structure of data or structured data in an explicit manner. However, in the present invention, the data model is specifically used. In other words, the data model is defined as indicating individual resources provided in a service, or the like, and relation among the resources and can be utilized as a reference for design of a complex system in which a plurality of services are combined. Thus, a group of resources necessary for providing a plurality of services is specified.

The resources are classified into an app arranged in the app layer, a virtual resource arranged in the virtual layer, and a physical resource arranged in the physical layer. Thus, as illustrated in <FIG>, the data model includes a data model in which relation is formed between an app r1 and a virtual resource r2, and a data model in which relation is formed between a virtual resource r3 and a physical resource r4. These two data models are examples where relation is formed between resources arranged in adjacent layers. Further, as illustrated in <FIG>, the data model includes a data model in which relation is formed between virtual resources r5 and r6 and a data model in which relation is formed between physical resources r7 and r8. These two data models are examples where relation is formed between resources arranged in the same layer. Note that the data model may include a data model in which relation is formed between two apps.

The data model enables exchange of predetermined data between specified two resources, that is, defines formation of data flow. Thus, in a case where the app selection unit <NUM> selects apps, the infrastructure selection unit <NUM> can select virtual resources having relation with the selected apps in accordance with the data model, so that data is exchanged. Further, the infrastructure selection unit <NUM> can select physical resources or other virtual resources having relation with the selected virtual resources in accordance with the data model, so that data is exchanged. Still further, the infrastructure selection unit <NUM> can select other physical resources or virtual resources having relation with the selected physical resources in accordance with the data model, so that data is exchanged.

The apps and the virtual resources are updated or upgraded as appropriate in accordance with, for example, change of types of resources to be utilized for providing a predetermined service, change of a way to use the resources (a usage mode of the user), or the like. Further, the physical resources are provided as, for example, equipment which follows new standards as appropriate. Specifically, reduction in granularity of a management unit such as switch of management from management by a server to management by a processing device or a memory which constitutes the server, replacement of worn out equipment with new equipment having reinforced performance, replacement of equipment with equipment having a changed data structure, or the like, is performed. In this manner, the resources dynamically change. Thus, the data model also dynamically changes (is updated). The data model database d2 is updated as appropriate in accordance with such change.

Note that as illustrated in <FIG>, while the data model is prepared as a data model having relation between two resources, there may be a plurality of data models which have common one resource out of the two resources having relation and have different resources as the other of the two resources. In this case, there may be a plurality of infrastructures having relation with the apps selected by the app selection unit <NUM> depending on the data model. The infrastructure selection unit <NUM> can select one infrastructure using predetermined priority order (for example, service level agreement (SLA), link cost and other policies).

Further, owners who own the resources exist for each of the resources. The resource management device <NUM> can manage the resources in association with the owners of the resources. Further, users having authority of the resources are determined for each of the resources to be managed by the resource management device <NUM>. The resource management device <NUM> can manage the resources in association with the users having authority of the resources.

Further, regarding a network on which a service is to be provided, tenants are prepared in unit of a virtual network to be provided to specific users (for example, one customer, one company). One tenant can be prepared for one or a plurality of types of services. Thus, one tenant can be allocated to a plurality of resources which comply with a predetermined rule. As a result, the resource management device <NUM> can manage the resources in association with tenants to which the resources belong.

Use of the data model enables the infrastructure selection unit <NUM> to select infrastructures capable of exchanging data (data flow) only with reference to relation between the resources (apps, infrastructures). In other words, infrastructures can be selected for the selected apps regardless of which layers of a multi-layer, resources which handle a data flow belong to. Further, infrastructures can be selected for the selected apps regardless of which services of a multi-service, are to be provided by resources which handle a data flow.

Further, a domain in design of a system which can support triple multi relates to the owner of the resource and the tenant described above. In other words, the owner of the resource within the domain can be specified in accordance with the domain, or a tenant which can be equated with the domain can be prepared. However, as described above, the infrastructures for the specific apps are selected by using the data model, so that the infrastructures can be selected for the selected apps regardless of which domains of a multi-domain the resources which handle the data flow belong to.

In this manner, the data model, which can take a versatile data structure by abstracting a difference between respective domains, a difference between respective layers and a difference between respective services, is useful means for optimizing the resources selected for the request.

As described above, the best practice is a group of resources which have been confirmed to be optimized so as to exert performance of a level equal to or greater than a predetermined level in provision of a predetermined service. The performance of the level equal to or greater than the predetermined level can include, but not limited to, for example, a level in which throughput of exchange of data between resources which constitute the best practice is equal to or greater than a predetermined value.

A group of resources which constitute the best practice includes a group of resources including resources arranged in different layers. In other words, a group of resources which constitute the best practice includes a group of resources including an app and a virtual resource, a group of resources including a virtual resource and a physical resource, and a group of resources including an app, a virtual resource and a physical resource. Further, a group of resources which constitute the best practice includes a group of resources including resources arranged in the same layer. In other words, a group of resources which constitute the best practices includes a group of resources including two or more apps, a group of resources including two or more virtual resources, and a group of resources including two or more physical resources.

A group of resources which constitute the best practices may be a group of resources having relation in accordance with the data model, a group of resources which do not have relation in accordance with the data model, and a group of resources which is a combination of a partial group of resources having relation in accordance with the data model and a partial group of resources which do not have relation in accordance with the data model. It has been confirmed from knowledge (results) in the past that performance of a level equal to or greater than a predetermined level is exerted in exchange of data between resources which constitute the best practice regardless of whether or not there is relation between the resources which constitute the best practice.

The best practice can be a subset of resources which constitute the entire system for providing a predetermined service. In other words, the best practice can provide a partial (local) optimum solution for the entire system. Thus, by collecting a plurality of best practices so that a data flow becomes continuous, the entire system can be designed so as to be optimized. In other words, the best practice is a set of a plurality of partial best practices which provide a partial optimum solution for the entire system, and the selection unit (<NUM>, <NUM>) selects resources of the plurality of partial best practices for the entire system, and the design unit <NUM> generates a blueprint for designing the entire system using the selected resources of the plurality of partial best practices.

The resources which constitute the best practice have already been operated for providing a service, and thus, there is a case where the parameters to be set by the design unit <NUM> have been set for the resources. In this case, in a case where the app selection unit <NUM> or the infrastructure selection unit <NUM> selects the resources, setting of parameters by the design unit <NUM> may be omitted. In the present embodiment, description will be continued assuming that the setting of parameters by the design unit <NUM> is omitted. However, the design unit <NUM> may reset different parameters. Further, in a case where parameters are not set for the resources which constitute the best practice, the design unit <NUM> can set parameters for the resources.

Design processing to be performed by the resource management device <NUM> to design of a system that provides a plurality of types of services will be described with reference to <FIG>.

First, the acquisition unit <NUM> acquires a request from an external device (step S1). Then, the app selection unit <NUM> analyzes the acquired request and determines whether or not there is a best practice including apps for satisfying the request with reference to the best practice database d4 (step S2). In a case where a best practice exists (step S2: Yes), the app selection unit <NUM> selects apps included in the best practice (step S3). Note that in a case where there are a plurality of best practices which can be selected, the app selection unit <NUM> can select one best practice, for example, in accordance with the predetermined priority order described above. Meanwhile, in a case where a best practice does not exist (step S2: No), the app selection unit <NUM> selects apps for satisfying the request in a complementary manner with reference to the catalog database d1 (step S4). Then, the design unit <NUM> sets parameters for the selected apps (step S5).

After step S3 or step S5, the infrastructure selection unit <NUM> determines whether there is a best practice including infrastructures to be chosen as selection targets with reference to the best practice database d4 (step S6). Here, the infrastructures to be chosen as selection targets are infrastructures capable of exchanging data with the apps selected by the app selection unit <NUM> or infrastructures capable of exchanging data with the infrastructure selected by the infrastructure selection unit <NUM>. Then, in a case where there is a best practice (step S6: Yes), the infrastructure selection unit <NUM> selects infrastructures included in the best practice (step S7). Note that in a case where there are a plurality of best practices which can be selected, the infrastructure selection unit <NUM> can select one best practice, for example, in accordance with the predetermined priority order described above. Meanwhile, in a case where a best practice does not exist (step S6: No), the infrastructure selection unit <NUM> selects infrastructures having relation with the selected apps and infrastructures having relation with the selected infrastructures in a complementary manner in accordance with the data model (step S8). All the infrastructures required for providing a service are selected through step S7 and step S8. Then, the design unit <NUM> sets parameters for the selected infrastructures (step S9).

Then, the design unit <NUM> generates a blueprint for designing a system using the apps selected by the app selection unit <NUM>, the infrastructures selected by the infrastructure selection unit <NUM> and the set parameters (step S10). Finally, the orchestrator unit <NUM> executes orchestration for the system in accordance with the generated blueprint (step S11).

According to the design processing described in <FIG>, it is possible to implement provision of service by the designed system. Note that the orchestrator unit <NUM> may execute a test of the designed system using partial best practices.

Note that there is a case where a blueprint can be generated without parameters being set depending on the selected apps or infrastructures, which means that parameters are not essential. Thus, processing in step S5 and step S9 is arbitrary.

Further, the design unit <NUM> can accumulate the generated blueprint in the blueprint database d3. Still further, the design unit <NUM> can form new relation with the apps and the infrastructures used in the designed system and can generate a new data model. The design unit <NUM> can accumulate the newly generated data model in the data model database d2. Further, the design unit <NUM> can determine a new best practice using the apps and the infrastructures used in the designed system. The design unit <NUM> can accumulate the newly determined best practice in the best practice database d4.

Design of a system in a case where a request for "detecting a suspicious person from a video input via the Internet" is made will be described as a specific example. As illustrated in <FIG>, after the acquisition unit <NUM> acquires the request, the app selection unit <NUM> analyzes the request and can select an app of data reception a1. Here, the app selection unit <NUM> can select data reception a1 included in a best practice b1 including the app of data reception a1 and an infrastructure of virtual machine (VM) v4 (see step S3 in <FIG>). Further, the app selection unit <NUM> analyzes the request and can select an app of video analysis a2. Here, the app selection unit <NUM> can select video analysis a2 included in a best practice b2 including the app of video analysis a2 and an infrastructure of VM v5 (see step S3 in <FIG>). Further, the app selection unit <NUM> analyzes the request and can select an app of data store a3. Here, the app selection unit <NUM> can select data store a3 included in a best practice b3 including the app of data store a3 and an infrastructure of VM v6 (see step S3 in <FIG>). Data reception a1, video analysis a2 and data store a3 are arranged in the app layer. The VM v4 to v6 are arranged in the virtual layer.

Then, as illustrated in <FIG>, the infrastructure selection unit <NUM> selects a best practice b4 capable of exchanging data with best practices b1 to b3 respectively including the selected apps (data reception a1, video analysis a2 and data store a3) (see step S7 in <FIG>). The best practice b4 includes infrastructures such as a storage v1, a virtual network v2, a gateway (GW) v3, the VM v4 to v6 and a data center p3. The storage v1, the virtual network v2 and the GW v3 are arranged in the virtual layer. The data center p3 is arranged in the physical layer.

Then, as illustrated in <FIG>, the infrastructure selection unit <NUM> selects a best practice b5 capable of exchanging data with the selected best practice b4 (see step S7 in <FIG>). The best practice b5 includes infrastructures such as a data center p3, a security camera p1 and the Internet p2. The security camera p1 and the Internet p2 are arranged in the physical layer.

All the infrastructures which constitute the system which satisfies the request are selected as described above. The app selection unit <NUM> can set a data pipeline (solid line with an arrow in <FIG>) which to be utilized by the selected apps (data reception a1, video analysis a2 and data store a3). In the present specific example, a data transmission source in the data pipeline is the security camera p1, and a data transmission destination is the storage v1. The data pipeline depends on the app selected by the app selection unit <NUM>, and thus, while, for example, the app selection unit <NUM> can set the data pipeline, a component which sets the data pipeline is not limited to this. For example, the design unit <NUM> may set the data pipeline. Note that in a case where a plurality of types of data pipelines can be set for the selected apps, one data pipeline can be set in accordance with selection of the infrastructures by the infrastructure selection unit <NUM>.

In a case where the selected apps (data reception a1, video analysis a2 and data store a3) have predetermined operating conditions, the infrastructure selection unit <NUM> preferably selects infrastructures which can fulfill the operating conditions. The "predetermined operating conditions" can be, for example, a condition that the infrastructure has a sufficient resource amount (resource check), but the predetermined operating conditions are not limited to this. In a case where there is an infrastructure whose resource amount is insufficient, the resource management device <NUM> can notify an owner of the infrastructure that the resource amount is insufficient. In a case where the infrastructures are selected, the design unit <NUM> preferably accumulates a best practice of the resources including the infrastructures and the apps in the best practice database d4.

Thereafter, the design unit <NUM> generates a blueprint (see step S10 in <FIG>), and the orchestrator unit <NUM> executes orchestration (see step S11 in <FIG>). It is therefore possible to design a system in which the security camera p1 can capture an image of a suspicious person, with the best practices b1 to b5 as a system including the selected resources and implement a service which satisfies the request.

Further, it is possible to cause a computer to execute functions of the resource management device <NUM> according to the above-described embodiment by a program. In this case, effects similar to the effects of the above-described embodiment can be obtained by the computer executing the program. Further, it is also possible to implement processing similar to the processing in the above-described embodiment by recording the program in a computer readable recording medium and causing the computer to read and execute the program recorded in this recording medium. An example of the computer which executes a resource management program which implements functions similar to the functions of the resource management device <NUM> will be described below.

<FIG> is a view illustrating a computer which executes the resource management program. As illustrated in <FIG>, a computer <NUM> includes, for example, a memory <NUM>, a CPU <NUM>, a hard disk drive interface <NUM>, a disk drive interface <NUM>, a serial port interface <NUM>, a video adapter <NUM> and a network interface <NUM>. These components are connected with a bus <NUM>.

The memory <NUM> includes a read only memory (ROM) <NUM> and a random access memory (RAM) <NUM>. The ROM <NUM> stores, for example, a boot program such as a basic input output system (BIOS). The hard disk drive interface <NUM> is connected to a hard disk drive <NUM>. The disk drive interface <NUM> is connected to a disk drive <NUM>. For example, a detachable storage medium such as a magnetic disk and an optical disk is inserted into the disk drive <NUM>. For example, a mouse <NUM> and a keyboard <NUM> are connected to the serial port interface <NUM>. For example, a display <NUM> is connected to the video adapter <NUM>. The memory <NUM>, the hard disk drive <NUM>, the disk drive <NUM>, and the storage medium to be inserted into the disk drive <NUM> become specific hardware resources of the storage unit provided at the resource management device <NUM>.

Here, as illustrated in <FIG>, the hard disk drive <NUM>, for example, stores an OS <NUM>, an application program <NUM>, a program module <NUM> and program data <NUM>. The respective tables described in the above-described embodiment are stored in, for example, the hard disk drive <NUM> and the memory <NUM>.

Further, the resource management program is stored in the hard disk drive <NUM> as, for example, a program module which describes a command to be executed by the computer <NUM>. Specifically, a program module which describes respective kinds of processing to be executed by the resource management device <NUM> described in the above-described embodiment is stored in the hard disk drive <NUM>.

Further, data to be used in information processing by the resource management program is stored in, for example, the hard disk drive <NUM> as the program data. Then, the CPU <NUM> reads out the program module <NUM> and the program data <NUM> stored in the hard disk drive <NUM> to the RAM <NUM> as necessary and executes the above-described procedure.

Note that the program module <NUM> and the program data <NUM> relating to the resource management program may be stored in, for example, a detachable storage medium and may be read out by the CPU <NUM> via the disk drive <NUM>, or the like, as well as being stored in the hard disk drive <NUM>. Alternatively, the program module <NUM> and the program data <NUM> according to the resource management program may be stored in other computers connected via a network such as a local area network (LAN) and a wide area network (WAN) and may be read out by the CPU <NUM> via the network interface <NUM>.

As described above, the present embodiment is the resource management device <NUM> including the selection unit (the app selection unit <NUM>, the infrastructure selection unit <NUM>) configured to select a plurality of resources included in a best practice, the design unit <NUM> configured to generate a blueprint for designing a system using the selected resources, and the orchestrator unit <NUM> configured to execute orchestration for the designed system in accordance with the generated blueprint.

Further, the present embodiment is a resource management method to be executed by the resource management device <NUM>, the resource management method including a step of selecting a plurality of resources included in a best practice, a step of generating a blueprint for designing a system using the selected resources, and a step of executing orchestration for the designed system in accordance with the generated blueprint.

According to these, the present embodiment can set a data pipeline for providing a plurality of types of services from a best practice for which performance has been confirmed. Thus, the present embodiment can facilitate design of a system that provides a plurality of types of services.

Further, the plurality of resources include an app included in a best practice for satisfying a request and an infrastructure included in a best practice capable of exchanging data with the app.

These enable the present embodiment to set a data pipeline in accordance with the apps selected in accordance with the request.

Further, in a case where a best practice including a specific infrastructure does not exist, the selection unit selects the specific infrastructure having relation with the selected apps or the selected infrastructures in accordance with a data model which clearly specifies relation among resources arranged in respective layers of a multi-layer.

This enables the present embodiment to reliably set a data pipeline even in a case where a best practice does not exist.

Further, the best practice is a set of a plurality of partial best practices which provide a partial optimum solution for the entire system, the selection unit selects resources of the plurality of partial best practices for the entire system, and the design unit generates a blueprint for designing the entire system using the selected resources of the plurality of partial best practices.

Claim 1:
A resource management device (<NUM>) that manages resources for providing a plurality of types of services, the resource management device (<NUM>) storing therein a best practice resource group which is a group of best practice resources which have been optimized so as to exert performance of a level equal to or greater than a predetermined level in provision of a predetermined service between two or more resources, each of the two or more resources being selected from one or more of: a plurality of applications (r1) each as a resource arranged in an application layer; a plurality of virtual resources (r2, r3, r5, r6) each as a resource arranged in a virtual layer; and a plurality of physical resources (r4, r7, r8) each as a resource arranged in a physical layer, the resource management device (<NUM>) comprising:
a selection unit (<NUM>) configured to select an application (r1) required for providing the predetermined service and then select a group of resources each of which is in the group of best practice resources, and wherein each resource of the selected group of resources is either a resource capable of exchanging data with the selected application (r1) or a resource capable of exchanging data with another resource of the selected group of resources, with reference to the best practice resource group, wherein the selection unit is configured to, when there are a plurality of virtual resources or physical resources each of which can be selected as a resource of the selected group of resources, make a selection from the plurality of the virtual resources or physical resources using a predetermined priority order, wherein the predetermined priority order includes at least a service level agreement and a link cost;
a design unit (<NUM>) configured to generate a blueprint for designing a system using the selected resources; and
an orchestrator unit (<NUM>) configured to execute orchestration for the designed system in accordance with the generated blueprint.