This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2014-041246, filed on Mar. 4, 2014, the entire contents of which are incorporated herein by reference.
This invention relates to a technique for providing information to select clouds.
Conventionally, desired services and functions are realized in one cloud service, however, recently, it is focused on to realize services and functions by combining plural cloud services. In such a case, system construction and operational management are performed across plural clouds.
Moreover, as standard specifications for PaaS (Platform as a Service) that realizes portability and interoperability of application execution environments, TOSCA (Topology and Orchestration Specification for Cloud Applications) is announced from OASIS (Organization for the Advancement of Structured Information Standards). According to TOSCA, it becomes possible to describe application configuration deployed on the clouds and operation flows, and deploy and operate services having the same configuration on various clouds. As schematically depicted in
In view of the functions and/or services to be realized, when the aforementioned template is prepared, a cloud on which the service can be instantiated is identified. However, in order to actually operate the system, it is considered not only that the functions and/or services can be realized, but also a non-functional viewpoint such as costs and/or availability. However, it is not easy to select, from plural clouds that provide various functions and/or services, clouds that are preferable not only in a viewpoint that desired functions and/or services can be realized, but also in the non-functional viewpoint.
Patent Document 1: Japanese Laid-open Patent Publication No. 2006-99417
Patent Document 2: International Publication Pamphlet No. WO 2010/137455
In other words, conventional arts cannot provide information to select clouds to be used to realize functions to be used in the non-functional viewpoint.
An information providing method relating to this invention includes: (A) obtaining a template that defines one or more functions to be used; (B) extracting plural combinations that are used to implement the one or more functions, which are defined in the obtained template, from a data storage unit that stores, for each of computer resource providing services that provide one or plural functions, a performance indicator value for each of the one or plural functions, wherein each of the plural combinations includes a computer resource providing service and one or more functions in the computer resource providing service; (C) calculating, for each of the extracted plural combinations, a performance indicator value for the combination based on data in the data storage unit; and (D) outputting, for at least one of the extracted plural combinations, the computer resource providing service, the one or more functions in the computer resource providing service, and the calculated performance indicator value.
The object and advantages of the embodiment will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the embodiment, as claimed.
When the receiver 101 receives an evaluation request from the user terminal 300, the receiver 101 stores data of a template included in the evaluation request in the template storage unit 104. The template is a template or the like, which is defined in TOSCA of OASIS, for example, and as schematically illustrated in
Moreover, the receiver 101 receives reference data from the user terminal 300, and stores the received reference data in the reference data storage unit 103. The reference data may simply be reference values for a cost and an availability indicator value, or may be designation data of a cloud when the cloud has already been used.
Furthermore, when offering data is received from a certain apparatus of each cloud or an administrator terminal of the information providing apparatus 100, the receiver 101 stores the offering data in the offering data storage unit 102. The offering data includes functions provided by the cloud (which include resource conditions), a price and an availability indicator value.
Specifically, data as illustrated in
(1 year−(total time while the resource cannot be used by a failure, for example))/1 year
The derived template generator 1051 of the analyzer 105 generates data of a derived template by applying plan data to topology data (which is called “an original topology”) included in a template (which is called “an original template”), which is stored in the template storage unit 104 one or plural times, and stores the generated data in the first data storage unit 1052. For example, in case of considering an example of the plan data in
The resource development unit 10533 of the evaluation processing unit 1053 extracts, for each of the derived templates stored in the first data storage unit 1052, a combination of clouds that can implement functions defined in the derived template (such a combination may be called “a resource combination”), and stores the extracted data in the second data storage unit 1054.
The cost evaluation unit 10531 of the evaluation processing unit 1053 calculates, for each resource combination of each derived template, a cost that is required when the system defined in the derived template is implemented, based on the data stored in the offering data storage unit 102, and stores the calculated cost in the second data storage unit 1054. When designation data of the cloud is stored in the reference data storage unit 103, the cost evaluation unit 10531 calculates a cost that is required when the functions defined in the original topology are implemented on the designated cloud, and stores the calculated cost in the reference data storage unit 103.
The availability evaluation unit 10532 of the evaluation processing unit 1053 calculates, for each resource combination of each derived template, an availability indicator value in case where the system defined in the derived template is implemented, based on the data stored in the offering data storage unit 102, and stores the calculated availability indicator value in the second data storage unit 1054. Moreover, when the designation data of the cloud is stored in the reference data storage unit 103, the cost evaluation unit 10531 also calculates an availability indicator value in case where the functions defined in the original topology are implemented on the designated cloud, and stores the calculated availability indicator value in the reference data storage unit 103.
The evaluation processing unit 1053 compares the costs and availability indicator values, which are respectively calculated for the resource combinations of the respective derived templates, with the reference value of the cost and the reference value of the availability indicator value. Then, the evaluation processing unit 1053 identifies a resource combination for the derived template, whose cost is equal to or less than the reference value of the cost and whose availability indicator value are equal to or greater than the reference value of the availability indicator value, and stores data of the identified resource combination in the second data storage unit 1054.
The transmitter 106 transmits an evaluation result stored in the second data storage unit 1054 to the user terminal 300 of the evaluation request source.
Next, processing contents of the information providing apparatus 100 will be explained by using
Firstly, the receiver 101 receives offering data of clouds to be introduced to the user from the information providing apparatus 100, from an administrator terminal or the like of the information providing apparatus 100, for example, and stores the received data in the offering data storage unit 102 (
Moreover, the receiver 101 receives an evaluation request including data of the original template from the user terminal 300, and stores the received data of the original template in the template storage unit 104 (step S3). For example, it is assumed that data of the original topology as illustrated in
Moreover, when there is no existing system (step S5: No route), the receiver 101 receives the reference values of the cost and the availability indicator value from the user terminal 300, and stores the received data in the reference data storage unit 103 (step S9). Then, the processing shifts to step S11. For example, a cost for a computing function defined in the original template (e.g. cost per one VM), a cost for a storage function defined in the original template (e.g. cost per one unit capacity), an availability indicator value (%) for the computing function and an availability indicator value (%) for the storage function are designated as reference values.
On the other hand, when there is an existing system (step S5: Yes route), the receiver 101 receives the designation data of the cloud, and stores the received data in the reference data storage unit 103 (step S6). For example, it is assumed that the computing function and storage function for the cloud “Cloud P1” have already been used.
Then, the cost evaluation unit 10531 and availability evaluation unit 10532 of the evaluation processing unit 1053 calculate the cost and availability indicator value for the existing system, and store the calculated cost and availability indicator value in the second data storage unit 1054 (step S7).
For example, a situation as illustrated in
As for the cost, instead of the cost per one unit time, the total cost during the contract period may be used. Accordingly, a case where the cost is gradually decreased in case of the long-term contract and/or a case where the initial expense is high can be considered.
The availability indicator value may be calculated, for example, for each of the computing function and the storage function, or may be calculated for each cloud or each data center. Namely, in case of the implementation in the same cloud or data center, that operating ratio may be employed or when plural clouds or data centers are used, a product of those operating ratios may be employed.
Furthermore, as for the cost and availability indicator value, other simulation methods may be used to predict them.
After that, the derived template generator 1051 performs a processing to generate derived templates from the original templates stored in the template storage unit 104, and stores data of the generated derived templates in the first data storage unit 1052 (step S11). The processing to generate the derived templates will be explained by using
The derived template generator 1051 selects the original template or one derived template that has been generated (
Moreover, the derived template generator 1051 selects one plan that is applicable to the selected template (step S23). Because applying the same plan to the same template is not efficient, it is assumed that the applicable plan is a plan that has not been applied to the selected template.
After that, the derived template generator 1051 generates a new derived template by applying the selected plan to the selected template, and stores data of the new derived template in the first data storage unit 1052 (step S25). There is a case where the same derived template is generated by applying the plan, therefore, when the same derived template is generated, that derived template is not stored in the first data storage unit 1052 in this embodiment.
Then, the derived template generator 1051 determines whether or not the number of derived templates reached the predetermined upper limit value (step S27). When the number of derived templates does not reach the upper limit, the processing returns to the step S21. On the other hand, when the number of derived templates reached the upper limit value, the processing returns to a calling-source processing.
By using the original template as illustrated in
Next, when the plan 1 in
Moreover, when the plan 1 in
By repeating such a processing, the predetermined number of derived templates is generated, and data of the generated derived templates is stored in the first data storage unit 1052. The original template may be stored in the first data storage unit 1052 in order to process the original template like the derived template.
Returning to the explanation of the processing in
At the first stage, for each function, a resource condition is extracted from the derived template, and clouds that match the extracted resource condition are extracted. In an example of
When there is a condition that there is an existing system and the cloud that has been used (e.g. Cloud P1) is not used, “P2-Comp” and “P4-Comp” are extracted as the computing function, and “P2-Str” and “P3-Str” are extracted as the storage function according to
For example, data as illustrated in
When the cloud that has already been used is also used for this processing, “P1-Comp” and “P1-Str” are also extracted as the usable offering.
At the next stage, for each derived template, all combinations of functions in the clouds, which are extracted at the first stage, are generated for each function used in that derived template.
For example, it is assumed that the derived template Temp1 has the topology as illustrated in
As described above, there exist two types of functions in the clouds usable for the computing function and two types of functions in the clouds usable for the storage function, therefore, there are total 16 types of resource combinations (=4 types*4 types). However, when 6 types of resource combinations that are substantially the same are excluded, total 10 types of resource combinations are obtained. For example, a case where “P2-Comp” is assigned to C1, “P4-Comp” is assigned to C2, “P2-Str” is assigned to S1 and “P3-Str” is assigned to S2 and a case where “P4-Comp” is assigned to C1, “P2-Comp” is assigned to C2, “P3-Str” is assigned to S1 and “P2-Str” is assigned to S2 are substantially the same. Therefore, either of them is excluded.
In
Moreover, the derived template Temp2 has the topology as illustrated in
As described above, there are two types of functions in the clouds, which are usable for the computing functions, and there are two types of functions in the clouds, which are usable for the storage function. Therefore, there are total 8 types of resource combinations (=4 types*2 types). However, when two types of resource combinations that are substantially the same are excluded from them, total 6 types of resource combinations are obtained. For example, a case where “P2-Comp” is assigned to C1 and “P4-Comp” is assigned to C2 and a case where “P4-comp” is assigned to C1 and “P2-Comp” is assigned to C2 are substantially the same. Therefore, either of them is excluded.
As described above, there is a case where the cost and availability indicator value of the original template are improved by implementing functions on a cloud other than the cloud that has already been used. Therefore, the resource development may be performed for the original template. At this time, the resource combination in which completely the same implementation as that of the cloud that has already been used is excluded, and other resource combinations are employed as they are. Moreover, when there is no cloud that has already been used, the original template may be processed as one type of derived template.
Then, the cost evaluation unit 10531 and availability evaluation unit 10532 of the evaluation processing unit 1053 calculate the cost and availability indicator value for each resource combination of each derived template, and store the calculated values in the second data storage unit 1054 (step S15). After that, the processing shifts to a processing in
The processing contents of this step are basically similar to those explained for the step S7. For example, the derived template Temp2 in
When such calculation is performed, costs and availability indicator values are calculated as illustrated in
In the example of
Shifting to the explanation of the processing in
Then, the evaluation processing unit 1053 determines whether or not there is a resource combination of a derived template, whose cost is equal to or less than the corresponding reference value and whose availability indicator value is equal to or greater than the corresponding reference value (step S18).
When there is a resource combination of a derived template, which satisfies this condition (step S18: Yes route), the evaluation processing unit 1053 stores data to identify that resource combination of the derived template in the second data storage unit 1054 in correlation with the data of the derived template. Then, the transmitter 106 transmits data of the resource combination of the derived template, which satisfies the aforementioned condition and is stored in the second data storage unit 1054, to the user terminal 300 of the evaluation requesting source (step S19).
For example, when three resource combinations as illustrated in
On the other hand, when there is no resource combination of the derived template, which satisfies the condition at the step S18, the evaluation processing unit 1053 extracts a resource combination of a derived template, whose cost is the least or difference for the cost is equal to or less than a predetermined value and whose availability indicator value is equal to or greater than the reference value, as the resource combination of the derived template, which is near the condition, and stores data to identify that resource combination of the derived template in correlation with data of the derived template in the second data storage unit 1054. Then, the transmitter 106 transmits data of the resource combination of the derived template, which is near the condition, to the user terminal 300 of the evaluation request source (step S20). The contents of the output are similar to the example illustrated in
There are various modes for the output method. For example, data of the topology may not be outputted, however, table as illustrated in
Accordingly, the user can identify much preferable topology and resource combination from a non-functional side such as the cost and availability indicator value.
In the aforementioned processing, as illustrated in
Then, the comparison is performed on this plane with the reference value X of the cost and the reference value Y of the availability indicator value, which are directly set by the user, or the cost X and the availability indicator value Y for the existing system. In the example of
On the other hand, when there is an existing system, and the point o corresponding to those cost and availability indicator value is located at a position as illustrated in
In the aforementioned embodiment, the resource combinations are developed mainly for the derived templates, however, the resource combinations may be developed for the original template. In such a case, there is a possibility that the resource combination whose cost is lower than that of the existing system and whose availability indicator value becomes higher is found. In other words, when the points a to d illustrated in
However, generally, the availability indicator value becomes high in case where the computing function is multiplicated. Therefore, even when the different resource combination is applied to the original template, only point o1 at which the cost is lowered but the availability indicator value is decreased or point o2 at which the availability indicator value increases but the cost increases may be found for the point o corresponding to the cost and availability indicator value of the existing system as illustrated in
Then, when the resource combinations are developed after generating the derived templates by applying the plan to the original template, various points such as points e to i in
As described above, in addition to the derived templates, the resource combinations may be developed also for the original template, and then the aforementioned processing may be executed for the resource combinations of the original template in addition to the derived templates.
Although this embodiment of this invention was explained above, this invention is not limited to this embodiment. For example, the functional block configuration of the information providing apparatus 100 illustrated in
Furthermore, the functions of the information providing apparatus 100 may be implemented by plural computers and the information providing apparatus 100 may be implemented by a stand-alone type computer that is managed by a certain user.
Moreover, an example that the availability indicator value is used as the non-functional viewpoint was explained above, however, other performance indicator values may be employed. For example, the throughput may be considered.
In addition, the aforementioned information providing apparatus 100 is a computer device as shown in
Aforementioned embodiments are outlined as follows:
An information providing method relating to this embodiment includes (A) obtaining a template that defines one or more functions to be used; (B) extracting plural combinations that are used to implement the one or more functions, which are defined in the obtained template, from a data storage unit that stores, for each of computer resource providing services (e.g. clouds) that provide one or plural functions, a performance indicator value for each of the one or plural functions, wherein each of the plural combinations includes a computer resource providing service and one or more functions in the computer resource providing service; (C) calculating, for each of the extracted plural combinations, a performance indicator value for the combination based on data in the data storage unit; and (D) outputting, for at least one of the extracted plurality of combinations, the computer resource providing service, the one or more functions in the computer resource providing service, and the calculated performance indicator value.
Accordingly, it becomes possible to select the computer resource providing service and its functions from the non-functional viewpoint such as a performance indicator value (e.g. availability indicator value).
Moreover, a resource condition may be defined for each of the functions. In such a case, the extracting may include (b1) selecting a computer resource providing service that includes a function whose resource condition satisfies a resource condition defined for a function defined in the obtained template. Hence, it becomes possible to certainly implement functions defined in the template.
Furthermore, the obtaining may include: (a1) receiving data that includes functional information, which defines one or more functions to be used, and one or more deployment plans, wherein each of the one or more deployment plans defines a deployment method of the one or more functions to be used; and (a2) generating plural templates by combining the functional information and the one or more deployment plans. Hence, the possibility that a preferable resource combination is found out among variations of a system that the user assumed becomes high.
Furthermore, the data storage unit may further store a cost for each of the one or plural functions. In such a case, the aforementioned information providing method may further include: (E) calculating, for each of the extracted plural combinations, a cost for the combination based on the cost in the data storage unit. In addition, the aforementioned outputting may include: (d1) extracting, from the extracted plural combinations, a combination whose calculated cost is equal to or less than a reference value and whose calculated performance indicator value is the same as or higher than a predetermined reference. Accordingly, it becomes possible to obtain a combination whose cost and performance indicator value are equal to or higher than reference levels.
The reference value of the cost may be a cost designated by a user or a cost for a computer resource providing service that is currently used, and the predetermined reference may be a value designated by the user or a value for the computer resource providing service that is currently used.
Incidentally, it is possible to create a program causing a computer to execute the aforementioned processing, and such a program is stored in a computer readable storage medium or storage device such as a flexible disk, CD-ROM, DVD-ROM, magneto-optic disk, a semiconductor memory such as ROM (Read Only Memory), and hard disk. In addition, the intermediate processing result is temporarily stored in a storage device such as a main memory or the like.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present inventions have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2014-041246 | Mar 2014 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
5339435 | Lubkin et al. | Aug 1994 | A |
8271655 | Dawson | Sep 2012 | B2 |
20020116251 | Chen | Aug 2002 | A1 |
20110131335 | Spaltro | Jun 2011 | A1 |
20110138047 | Brown | Jun 2011 | A1 |
20120022944 | Volpi | Jan 2012 | A1 |
20120072318 | Akiyama et al. | Mar 2012 | A1 |
20120117320 | Pinchover | May 2012 | A1 |
20120131161 | Ferris | May 2012 | A1 |
20120131594 | Morgan | May 2012 | A1 |
20130067090 | Batrouni | Mar 2013 | A1 |
20140068075 | Bonilla | Mar 2014 | A1 |
20140200947 | Gujar | Jul 2014 | A1 |
Number | Date | Country |
---|---|---|
5-197697 | Aug 1993 | JP |
2006-99417 | Apr 2006 | JP |
WO 2010137455 | Dec 2010 | WO |
Entry |
---|
Rui Han et al. “Elastic-TOSCA: Supporting Elasticity of Cloud Application in TOSCA”, Proceedings of the 4th International Conference on Cloud Computing, GRIDs, and Virtualization, Cloud Computing, 2013, 8 pages. |
Alexandru-Florian Antonescu et al. “Dynamic Topology Orchestration for Distributed Cloud-Based Applications”, Proceedings of 2012 IEEE 2nd Symposium on Network Cloud Computing and Applications (NCCA), 2012, 8 pages. |
Number | Date | Country | |
---|---|---|---|
20150256425 A1 | Sep 2015 | US |