特許第6048488号(P6048488)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

特許6048488システム構築手順生成装置、システム構築手順生成方法、及び、プログラム
<>
  • 特許6048488-システム構築手順生成装置、システム構築手順生成方法、及び、プログラム 図000002
  • 特許6048488-システム構築手順生成装置、システム構築手順生成方法、及び、プログラム 図000003
  • 特許6048488-システム構築手順生成装置、システム構築手順生成方法、及び、プログラム 図000004
  • 特許6048488-システム構築手順生成装置、システム構築手順生成方法、及び、プログラム 図000005
  • 特許6048488-システム構築手順生成装置、システム構築手順生成方法、及び、プログラム 図000006
  • 特許6048488-システム構築手順生成装置、システム構築手順生成方法、及び、プログラム 図000007
  • 特許6048488-システム構築手順生成装置、システム構築手順生成方法、及び、プログラム 図000008
  • 特許6048488-システム構築手順生成装置、システム構築手順生成方法、及び、プログラム 図000009
  • 特許6048488-システム構築手順生成装置、システム構築手順生成方法、及び、プログラム 図000010
  • 特許6048488-システム構築手順生成装置、システム構築手順生成方法、及び、プログラム 図000011
  • 特許6048488-システム構築手順生成装置、システム構築手順生成方法、及び、プログラム 図000012
  • 特許6048488-システム構築手順生成装置、システム構築手順生成方法、及び、プログラム 図000013
  • 特許6048488-システム構築手順生成装置、システム構築手順生成方法、及び、プログラム 図000014
  • 特許6048488-システム構築手順生成装置、システム構築手順生成方法、及び、プログラム 図000015
  • 特許6048488-システム構築手順生成装置、システム構築手順生成方法、及び、プログラム 図000016
  • 特許6048488-システム構築手順生成装置、システム構築手順生成方法、及び、プログラム 図000017
  • 特許6048488-システム構築手順生成装置、システム構築手順生成方法、及び、プログラム 図000018
  • 特許6048488-システム構築手順生成装置、システム構築手順生成方法、及び、プログラム 図000019
  • 特許6048488-システム構築手順生成装置、システム構築手順生成方法、及び、プログラム 図000020
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6048488
(24)【登録日】2016年12月2日
(45)【発行日】2016年12月21日
(54)【発明の名称】システム構築手順生成装置、システム構築手順生成方法、及び、プログラム
(51)【国際特許分類】
   G06F 9/445 20060101AFI20161212BHJP
【FI】
   G06F9/06 610A
   G06F9/06 610L
   G06F9/06 610M
