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

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

Info

Publication number
JPWO2016017111A1
JPWO2016017111A1 JP2016537741A JP2016537741A JPWO2016017111A1 JP WO2016017111 A1 JPWO2016017111 A1 JP WO2016017111A1 JP 2016537741 A JP2016537741 A JP 2016537741A JP 2016537741 A JP2016537741 A JP 2016537741A JP WO2016017111 A1 JPWO2016017111 A1 JP WO2016017111A1
Authority
JP
Japan
Prior art keywords
resource
information
specific
component
workflow
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2016537741A
Other languages
English (en)
Inventor
和大 船越
和大 船越
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JPWO2016017111A1 publication Critical patent/JPWO2016017111A1/ja
Pending legal-status Critical Current

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (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の非機能要件に関するリソースの情報とに基づいて、優先的に使用する前記リソースの情報を含むシステム構成情報を生成する処理と、
    前記システム構成情報を出力する処理と、をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な
    非一時的記録媒体。
JP2016537741A 2014-08-01 2015-07-21 情報処理システム及びシステム設計方法 Pending JPWO2016017111A1 (ja)

Applications Claiming Priority (3)

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

Publications (1)

Publication Number Publication Date
JPWO2016017111A1 true JPWO2016017111A1 (ja) 2017-05-18

Family

ID=55217032

Family Applications (1)

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

Country Status (2)

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

Families Citing this family (4)

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

Family Cites Families (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 日本電気株式会社 情報システム構築支援装置、情報システム構築支援方法および情報システム構築支援プログラム

Also Published As

Publication number Publication date
WO2016017111A1 (ja) 2016-02-04

Similar Documents

Publication Publication Date Title
Kannan et al. Grandslam: Guaranteeing slas for jobs in microservices execution frameworks
US11403125B2 (en) Optimizing the deployment of virtual resources and automating post-deployment actions in a cloud environment
US10701140B2 (en) Automated ETL resource provisioner
CN106062711B (zh) 用于复合控件的方法、系统和计算机存储介质
US8667020B2 (en) Placement goal-based database instance dynamic consolidation
JP6695437B2 (ja) 管理計算機及びテスト環境決定方法
Marozzo et al. JS4Cloud: script‐based workflow programming for scalable data analysis on cloud platforms
US20120254434A1 (en) Placement goal-based database instance consolidation
US11188348B2 (en) Hybrid computing device selection analysis
WO2016017111A1 (ja) 情報処理システム及びシステム設計方法
US20200044938A1 (en) Allocation of Shared Computing Resources Using a Classifier Chain
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
US10726944B2 (en) Recommending novel reactants to synthesize chemical products
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
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

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170120