【請求項の数】9
【全頁数】21
(21)【出願番号】特願2014-502005(P2014-502005)
(86)(22)【出願日】2013年2月18日
(86)【国際出願番号】JP2013000880
(87)【国際公開番号】WO2013128838
(87)【国際公開日】20130906
【審査請求日】2016年1月20日
(31)【優先権主張番号】特願2012-45761(P2012-45761)
(32)【優先日】2012年3月1日
(33)【優先権主張国】JP
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100124154
【弁理士】
【氏名又は名称】下坂 直樹
(72)【発明者】
【氏名】副島 賢司
【審査官】 大塚 俊範
(56)【参考文献】
【文献】 特開2004−302929(JP,A)
【文献】 特開2011−100260(JP,A)
【文献】 特開2011−43932(JP,A)
【文献】 特開2002−55821(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/445
(57)【特許請求の範囲】
【請求項1】
システムの構築に必要な、複数のプログラムモジュールのいずれかと複数の操作種別のいずれかの組で示される複数の操作の内の、1以上の対の各々の依存関係を示す依存関係情報を記憶する依存関係記憶手段と、
前記複数の操作の各々の実行順序を示す手順シーケンスを記憶する操作手順記憶手段と、
記依存関係情報で示される前記1以上の依存関係の各々が満たされるように、前記手順シーケンスを更新し、出力する操作手順生成手段と
を含むシステム構築手順生成装置。
【請求項2】
前記複数の操作種別は、プログラムモジュールのインストール、アンインストール、起動、停止、再起動の内の少なくとも1つを含む
請求項1に記載のシステム構築手順生成装置。
【請求項3】
前記依存関係は、操作の対の一方を依存元、他方を依存先としたときに、依存先操作に係るプログラムモジュールの状態が当該操作を完了した状態である場合に依存元操作を実行することを示す前提状態依存、依存元操作に係るプログラムモジュールの状態が当該操作を完了した状態である場合に依存操作を実行することを示す逆前提状態依存、依存元操作の実行後に依存先操作を実行することを示す通知依存、依存先操作の実行後に依存元操作を実行することを示す逆通知依存の内の少なくとも1つにより指定される
請求項2に記載のシステム構築手順生成装置。
【請求項4】
前記操作手順生成手段は、前記依存関係情報に依存関係が追加された場合、
前記追加された依存関係が、前提状態依存または逆通知依存であるときは、前記手順シーケンスにおいて、前記追加された依存関係の依存元操作を依存先操作の後に移動し、前記追加された依存関係の依存先と依存元との間の1以上の操作の各々に関して、移動した操作を依存先とした前提状態依存または逆通知依存の依存元操作、もしくは、移動した操作を依存元とした逆前提状態依存または通知依存の依存先操作を、当該移動した操作の後に移動することを再帰的に繰り返し、
前記追加された依存関係が、逆前提状態依存または通知依存であるときは、前記手順シーケンスにおいて、前記追加された依存関係の依存元操作を依存先操作の前に移動し、前記追加された依存関係の依存先と依存元との間の1以上の操作の各々に関して、移動した操作を依存先とした逆前提状態依存または通知依存の依存元操作、もしくは、移動した操作を依存元とした前提状態依存または逆通知依存の依存先操作を、当該移動した操作の前に移動することを再帰的に繰り返すことにより、前記手順シーケンスを更新する
請求項3に記載のシステム構築手順生成装置。
【請求項5】
前記複数の操作の内の、依存関係の連鎖により辿ることのできる全ての操作を要素とする集合を操作集合とし、
前記操作手順記憶手段は、1以上の操作集合の各々対応に、当該操作集合に含まれる1以上の操作の各々の実行順序を示す手順シーケンスを記憶し、
前記操作手順生成手段は、前記依存関係情報に依存関係が追加された場合、
追加前に、前記追加された依存関係の依存元操作と依存先操作を含む操作集合が同じときは、前記追加された依存関係の依存元操作と依存先操作を含む手順シーケンスを更新し、
追加前に、前記追加された依存関係の依存元操作と依存先操作を含む操作集合が異なるときは、前記追加された依存関係が前提状態依存または逆通知依存である場合、前記追加された依存関係の依存元操作を含む手順シーケンスを、依存先操作を含む手順シーケンスの後に移動し、前記追加された依存関係が逆前提状態依存または通知依存である場合、前記追加された依存関係の依存先操作を含む手順シーケンスを、依存元操作を含む手順シーケンスの後に移動することにより、1つの手順シーケンスに統合する
請求項4に記載のシステム構築手順生成装置。
【請求項6】
前記操作手順生成手段は、前記依存関係情報から依存関係が削除された場合、
削除後に、前記削除された依存関係の依存元操作と依存先操作を含む操作集合が異なるときは、前記削除された依存関係の依存元操作と依存先操作を含む手順シーケンスを、依存元操作を含む手順シーケンスと、依存先操作を含む手順シーケンスとに分割する
請求項5に記載のシステム構築手順生成装置。
【請求項7】
さらに、
前記依存関係情報と前記手順シーケンスとが更新された場合、前記依存関係情報に含まれる1以上の依存関係の各々を当該依存関係の依存元操作と依存先操作に関連付けて示す依存関係画面と、前記手順シーケンスを示す手順画面とを生成し、出力する出力手段と、
前記依存関係画面上で依存関係の追加または削除の入力を受け付け、前記依存関係情報を更新する入力手段と
を備える
請求項1乃至6のいずれかに記載のシステム構築手順生成装置。
【請求項8】
システムの構築に必要な、複数のプログラムモジュールのいずれかと複数の操作種別のいずれかの組で示される複数の操作の内の、1以上の対の各々の依存関係を示す依存関係情報を記憶し、
前記複数の操作の各々の実行順序を示す手順シーケンスを記憶し、
記依存関係情報で示される前記1以上の依存関係の各々が満たされるように、前記手順シーケンスを更新し、出力する
システム構築手順生成方法。
【請求項9】
コンピュータに、
システムの構築に必要な、複数のプログラムモジュールのいずれかと複数の操作種別のいずれかの組で示される複数の操作の内の、1以上の対の各々の依存関係を示す依存関係情報を記憶し、
前記複数の操作の各々の実行順序を示す手順シーケンスを記憶し、
記依存関係情報で示される前記1以上の依存関係の各々が満たされるように、前記手順シーケンスを更新し、出力する
処理を実行させるプログラ

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、システム構築手順生成装置、システム構築手順生成方法、及び、プログラムに関する。
【背景技術】
【0002】
近年、コンピュータシステム(以下、システムとする)の運用コストの削減に対する要求が高まるにつれ、システムに関する様々な運用プロセスの自動化が進んでいる。その一つに、システムの自動構築がある。システムの構築は、システムの開発者等が構築手順書を作成し、構築担当者等が構築手順書に基づいて構築作業を行うというプロセスで実施されてきた。そして、このプロセスを自動化するために、システム構築前に開発者等がワークフローを作成し、ワークフローを基にシステムを自動構築するアプローチがとられてきた。
【0003】
一方で、システムの複雑化に伴い、ワークフローのメンテナンスの難易度が上り、フローの定義誤りや、変更が困難になる課題が発生してきた。この課題に対して、構築対象のシステムを構成するプログラムモジュールの間の依存関係を基にシステム構築手順を生成するアプローチが提案されはじめた。
【0004】
このような、プログラムモジュール間の依存関係に基づいてシステムの構築手順を生成する技術が、例えば、特許文献1に記載されている。特許文献1に記載の技術では、システムを構成する複数のソフトウェアコンポーネント(プログラムモジュール)を起動する場合に、各ソフトウェアコンポーネントの重み付き依存情報に基づいて各コンポーネントの起動順位を決定し、決定した起動順位に従って各コンポーネントを起動する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2011−43932号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
システムの構築では、複数のプログラムモジュールの各々に対して、インストールや起動等の、複数種別の操作が要求されることがある。この場合、あるプログラムの各操作の実行の可否が当該プログラムの他の操作や他のプログラムの各操作の実行の有無に依存することがある。
【0007】
しかしながら、上述の特許文献1に記載の技術は、複数のプログラムモジュールの起動に関する依存関係を基に、各プログラムの起動順位を決定しており、複数のプログラムモジュールの各々に対して複数種別の操作の実行が要求されるシステムには適用できない。
【0008】
本発明の目的は、複数のプログラムモジュールの各々に対して複数種別の操作を実行することにより構築されるシステムの構築手順を生成することである。
【課題を解決するための手段】
【0009】
本発明の一態様におけるシステム構築手順生成装置は、システムの構築に必要な、複数のプログラムモジュールのいずれかと複数の操作種別のいずれかの組で示される複数の操作の内の、1以上の対の各々の依存関係を示す依存関係情報を記憶する依存関係記憶手段と、前記複数の操作の各々の実行順序を示す手順シーケンスを記憶する操作手順記憶手段と、前記依存関係情報が更新された場合、前記依存関係情報で示される前記1以上の依存関係の各々が満たされるように、前記手順シーケンスを更新し、出力する操作手順生成手段とを含む。
【0010】
本発明の一態様におけるシステム構築手順生成方法は、システムの構築に必要な、複数のプログラムモジュールのいずれかと複数の操作種別のいずれかの組で示される複数の操作の内の、1以上の対の各々の依存関係を示す依存関係情報を記憶し、前記複数の操作の各々の実行順序を示す手順シーケンスを記憶し、前記依存関係情報が更新された場合、前記依存関係情報で示される前記1以上の依存関係の各々が満たされるように、前記手順シーケンスを更新し、出力する。
【0011】
本発明の一態様におけるコンピュータが読み取り可能な記録媒体は、コンピュータに、システムの構築に必要な、複数のプログラムモジュールのいずれかと複数の操作種別のいずれかの組で示される複数の操作の内の、1以上の対の各々の依存関係を示す依存関係情報を記憶し、前記複数の操作の各々の実行順序を示す手順シーケンスを記憶し、前記依存関係情報が更新された場合、前記依存関係情報で示される前記1以上の依存関係の各々が満たされるように、前記手順シーケンスを更新し、出力する処理を実行させるプログラムを格納する。
【発明の効果】
【0012】
本発明の効果は、複数のプログラムモジュールの各々に対して複数種別の操作を実行することにより構築されるシステムの構築手順を生成できることである。
【図面の簡単な説明】
【0013】
図1】本発明の第1の実施の形態の特徴的な構成を示すブロック図である。
図2】本発明の第1の実施の形態における、システム構築手順生成装置100の構成を示すブロック図である。
図3】本発明の第1の実施の形態における、システム構築手順生成装置100の処理を示すフローチャートである。
図4】本発明の第1の実施の形態における、手順シーケンス更新処理(ステップS105)の詳細を示すフローチャートである。
図5】本発明の第1の実施の形態における、手順シーケンス更新処理(ステップS105)の詳細を示すフローチャート(図4のつづき)である。
図6】本発明の第1の実施の形態における、モジュールに対する操作と、操作によるモジュールの状態遷移を示す図である。
図7】本発明の第1の実施の形態における、依存関係の種別の例を示す図である。
図8】本発明の第1の実施の形態における、依存関係情報121と手順シーケンス122の例を示す図である。
図9】本発明の第1の実施の形態における、依存関係情報121と手順シーケンス122の他の例を示す図である。
図10】本発明の第1の実施の形態における、出力画面200の例を示す図である。
図11】本発明の第1の実施の形態における、手順シーケンス更新処理における、手順シーケンス122の更新の例を示す図である。
図12】本発明の第1の実施の形態における、手順シーケンス更新処理における、手順シーケンス122の更新の他の例を示す図である。
図13】本発明の第2の実施の形態における、システム構築手順生成装置100の処理を示すフローチャートである。
図14】本発明の第2の実施の形態における、依存関係情報121と手順シーケンス122の例を示す図である。
図15】本発明の第2の実施の形態における、依存関係情報121と手順シーケンス122の他の例を示す図である。
図16】本発明の第2の実施の形態における、出力画面200の例を示す図である。
図17】本発明の第2の実施の形態における、依存関係情報121と手順シーケンス122の他の例を示す図である。
図18】本発明の第2の実施の形態における、依存関係情報121と手順シーケンス122の他の例を示す図である。
図19】本発明の第2の実施の形態における、出力画面200の他の例を示す図である。
【発明を実施するための形態】
【0014】
(第1の実施の形態)
次に、本発明の第1の実施の形態について説明する。
【0015】
はじめに、本発明の第1の実施の形態におけるシステム構築で実行される操作と、操作間に設定される依存関係123について説明する。
【0016】
本発明の第1の実施の形態における構築対象のコンピュータシステムは、複数のプログラムモジュール(以下、モジュールとする)により構成され、複数のモジュールの各々に対して、複数種別の操作の内の1以上が実行される。
【0017】
図6は、本発明の第1の実施の形態における、モジュールに対する操作と、操作によるモジュールの状態遷移を示す図である。
【0018】
本発明の第1の実施の形態では、操作の種別として、「install(インストール)」、「uninstall(アンインストール)」、「load(起動)」、「unload(停止)」、及び、「reload(再起動)」が用いられる。
【0019】
ここで、「install」は、システムを構築するコンピュータの外部記憶部等にモジュールを起動可能となるように配置する操作を示す。図6に示すように、「install」が完了するとモジュールの状態は「installed(インストール済み)」に遷移する。
【0020】
「uninstall」は、外部記憶部等から、インストール済みのモジュールを削除する操作を示す。「uninstall」が完了するとモジュールの状態は「none(なし)」に遷移する。
【0021】
「load」は、インストールされたモジュールをコンピュータのメモリ等に展開し、当該モジュールの処理を起動する操作を示す。「load」が完了するとモジュールの状態は「loaded(起動済み)」に遷移する。
【0022】
「unload」は、モジュールを停止する操作を示す。「unload」が完了するとモジュールの状態は「installed」に遷移する。
【0023】
「reload」は、モジュールを再起動する操作を示す。モジュールの状態が「loaded」であれば、上述の「unload」と「load」を順に実行する。モジュールの状態が「installed」であれば、「load」を実行する。「reload」が完了するとモジュールの状態は、「loaded」に遷移する。
【0024】
図7は、本発明の第1の実施の形態における、依存関係123の種別の例を示す図である。
【0025】
本発明の第1の実施の形態では、依存関係123の種別として、前提状態依存、逆前提状態依存、通知依存、逆通知依存が用いられると仮定する。
【0026】
図7において、2つの操作間の矢印が依存関係123を示し、矢印の元が依存元、先が依存先、矢印に添付された<>内が、依存関係123の種別を示す。
【0027】
ここで、「前提状態依存」は、依存元の操作を実行するためには、依存先の操作に対応するモジュールの状態が、当該操作が完了した状態である必要があることを示す。例えば、図7のように、「Module A : install」を依存元、「Module B : install」を依存先とした前提状態依存が設定されている場合、モジュールAの「install」を実行するためには、モジュールBの状態が「installed」である必要がある。
【0028】
「逆前提状態依存」は、前提状態依存とは逆の依存関係123で、依存先の操作を実行するためには、依存元の操作に対応するモジュールの状態が、当該操作が完了した状態である必要があることを示す。例えば、「Module A : install」を依存元、「Module B : install」を依存先とした逆前提状態依存が設定されている場合、モジュールBの「install」を実行するためには、モジュールAの状態が「installed」である必要がある。
【0029】
「通知依存」は、依存元の操作を実行後、依存先の操作を実行することを示す。例えば、「Module A : install」を依存元、「Module B : reload」を依存先とした通知依存が設定されている場合、モジュールAの「install」を実行後、モジュールBの「reload」を実行する。
【0030】
「逆通知依存」は、通知依存とは逆の依存関係123で、依存先の操作を実行後、依存元の操作を実行することを示す。例えば、「Module A : reload」を依存元、「Module B : install」を依存先とした逆通知依存が設定されている場合、モジュールBの「install」を実行後、モジュールAの「reload」を実行する。
【0031】
次に、本発明の第1の実施の形態の構成について説明する。図2は、本発明の第1の実施の形態における、システム構築手順生成装置100の構成を示すブロック図である。
【0032】
図2を参照すると、本発明の第1の実施の形態のシステム構築手順生成装置100は、入力部101、操作手順生成部102、出力部103、依存関係記憶部111、及び、操作手順記憶部112を含む。
【0033】
ここで、依存関係記憶部111は、依存関係情報121を記憶する。また、操作手順記憶部112は、手順シーケンス122を記憶する。
【0034】
依存関係情報121は、システムの構築に必要な複数の操作の内の1以上の対の各々の依存関係123を示す。
【0035】
図8、9は、本発明の第1の実施の形態における、依存関係情報121と手順シーケンス122の例を示す図である。図8、9の手順シーケンス122は、それぞれ、図8、9の依存関係情報121に対して設定された手順シーケンス122である。
【0036】
ここで、図7と同様に、依存関係情報121の2つの操作間の矢印が依存関係123を示し、矢印の元が依存元、先が依存先、矢印に添付された<>内が、依存関係123の種別を示す。図8の依存関係情報121では、システムの構築に必要な5つの操作の内の2つの対に依存関係123(123a、b)が設定されている。
【0037】
手順シーケンス122は、システムの構築に必要な複数の操作の各々の実行順序を示す。図8の手順シーケンス122は、モジュールBの「install」、モジュールCの「install」、モジュールCの「load」、…の順番に、操作が実行されることを示している。
【0038】
なお、システムの構築に必要な複数の操作は、予めユーザにより入力され、依存関係情報121と手順シーケンス122に設定されていると仮定する。また、初期状態では、依存関係情報121に依存関係123は設定されておらず、手順シーケンス122における各操作は、例えば、入力された順に配置されていると仮定する。
【0039】
入力部101は、ユーザから依存関係123の追加または削除の入力を受け付け、依存関係情報121を更新する。依存関係123の入力は、例えば、ユーザによる、後述する依存性定義画面201上での図示しないマウスやタッチスクリーン等の入力デバイスの操作により行われる。
【0040】
操作手順生成部102は、依存関係情報121が更新された場合、依存関係情報121で示される1以上の依存関係123の各々が満たされるように、手順シーケンス122を更新する。
【0041】
出力部103は、更新された依存関係情報121、及び、手順シーケンス122を出力する。ここで、出力部103は、例えば、図示しない表示デバイスにより、出力画面200を生成し、表示する。
【0042】
図10は、本発明の第1の実施の形態における、出力画面200の例を示す図である。出力画面200は、依存性定義画面201(依存関係画面)と手順画面202を含む。
【0043】
ここで、依存性定義画面201は、依存関係情報121を示す。図10の依存性定義画面201は、図9の依存関係情報121を示している。依存性定義画面201では、システムを構成する複数のモジュールが配置され、各モジュールには、システム構築時に当該モジュールに対して実行される操作が配置される。また、依存関係123は、依存元操作から依存先操作への矢印で示される。
【0044】
手順画面202は、手順シーケンス122を示す。図10の手順画面202は、図9の手順シーケンス122を示している。
【0045】
ユーザは、入力部101を介して、依存性定義画面201上で、依存元操作と依存先操作を接続し、依存関係123の種別を指定することにより、依存関係123を追加する。また、ユーザは、入力部101を介して、依存性定義画面201上で、設定済みの依存元操作と依存先操作間の接続を削除することにより、依存関係123を削除する。
【0046】
なお、システム構築手順生成装置100はCPU(Central Processing Unit)とプログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。また、依存関係記憶部111と操作手順記憶部112とは、それぞれ個別の記憶媒体でも、1つの記憶媒体によって構成されていてもよい。
【0047】
次に、本発明の第1の実施の形態におけるシステム構築手順生成装置100の動作について説明する。図3は、本発明の第1の実施の形態における、システム構築手順生成装置100の処理を示すフローチャートである。
【0048】
ここでは、図8のように、依存関係情報121、手順シーケンス122が設定されていると仮定する。
【0049】
はじめに、入力部101は、ユーザから依存関係123の追加または削除の入力を受け付ける(ステップS101)。
【0050】
例えば、入力部101は、依存元操作「Module B : install」、依存先操作「Module A : install」、依存関係種別「前提状態依存」である依存関係123cの追加を受け付ける。
【0051】
入力部101は、入力内容に従って依存関係情報121を更新する(ステップS102)。
【0052】
例えば、入力部101は、図9のように、依存関係情報121を更新(依存関係123cを追加)する。
【0053】
出力部103は、依存関係情報121の更新内容に従って、依存性定義画面201を更新する(ステップS103)。
【0054】
例えば、出力部103は、図10のように、依存性定義画面201を更新(Module B : installからModule A : installへ前提状態依存を示す矢印を追加)する。
【0055】
次に、操作手順生成部102は、入力内容が依存関係123の追加か削除かを判定する(ステップS104)。ステップS104において、依存関係123の追加の場合、操作手順生成部102は、後述する手順シーケンス更新処理(ステップS301〜S332)に従って、依存関係情報121で示される依存関係123が満たされるように、手順シーケンス122を更新する(ステップS105)。
【0056】
例えば、操作手順生成部102は、図9のように、手順シーケンス122を更新する。
【0057】
最後に、出力部103は、手順シーケンス122の更新内容に従って、手順画面202を更新する(ステップS106)。
【0058】
例えば、出力部103は、図10のように、手順画面202を更新(図9の手順シーケンス122を表示)する。
【0059】
なお、ステップS104において、入力内容が依存関係123の削除の場合、操作手順生成部102は、現在の手順シーケンス122を保持する。
【0060】
ユーザ等は、出力された手順シーケンス122に従って、各操作を実行することにより、システムを構築することができる。
【0061】
図4、5は、本発明の第1の実施の形態における、手順シーケンス更新処理(ステップS105)の詳細を示すフローチャートである。
【0062】
はじめに、操作手順生成部102は、追加された依存関係123の種別が、「前提状態依存または逆通知依存」、もしくは、「逆前提状態依存または通知依存」のいずれであるかを判定する(ステップS301)。
【0063】
ステップS301で、依存関係123の種別が前提状態依存または逆通知依存の場合、操作手順生成部102は、現在の手順シーケンス122において、追加された依存関係123の依存元操作が依存先操作より先に実行されるかどうかを判定する(ステップS302)。
【0064】
ステップS302で、追加された依存関係123の依存元操作が依存先操作より先に実行される場合(ステップS302/Yes)、操作手順生成部102は、現在の手順シーケンス122における、依存元操作から依存先操作までのシーケンスを部分シーケンス131として抽出する(ステップS303)。
【0065】
図11、12は、本発明の第1の実施の形態における、手順シーケンス122の更新例を示す図である。例えば、図11の状態1のように依存関係情報121、及び、手順シーケンス122(図8の依存関係情報121、及び、手順シーケンス122)が設定されているときに、依存関係123cが追加されたと仮定する。この場合、追加された依存関係123(前提状態依存)の依存元操作(Module B : install)は依存先操作(Module A : install)より先に実行される。従って、操作手順生成部102は、図11の状態2のように、依存元操作(Module B : install)から依存先操作(Module A : install)までのシーケンスを部分シーケンス131として抽出する。
【0066】
また、操作手順生成部102は、移動した操作を格納するための空のリストを移動リスト132として生成する(ステップS304)。
【0067】
操作手順生成部102は、部分シーケンス131の先頭の操作(依存元操作)を末尾に移動するとともに(ステップS305)、移動リスト132に追加する(ステップS306)。
【0068】
例えば、操作手順生成部102は、図11の状態3のように、依存元操作(Module B : install)を、部分シーケンス131の末尾に移動し、移動リスト132に追加する。
【0069】
次に、操作手順生成部102は、対象操作に、部分シーケンス131の先頭の操作から依存先操作の前の操作までを順番に設定して、ステップS308からS311までを繰り返す(ステップS307)。
【0070】
操作手順生成部102は、依存関係情報121に含まれる前提状態依存または逆通知依存の依存関係123の内、対象操作を依存元、移動リスト132内の操作を依存先とする依存関係123があるかどうかを判定する(ステップS308)。
【0071】
ステップS308で、依存関係123が無い場合(ステップS308/No)、操作手順生成部102は、依存関係情報121に含まれる逆前提状態依存または通知依存の依存関係123の内、対象操作を依存先、移動リスト132内の操作を依存元とする依存関係123があるかどうかを判定する(ステップS309)。
【0072】
ステップS308、S309で依存関係123がある場合(ステップS308/Yes、ステップS309/Yes)、操作手順生成部102は、対象操作を部分シーケンス131の末尾に移動するとともに(ステップS310)、移動リスト132に追加する(ステップS311)。
【0073】
例えば、図11の状態3において、部分シーケンス131における操作「Module C : install」を対象操作とした場合、依存関係情報121には、対象操作を依存元、移動リスト132内の操作「Module B : install」を依存先とした前提状態依存(依存関係123b)がある。従って、操作手順生成部102は、図11の状態4のように、対象操作(Module C : install)を、部分シーケンス131の末尾に移動し、移動リスト132に追加する。
【0074】
また、図11の状態4において、部分シーケンス131における操作「Module C : load」を対象操作とした場合、依存関係情報121には、対象操作を依存元、移動リスト132内の操作「Module C : install」を依存先とした逆通知依存(依存関係123a)がある。従って、操作手順生成部102は、図11の状態5のように、対象操作(Module C : load)を、部分シーケンス131の末尾に移動し、移動リスト132に追加する。
【0075】
また、図11の状態5において、部分シーケンス131における操作「Module D : install」を対象操作とした場合、依存関係情報121には、対象操作を依存元、または、依存先とした依存関係123は無い。従って、操作手順生成部102は、図11の状態5の部分シーケンス131を保持する。
【0076】
次に、操作手順生成部102は、現在の手順シーケンス122における、追加された依存関係123の依存元操作から依存先操作までのシーケンスを、更新された部分シーケンス131で置換する(ステップS312)。
【0077】
例えば、操作手順生成部102は、図11の状態5の部分シーケンス131をもとに、状態6のような手順シーケンス122(図9の手順シーケンス122)を得る。
【0078】
一方、ステップS301で、依存関係123の種別が逆前提状態依存または通知依存の場合、操作手順生成部102は、現在の手順シーケンス122において、追加された依存関係123の依存元操作が依存先操作より後に実行されるかどうかを判定する(ステップS322)。
【0079】
ステップS322で、追加された依存関係123の依存元操作が依存先操作より後に実行される場合(ステップS322/Yes)、操作手順生成部102は、現在の手順シーケンス122における、依存先操作から依存元操作までのシーケンスを部分シーケンス131として抽出する(ステップS323)。
【0080】
例えば、図12の状態1のように依存関係情報121、及び、手順シーケンス122が設定されているときに、依存関係123fが追加されたと仮定する。この場合、追加された依存関係123(逆前提状態依存)の依存元操作(Module B : install)は依存先操作(Module A : install)より後に実行される。従って、操作手順生成部102は、図12の状態2のように、依存先操作(Module A : install)から依存元操作(Module B : install)までのシーケンスを部分シーケンス131として抽出する。
【0081】
また、操作手順生成部102は、移動した操作を格納するための空のリストを移動リスト132として生成する(ステップS324)。
【0082】
操作手順生成部102は、部分シーケンス131の末尾の操作(依存元操作)を先頭に移動するとともに(ステップS325)、移動リスト132に追加する(ステップS326)。
【0083】
例えば、操作手順生成部102は、図12の状態3のように、依存元操作(Module B : install)を、部分シーケンス131の先頭に移動し、移動リスト132に追加する。
【0084】
次に、操作手順生成部102は、対象操作に、部分シーケンス131の末尾の操作から依存先操作の次の操作までを逆順に設定して、ステップS328からS331までを繰り返す(ステップS327)。
【0085】
操作手順生成部102は、依存関係情報121に含まれる逆前提状態依存または通知依存の依存関係123の内、対象操作を依存元、移動リスト132内の操作を依存先とする依存関係123があるかどうかを判定する(ステップS328)。
【0086】
ステップS328で、依存関係123が無い場合(ステップS328/No)、操作手順生成部102は、依存関係情報121に含まれる前提状態依存または逆通知依存の依存関係123の内、対象操作を依存先、移動リスト132内の操作を依存元とする依存関係123があるかどうかを判定する(ステップS329)。
【0087】
ステップS328、S329で依存関係123がある場合(ステップS328/Yes、ステップS329/Yes)、操作手順生成部102は、対象操作を部分シーケンス131の先頭に移動するとともに(ステップS330)、移動リスト132に追加する(ステップS331)。
【0088】
例えば、図12の状態3において、部分シーケンス131における操作「Module C : load」を対象操作とした場合、依存関係情報121には、対象操作を依存元、移動リスト132内の操作「Module B : install」を依存先とした逆前提状態依存(依存関係123e)がある。従って、操作手順生成部102は、図12の状態4のように、対象操作(Module C : load)を、部分シーケンス131の先頭に移動し、移動リスト132に追加する。
【0089】
また、図12の状態4において、部分シーケンス131における操作「Module C : install」を対象操作とした場合、依存関係情報121には、対象操作を依存元、移動リスト132内の操作「Module C : load」を依存先とした通知依存(依存関係123d)がある。従って、操作手順生成部102は、図12の状態5のように、対象操作(Module C : install)を、部分シーケンス131の先頭に移動し、移動リスト132に追加する。
【0090】
また、図12の状態5において、部分シーケンス131における操作「Module D : install」を対象操作とした場合、依存関係情報121には、対象操作を依存元、または、依存先とした依存関係123は無い。従って、操作手順生成部102は、図12の状態5の部分シーケンス131を保持する。
【0091】
次に、操作手順生成部102は、現在の手順シーケンス122における、追加された依存関係123の依存先操作から依存元操作までのシーケンスを、更新された部分シーケンス131で置換する(ステップS332)。
【0092】
例えば、操作手順生成部102は、図12の状態5の部分シーケンス131をもとに、状態6のような手順シーケンス122を得る。
【0093】
以上により、本発明の第1の実施の形態の動作が完了する。
【0094】
なお、本発明の第1の実施の形態においては、出力部103が、更新された手順シーケンス122を出力画面200により出力しているが、操作手順生成部102、または、出力部103が、更新された手順シーケンス122を、ファイル等により出力してもよい。
【0095】
また、操作手順生成部102、または、出力部103は、更新された手順シーケンス122に、操作間の依存関係123に関する情報(依存先、依存元、依存関係123の種別等)を含めて出力してもよい。
【0096】
次に、本発明の第1の実施の形態の特徴的な構成を説明する。図1は、本発明の第1の実施の形態の特徴的な構成を示すブロック図である。
【0097】
図1を参照すると、システム構築手順生成装置100は、依存関係記憶部111、操作手順記憶部112、及び、操作手順生成部102を含む。
【0098】
ここで、依存関係記憶部111は、システムの構築に必要な、複数のプログラムモジュールのいずれかと複数の操作種別のいずれかの組で示される複数の操作の内の、1以上の対の各々の依存関係123を示す依存関係情報121を記憶する。操作手順記憶部112は、複数の操作の各々の実行順序を示す手順シーケンス122を記憶する。操作手順生成部102は、依存関係情報121が更新された場合、依存関係情報121で示される1以上の依存関係123の各々が満たされるように、手順シーケンス122を更新し、出力する。
【0099】
本発明の第1の実施の形態によれば、複数のプログラムモジュールの各々に対して複数種別の操作を実行することにより構築されるシステムの構築手順を生成できる。その理由は、依存関係記憶部111が、システムの構築に必要な、複数のプログラムモジュールのいずれかと複数の操作種別のいずれかの組で示される複数の操作の内の、1以上の対の各々の依存関係123を示す依存関係情報121を記憶し、操作手順生成部102が、依存関係情報121が更新された場合に、依存関係情報121で示される1以上の依存関係123の各々が満たされるように、複数の操作の各々の実行順序を示す手順シーケンス122を更新するためである。これにより、手順シーケンス122の生成が自動化され、手順シーケンス122の設計コストを削減、設計ミスを低減できる。
【0100】
また、本発明の第1の実施の形態によれば、依存元操作と依存先操作の実行順序が異なる複数種別(双方向)の依存関係を用いて、システムの構築手順を生成できる。その理由は、操作手順生成部102が、依存関係123の種別に応じて、依存元操作、依存先操作のどちらを先に実行するかを決定して、手順シーケンス122を更新するためである。
【0101】
また、本発明の第1の実施の形態によれば、依存関係の追加や削除による、システム構築手順への影響を容易に把握できる。その理由は、入力部101が、依存性定義画面201上で、依存関係123の追加または削除の入力を受け付けて、依存関係情報121を更新し、出力部103が、依存関係情報121と手順シーケンス122が更新された場合に、依存性定義画面201と手順画面202とを生成し、出力するためである。
【0102】
(第2の実施の形態)
次に、本発明の第2の実施の形態について説明する。
【0103】
本発明の第2の実施の形態は、並列に実行可能な複数の手順シーケンス122を生成する点において、本発明の第1の実施の形態と異なる。
【0104】
本発明の第2の実施の形態の構成は、本発明の第1の実施の形態の構成(図2)と同様となる。
【0105】
本発明の第2の実施の形態においては、操作手順記憶部112は、1以上の操作集合の各々対応に、手順シーケンス122を記憶する。ここで、操作集合とは、システムの構築に必要な複数の操作の内、依存関係123の連鎖により辿ることのできる全ての操作を要素とする集合である。異なる操作集合間には、依存関係123が無いため、異なる操作集合に含まれる操作は並列に実行可能である。
【0106】
図14、15、17、18は、本発明の第2の実施の形態における、依存関係情報121と手順シーケンス122の例を示す図である。
【0107】
図14の依存関係情報121では、システムの構築に必要な5つの操作の内の3つの対に依存関係123(123i、j、h)が設定されている。そして、「Module A : install」、「Module D : install」を要素とする操作集合aと、「Module B : install」、「Module C : install」、「Module C : load」を要素とする操作集合bの2つの操作集合が形成され、それぞれの操作集合に対して、手順シーケンス122(122a、b)が設定されている。
【0108】
操作手順生成部102は、依存関係123が追加された場合、手順シーケンス122の統合を行う。また、操作手順生成部102は、依存関係123が削除された場合、手順シーケンス122の分割を行う。
【0109】
図16、19は、本発明の第2の実施の形態における、出力画面200の例を示す図である。本発明の第2の実施の形態においては、手順画面202に、1以上の手順シーケンス122が、並列実行可能な操作のシーケンスとして示される。図16の依存性定義画面201と手順画面202は、図15の依存関係情報121と手順シーケンス122cを示している。図19の依存性定義画面201と手順画面202は、図18の依存関係情報121と手順シーケンス122a、bを示している。
【0110】
次に、本発明の第2の実施の形態におけるシステム構築手順生成装置100の動作について説明する。図13は、本発明の第2の実施の形態における、システム構築手順生成装置100の処理を示すフローチャートである。
【0111】
ここでは、図14のように、依存関係情報121、手順シーケンス122が設定されていると仮定する。
【0112】
はじめに、入力部101は、ユーザから依存関係123の追加または削除の入力を受け付ける(ステップS201)。
【0113】
例えば、入力部101は、依存元操作「Module C : load」、依存先操作「Module A : install」、依存関係種別「前提状態依存」である依存関係123kの追加を受け付ける。
【0114】
入力部101は、入力内容に従って依存関係情報121を更新する(ステップS202)。
【0115】
例えば、入力部101は、図15のように、依存関係情報121を更新(依存関係123kを追加)する。
【0116】
出力部103は、依存関係情報121の更新内容に従って、依存性定義画面201を更新する(ステップS203)。
【0117】
例えば、出力部103は、図16のように、依存性定義画面201を更新(Module C : loadからModule A : installへ前提状態依存を示す矢印を追加)する。
【0118】
次に、操作手順生成部102は、入力内容が依存関係123の追加か削除かを判定する(ステップS204)。
【0119】
ステップS204において、依存関係123の追加の場合、操作手順生成部102は、追加前の依存関係情報121において、追加された依存関係123の依存元操作と依存先操作を含む操作集合が異なるかどうか(追加された依存関係123が操作集合を跨ぐかどうか)を判定する(ステップS205)。ステップS205において、異なる場合(ステップS205/Yes)、操作手順生成部102は、追加された依存関係123の種別が、「前提状態依存または逆通知依存」、もしくは、「逆前提状態依存または通知依存」のいずれであるかを判定する(ステップS206)。
【0120】
ステップS206において、前提状態依存または逆通知依存の場合、操作手順生成部102は、追加された依存関係123の依存元操作を含む手順シーケンス122を、依存先操作を含む手順シーケンス122の後に移動することにより、手順シーケンス122を統合する(ステップS207)。
【0121】
例えば、図14の依存関係情報121において、追加された依存関係123kの依存元操作と依存先操作とは、異なる操作集合a、bに含まれる。また、追加された依存関係123kの種別は、前提状態依存である。従って、操作手順生成部102は、図15のように、手順シーケンス122bを、手順シーケンス122aの後に移動することにより、手順シーケンス122cを生成する。
【0122】
ステップS206において、逆前提状態依存または通知依存の場合、操作手順生成部102は、追加された依存関係123の依存先操作を含む手順シーケンス122を、依存元操作を含む手順シーケンス122の後に移動することにより、手順シーケンス122を統合する(ステップS208)。
【0123】
また、ステップS205において、追加された依存関係123の依存元操作と依存先操作を含む操作集合が同じ場合(ステップS205/No)、上述の手順ステップ更新処理(ステップS301〜S322)に従って、依存元操作、及び、依存先操作を含む手順シーケンス122を更新する(ステップS209)。
【0124】
最後に、出力部103は、手順シーケンス122の更新内容に従って、手順画面202を更新する(ステップS212)。
【0125】
例えば、出力部103は、図16のように、手順画面202を更新(図15の手順シーケンス122cを表示)する。
【0126】
一方、ステップS204において、依存関係123の削除の場合、操作手順生成部102は、削除後の依存関係情報121において、削除された依存関係123の依存元操作と依存先操作を含む操作集合が異なるかどうか(依存関係123の削除により操作集合が分割されるかどうか)を判断する(ステップS210)。
【0127】
ステップS210で異なる場合(ステップS210/Yes)、操作手順生成部102は、依存元操作、及び、依存先操作を含む手順シーケンス122から、分割されたそれぞれの操作集合に対応する手順シーケンス122を抽出することにより、手順シーケンス122を、依存先操作を含む手順シーケンス122と依存元操作を含む手順シーケンス122とに分割する(ステップS211)。
【0128】
例えば、図17のように、依存関係情報121、手順シーケンス122cが設定されているときに、入力部101が、依存関係123kの削除を受け付けたと仮定する。この場合、入力部101は、図18のように、依存関係情報121を更新(依存関係123kを削除)する。図18の依存関係情報121において、追加された依存関係123kの依存元操作と依存先操作とは、異なる操作集合a、bに含まれる。従って、操作手順生成部102は、手順シーケンス122cを、依存先操作を含む手順シーケンス122aと依存元操作を含む手順シーケンス122bとに分割する。そして、出力部103は、図19のように、手順画面202を更新(図18の手順シーケンス122a、bを表示)する。
【0129】
なお、操作手順生成部102は、分割した結果得られた手順シーケンス122のいずれかを、操作の数が少ない手順シーケンス122等、他の手順シーケンス122に統合してもよい。
【0130】
以上により、本発明の第2の実施の形態の動作が完了する。
【0131】
本発明の第2の実施の形態によれば、複数のシステム構築処理を並列実行可能な場合でも、システムの構築手順が生成できる。その理由は、操作手順生成部102が、依存関係123の追加、削除に伴う操作集合の統合、分割に応じて、手順シーケンス122の統合、分割を行うためである。
【0132】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0133】
この出願は、2012年3月1日に出願された日本出願特願2012−045761を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【0134】
本発明は、データセンタ等のコンピュータシステムやサービスシステムの構築、メンテナンスにおいて、システム構築手順の生成を自動化する運用ツールとして利用できる。
【符号の説明】
【0135】
100 システム構築手順生成装置
101 入力部
102 操作手順生成部
103 出力部
111 依存関係記憶部
112 操作手順記憶部
121 依存関係情報
122 手順シーケンス
123 依存関係
131 部分シーケンス
132 移動リスト
200 出力画面
201 依存性定義画面
202 手順画面
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19