(57)【特許請求の範囲】
【請求項１】
コンピュータを用いて実行する所定処理のユーザインターフェースを生成するユーザインターフェース生成システムであって、
前記所定処理は、それぞれ所定のサブ処理を実行するサブ処理ステップを複数組み合わせることで生成されており、前記各サブ処理ステップは、サブ処理内容に応じたサブ処理用ユーザインターフェースをそれぞれ有しており、
前記所定処理を構成する前記各サブ処理ステップを検出し、
検出した前記各サブ処理ステップの有する前記サブ処理用ユーザインターフェースを用いて、前記所定処理に使用する全体ユーザインターフェースを生成するものであって、
前記所定処理を構成する前記各サブ処理についての入力データおよび出力データに基づいて、前記所定処理として必要な入力データを決定し、前記必要な入力データに基づいて前記全体ユーザインターフェースを生成し、
前記所定処理を構成する前記各サブ処理についての入力データのうち、前記必要な入力データ以外の他の入力データについては、前記全体ユーザインターフェースにおいて入力不能に構成し、さらに、
前記所定処理を構成する前記各サブ処理ステップのうち一方のサブ処理ステップの出力データを、前記所定処理を構成する前記各サブ処理ステップのうち他方のサブ処理ステップの入力データとして使用できる場合、前記全体ユーザインターフェースにおいて前記他方のサブ処理ステップの前記入力データをユーザが入力できないように構成する、
ユーザインターフェース生成システム。
【請求項２】
前記所定処理を構成する前記各サブ処理ステップのうち一方のサブ処理ステップの入力データと、前記所定処理を構成する前記各サブ処理ステップのうち他方のサブ処理ステップの入力データとが同一の場合、前記一方のサブ処理ステップの入力データおよび前記他方のサブ処理の入力データとして共通に使用するためのデータを前記全体ユーザインターフェースにおいてユーザが入力できるように構成する、
請求項１に記載のユーザインターフェース生成システム。
【請求項３】
前記全体ユーザインターフェースを利用するユーザの属性に応じて、前記全体ユーザインターフェースの表示内容を変更する、
請求項１または２のいずれか一項に記載のユーザインターフェース生成システム。
【請求項４】
前記所定処理に関して予め設定された複数の段階毎に、前記全体ユーザインターフェースの表示内容を変更する、
請求項１または２のいずれか一項に記載のユーザインターフェース生成システム。
【請求項５】
前記所定処理の内容を編集する編集段階、編集した前記所定処理の実行を指示する実行段階、前記所定処理の実行結果を示す実行結果段階のそれぞれで、前記全体ユーザインターフェースの表示内容が異なる、
請求項４に記載のユーザインターフェース生成システム。
【請求項６】
コンピュータを用いて実行する所定処理のユーザインターフェースを生成するユーザインターフェース生成方法であって、
前記所定処理は、それぞれ所定のサブ処理を実行するサブ処理ステップを複数組み合わせることで生成されており、前記各サブ処理ステップは、サブ処理内容に応じたサブ処理用ユーザインターフェースをそれぞれ有しており、
前記所定処理を構成する前記各サブ処理ステップを検出し、
検出した前記各サブ処理ステップの有する前記サブ処理用ユーザインターフェースを取得し、
取得した前記各サブ処理用ユーザインターフェースを、前記所定処理に使用する全体ユーザインターフェースの生成用に予め用意されている画面に配置することで、前記全体ユーザインターフェースを生成するものであって、前記所定処理を構成する前記各サブ処理についての入力データおよび出力データに基づいて、前記所定処理として必要な入力データを決定し、前記必要な入力データに基づいて前記全体ユーザインターフェースを生成し、前記所定処理を構成する前記各サブ処理についての入力データのうち、前記必要な入力データ以外の他の入力データについては、前記全体ユーザインターフェースにおいて入力不能に構成し、前記所定処理を構成する前記各サブ処理ステップのうち一方のサブ処理ステップの出力データを、前記所定処理を構成する前記各サブ処理ステップのうち他方のサブ処理ステップの入力データとして使用できる場合、前記全体ユーザインターフェースにおいて前記他方のサブ処理ステップの前記入力データをユーザが入力できないように構成する、
ユーザインターフェース生成方法。
【請求項７】
前記所定処理を構成する前記各サブ処理ステップのうち一方のサブ処理ステップの入力データと、前記所定処理を構成する前記各サブ処理ステップのうち他方のサブ処理ステップとが同一の場合、前記一方のサブ処理ステップの入力データおよび前記他方のサブ処理の入力データとして共通に使用するためのデータを前記全体ユーザインターフェースにおいてユーザが入力できるように構成する、
請求項６に記載のユーザインターフェース生成方法。
【請求項８】
前記全体ユーザインターフェースを利用するユーザの属性に応じて、前記全体ユーザインターフェースの表示内容を変更する、
請求項６または７のいずれか一項に記載のユーザインターフェース生成方法。
【請求項９】
前記所定処理に関して予め設定された複数の段階毎に、前記全体ユーザインターフェースの表示内容を変更する、
請求項６または７のいずれか一項に記載のユーザインターフェース生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザインターフェース生成システムおよび生成方法に関する。
【背景技術】
【０００２】
近年、コンピュータシステムの運用管理の効率を高めるために、コンピュータシステムの管理運用を自動化するための製品が注目されている。その製品では、管理者の行う複数の業務からワークフローを作成し、そのワークフローをシステム化することで、管理運用を自動化する。特許文献１に記載の従来技術では、複数のソフトウェア部品を組み合わせることで、全体として一つのサービスを提供する。特許文献１に記載の従来技術では、ユーザがソフトウェア部品を容易に組み合わせることができるように、過去の履歴情報を用いて組合せの候補を提示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−３３４６２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の従来技術では、組み合わせるソフトウェア部品を変更するたびに各ソフトウェア部品への入力値も変わるため、サービス全体としてのユーザインターフェースをその都度再設計する必要がある。従って、従来技術では、サービス全体としてのユーザインターフェースを作成する手間がかかるため、作業性の点で改善の余地がある。さらに、ソフトウェア部品の組合せ方によっては、一方のソフトウェア部品についての入出力と他方のソフトウェア部品の入出力との整合を取る必要があるが、整合を取る作業はユーザが手動で行うため、人為的ミスの生じるおそれがある。従って、従来技術では、信頼性の点でも改善の余地がある。【０００５】
本発明は、上記の問題に鑑みてなされたもので、その目的は、ユーザインターフェースの生成効率を改善できるようにしたユーザインターフェース生成システムおよび生成方法を提供することにある。本発明の他の目的は、ユーザインターフェースの生成効率および信頼性を改善できるようにしたユーザインターフェース生成システムおよび生成方法を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の１つの観点に係るユーザインターフェース生成システムは、コンピュータを用いて実行する所定処理のユーザインターフェースを生成するユーザインターフェース生成システムであって、所定処理は、それぞれ所定のサブ処理を実行するサブ処理ステップを複数組み合わせることで生成されており、各サブ処理ステップは、サブ処理内容に応じたサブ処理用ユーザインターフェースをそれぞれ有しており、所定処理を構成する各サブ処理ステップを検出し、検出した各サブ処理ステップの有するサブ処理用ユーザインターフェースを用いて、所定処理に使用する全体ユーザインターフェースを生成する。【０００７】
所定処理を構成する各サブ処理についての入力データおよび出力データに基づいて、所定処理として必要な入力データを決定し、必要な入力データに基づいて全体ユーザインターフェースを生成してもよい。【０００８】
所定処理を構成する各サブ処理についての入力データのうち、必要な入力データ以外の他の入力データについては、全体ユーザインターフェースにおいて入力不能に構成してもよい。
【発明の効果】
【０００９】
本発明によれば、複数のサブ処理ステップを含む所定処理のユーザインターフェースを、各サブ処理ステップ用のユーザインターフェースを用いて生成することができ、ユーザインターフェースの生成効率を高めることができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、複数の部品から構成されるフローと、各部品のユーザインターフェースとサービスのユーザインターフェースとの関係を示す説明図。
【図２】図２は、図１に示すサービスのユーザインターフェース画面例。
【図３】図３は、管理対象のストレージシステムと、運用管理のための命令を発行するストレージ運用自動化システムとを含むシステムの全体構成図。
【図４】図４は、ホストコンピュータおよびストレージ装置のハードウェア構成を示す説明図。
【図５】図５は、ストレージ運用自動化システムを構成する管理計算機の構成を示す説明図。
【図６】図６は、ストレージ運用自動化システムを構成する情報表示用装置の構成を示す説明図。
【図７】図７は、部品テーブルの構成例。
【図８】図８は、部品情報テーブルの構成例。
【図９】図９は、サービス情報テーブルの構成例。
【図１０】図１０は、フロー情報テーブルの構成例。
【図１１】図１１は、部品間の関連を示す情報を管理するテーブルの構成例。
【図１２】図１２は、サービスの入出力情報を管理するテーブルの構成例。
【図１３】図１３は、サービス編集画面の全体動作を示すシーケンス。
【図１４】図１４は、自動化運用フローを編集する処理を示すフローチャート。
【図１５】図１５は、サービス情報を保持する処理を示すフローチャート。
【図１６】図１６は、サービス編集画面を表示する処理を示すフローチャート。
【図１７】図１７は、部品をインストールするときの処理を示すフローチャート。
【図１８】図１８は、第２実施例に係り、各部品のユーザインターフェースとサービスのユーザインターフェースとの関係を示す説明図。
【図１９】図１９は、サービスのユーザインターフェース画面例。
【図２０】図２０は、第３実施例に係り、各部品のユーザインターフェースとサービスのユーザインターフェースとの関係を示す説明図。
【図２１】図２１は、サービスのユーザインターフェース画面例。
【図２２】図２２は、第４実施例に係り、サービスを編集する画面例。
【図２３】図２３は、サービスの実行を指示する画面例。
【図２４】図２４は、サービスの実行結果を示す画面例。
【発明を実施するための形態】
【００１１】
本実施形態を、図面を参照して説明する。なお、以下に説明する実施例は請求の範囲にかかる発明を限定するものではなく、また実施例の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１２】
なお、以下の説明では、「ａａａテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていても良い。データ構造に依存しないことを示すために「ａａａテーブル」を「ａａａ情報」と呼ぶことができる。
【００１３】
また、以下の説明では、単に管理計算機及びホスト計算機を主語として処理を説明する場合があるが、これら処理は、計算機が備える制御デバイスが有するマイクロプロセッサ（例えば、ＣＰＵ（Ｃｅｎｔｒａｌ
Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ））によって、実行されていることを示す。
【００１４】
本実施形態では、後述のように、各ソフトウェア部品１０１にそれぞれ部品用ユーザインターフェース１０３を予め設定している。システム運用管理者などのユーザは、所望のソフトウェア部品１０１を選択して組み合わせることで、サービス１００のフローを定義する。本実施形態では、サービス１００のフローを構成する各部品の部品用ユーザインターフェース１０３をマージすることで、サービス１００のユーザインターフェースを自動的に生成する。
【実施例１】
【００１５】
図１は、第１実施例に係るサービス１００のユーザインターフェースと各部品１０１のユーザインターフェース１０３との関係を示す説明図である。本実施例では、コンピュータシステムとして、ホストコンピュータ３およびストレージ装置４などを含むストレージシステムを例に挙げて説明する。本実施例では、ストレージシステムの運用を管理するためのサービスに適用する場合を説明する。先に、サービス１００の構成とサービス１００を利用するための画面構成について説明し、次に、ストレージシステムの構成などを説明する。【００１６】
サービス１００は、上述のように、ホストコンピュータ３およびストレージ装置４を含むストレージシステムの運用を管理するためのものである。サービス１００は、一つのフローから構成される。一つのフローは、複数の（例えば２つの）ソフトウェア部品１０１（１）、１０１（２）を組み合わせることで構成される。【００１７】
図１に示すサービス１００は、複数のステップを実行する。第１のステップは、第１のソフトウェア部品１０１（１）により実行される。第２のステップは、第２のソフトウェア部品１０１（２）により実行される。特に区別する必要がない場合、ソフトウェア部品１０１と呼ぶ。【００１８】
各ソフトウェア部品１０１は「サブ処理」の一例である。各ステップを「サブ処理」の一例であると考えることもできる。各ソフトウェア部品１０１は、ストレージ運用自動化システム１（図３で後述）に予め設けられるが、これに限らず、後からシステム１に追加することもできる。【００１９】
各ソフトウェア部品１０１は、ストレージの構成変更に関する機能を提供する。ストレージの構成変更に関する機能としては、例えば、シンプロビジョニングボリューム（正ボリューム、またはコピー元ボリュームと呼ぶこともできる）の生成、ペアボリューム（副ボリューム、またはコピー先ボリュームと呼ぶこともできる）の生成、データベースストアの作成、データベース用ボリュームの生成などがある。これらに限らず、ソフトウェア部品同士を組み合わせるために使用するソフトウェア部品、汎用的に使用可能なソフトウェア部品などもある。このようなソフトウェア部品としては、繰り返し実行するためのソフトウェア部品、ファイル転送部品、ファイル実行部品などがある。【００２０】
各部品１０１（１）、１０１（２）は、入力プロパティと出力プロパティを有する。ユーザは、例えばＧＵＩ（Graphical User Interface）、ＣＬＩ（Common Language Infrastructure）、ＡＰＩ（Application Programming Interface）などを介して、ソフトウェア部品に情報（データ）を入力する。ソフトウェア部品からの出力値は、ソフトウェア部品を実行した後におけるストレージの構成情報などである。【００２１】
入力プロパティおよび出力プロパティは、予め設定された複数のプロパティグループのうちいずれか所定のプロパティグループに属する。【００２２】
第１のソフトウェア部品１０１（１）は、第１の入力プロパティグループ１０２（１Ａｉ）に属する入力プロパティ「ボリューム数」および「ボリュームサイズ」と、第２の入力プロパティグループ１０２（１Ｂｉ）に属する入力プロパティ「ホスト名」および「パス数」とを有する。各プロパティグループ１０２（１Ａｉ）、１０２（１Ｂｉ）には、「サブ処理用ユーザインターフェース」の一例であるユーザインターフェース１０３（１Ａ）、１０３（１Ｂ）が予め対応づけられている。【００２３】
第１のソフトウェア部品１０１（１）は、第１の出力プロパティグループ１０２（１Ａｏ）に属する出力プロパティ「ボリューム識別子」と、第２の出力プロパティグループ（１Ｂｏ）に属する出力プロパティ「パス情報」とを有する。【００２４】
第２のソフトウェア部品１０１（２）も第１のソフトウェア部品１０１（１）と同様に、第１の入力プロパティグループ１０２（２Ａｉ）に属する入力プロパティ「ボリューム識別子」および「ホスト名」と、第２の入力プロパティグループ１０２（２Ｂｉ）に属する入力プロパティ「パス情報」および「パス世代数」とを有する。各プロパティグループ１０２（２Ａｉ）、１０２（２Ｂｉ）には、「サブ処理用ユーザインターフェース」の一例であるユーザインターフェース１０３（２Ａ）、１０３（２Ｂ）が予め対応づけられている。第２のソフトウェア部品１０１（２）は、出力プロパティグループ１０２（２Ａｏ）に属する「パス情報」を出力する。【００２５】
本明細書では、プロパティグループ１０２のうち、入力に関するプロパティグループには符号１０２に続けて（ｉ）を添える。出力に関するプロパティグループには符号１０２に続けて（ｏ）を添える。ソフトウェア部品１０１が入力プロパティグループ１０２（ｉ）を有する場合、一方の入力プロパティグループ１０２に符号Ａを加え、他方の入力プロパティグループ１０２に符号Ｂを加える。従って、第１のソフトウェア部品１０１（１）の有する一方の入力プロパティグループには符号１０２（１Ａｉ）が、他方の入力プロパティグループには符号１０２（１Ｂｉ）が与えられる。同様に、第２のソフトウェア部品１０１（２）の有する一方の入力プロパティグループには符号１０２（２Ａｉ）が、他方の入力プロパティグループには符号１０２（２Ｂｉ）が与えられる。【００２６】
第１のステップでは、ストレージ装置４内にシンプロビジョニングボリュームを作成し、シンプロビジョニングボリュームとホストコンピュータとを接続するためのパスをそのシンプロビジョニングボリュームに設定する。第２のステップでは、シンプロビジョニングボリュームとコピーペアを形成するペアボリュームを作成し、シンプロビジョニングボリュームからペアボリュームにデータをコピーする。図１に示すサービス１００では、正ボリュームであるシンプロビジョニングボリュームと副ボリュームであるペアボリュームとは、それぞれ異なるホストコンピュータにより使用される。【００２７】
第１のステップを実行する第１のソフトウェア部品１０１（１）に着目する。本実施例において第１のソフトウェア部品１０１（１）は、シンプロビジョニングボリュームを生成するためのものであり、所定のデータが入力されると、所定のデータを出力する。入力データとしては、例えば「ボリューム数」、「ボリュームサイズ」、「ホスト名」、「パス数」、がある。第１のソフトウェア部品１０１（１）は、それら所定データが入力されると、所定データとしての「ボリューム識別子」および「パス情報」を出力する。【００２８】
第２のソフトウェア部品１０１（２）に着目する。本実施例において第２のソフトウェア部品１０１（２）は、第１のソフトウェア部品１０１（１）で生成したシンプロビジョニングボリュームとコピーペアを形成するためのペアボリューム（副ボリューム、コピー先ボリュームと呼ぶこともできる）を生成する。第２のソフトウェア部品１０１（２）に、例えば「ボリューム識別子」、「ホスト名」、「パス情報」、「パス世代数」が入力されると、ペアボリュームが形成される。第２のソフトウェア部品１０１（２）は、「パス情報」を出力する。【００２９】
第１のソフトウェア部品１０１（１）が出力するデータの一部は、第２のソフトウェア部品１０１（２）の入力データとして使用することができる。本実施例では、第１のソフトウェア部品１０１（１）の出力する「ボリューム識別子」および「パス情報」を、第２のソフトウェア部品１０１（２）の入力データとしてそのまま使用する。従って、図１で黒く塗りつぶしたように、第２のソフトウェア部品１０１（２）への入力データのうち、「ボリューム識別子」および「パス情報」は、ユーザが入力する必要はない。上述のように、第１のソフトウェア部品１０１（１）の出力値を使用するためである。従って、ユーザが誤った値を入力するのを未然に防止することができる。【００３０】
図２は、サービス１００をユーザに提供するための画面Ｇ１０の一例である。ユーザは、サービス提供画面Ｇ１０に対して値を入力することで、サービス１００を利用することができる。【００３１】
サービス提供画面Ｇ１０は、例えば、サービス概要説明部ＧＰ１１と、ボリューム設定部ＧＰ１２と、正ボリューム側のホスト設定部ＧＰ１３と、副ボリューム側のホスト設定部ＧＰ１４と、パス世代数設定部ＧＰ１５と、実行種別指定部ＧＰ１６およびボタンＧＰ１７を備える。【００３２】
サービス概要説明部ＧＰ１１は、サービス説明部ＧＰ１１Ａと、フロー概要図ＧＰ１１Ｂを含む総称である。サービス説明部ＧＰ１１Ａは、サービス１００の内容を文字で説明する表示領域である。フロー概要図ＧＰ１１Ｂは、サービス１００を構成するフローの概略構成を図示する表示領域である。フロー概要図ＧＰ１１Ｂは、例えば、図１に示すサービス１００の構成を表示する。【００３３】
各設定部ＧＰ１２〜ＧＰ１５は、各ソフトウェア部品１０１の有する入力プロパティグループ１０２（ｉ）のユーザインターフェース１０３に対応している。ボリューム設定部ＧＰ１２は、第１のソフトウェア部品１０１（１）の入力プロパティグループ１０２（１Ａｉ）が有するユーザインターフェース１０３（１Ａ）に対応する。ユーザは、ボリューム設定部ＧＰ１２に対し、シンプロビジョニングボリュームの作成数と、ボリュームサイズとを入力する。【００３４】
正ボリューム側のホスト設定部ＧＰ１３は、第１のソフトウェア部品１０１（１）の入力プロパティグループ１０２（１Ｂｉ）の有するユーザインターフェース１０３（１Ｂ）に対応する。ユーザは、正ボリューム側のホスト設定部ＧＰ１３に対し、シンプロビジョニングボリュームを使用するホストを特定するためのホスト名と、シンプロビジョニングボリュームに接続するパス数とを入力する。【００３５】
副ボリューム側のホスト設定部ＧＰ１４は、第２のソフトウェア部品１０１（２）の入力プロパティグループ１０２（２Ａｉ）の有するユーザインターフェース１０３（２Ａ）に対応する。ユーザは、副ボリューム側のホスト設定部ＧＰ１４に対し、ペアボリュームを使用するホストを特定するためのホスト名を入力する。【００３６】
パス世代数設定部ＧＰ１５は、第２のソフトウェア部品１０１（２）の入力プロパティグループ１０２（２Ｂｉ）の持つユーザインターフェース１０３（２Ｂ）に対応する。ユーザは、パス世代数設定部ＧＰ１５に対し、世代数のみ入力できる。パス情報は、その存在だけ画面に表示されており、ユーザは値を入力できない。上述の通り、ペアボリュームの生成時に使用するパス情報は、第１のソフトウェア部品１０１（１）の出力値を使用するためである。【００３７】
実行種別指定部ＧＰ１６は、サービス１００の実行タイミングを指定する。実行タイミングとしては、例えば、「即時実行」、「スケジュール実行」などがある。スケジュール実行とは、スケジュールに応じてサービス１００を実行することを意味する。スケジュール実行では、例えば、実行日時を指定したり、実行周期（毎日昼の１２時、毎日夜の１２時など）を指定したりすることができる。【００３８】
ボタンＧＰ１７は、例えば、実行ボタンＧＰ１７Ａと取消ボタンＧＰ１７Ｂとの総称である。実行ボタンＧＰ１７Ａは、サービス１００の実行をストレージ管理システム２（図３で後述）へ指示するためのボタンである。取消ボタンＧＰ１７Ｂは、画面Ｇ１０への入力を取り消すためのボタンである。【００３９】
図３は、ストレージ運用自動化システム１、ストレージ管理システム２および管理対象のストレージシステムを含むシステム全体の構成説明図である。【００４０】
管理対象のストレージシステムは、例えば、一つ以上のホストコンピュータ（以下、ホスト）３と、一つ以上のストレージ装置４と、一つ以上のスイッチ装置５を備えており、それら各装置３、４、５は通信ネットワーク６により接続されている。ストレージ装置４は、ホスト３に論理ボリュームを提供する。【００４１】
ストレージ管理システム２は、ホスト３、ストレージ装置４およびスイッチ装置５を含むストレージシステムの構成を管理する。ストレージ管理システム２は、例えば、管理計算機２１と、監視情報表示用装置２２とを備える。【００４２】
管理計算機２１は、ストレージシステムの構成を変更するための指示を発行する計算機である。管理計算機２１は、ストレージ運用自動化システム２からの命令に応じて、ストレージ装置４などに所定の指示を与える。その指示に応じて、ストレージ装置４はストレージ構成を変更する。【００４３】
監視情報表示用装置２２は、管理計算機２１に接続されており、管理計算機２１の管理するストレージシステムに関する情報を表示する装置である。監視情報表示用装置２２は、例えば、ストレージ装置４の各種性能情報、構成情報などを表示する。監視情報表示用装置２２と管理計算機２１とを一つの計算機として構成してもよい。【００４４】
ストレージ運用自動化システム１（以下、運用自動化システム１）は、ストレージシステムの運用管理の自動化を支援するシステムである。運用自動化システム１は、例えば、管理計算機１１と、情報表示用装置１２とを備える。【００４５】
管理計算機１１は、サービス１００を構成するフローを編集して保存し、保存したフローの実行（すなわちサービス１００の実行）をストレージ管理システム２に指示するための計算機である。管理計算機１１は、例えば、運用自動化フロー編集プログラムＰ１１１と、サービス情報保持プログラムＰ１１２と、構成変更命令送信プログラムＰ１１３とを実行できるように構成されている。【００４６】
情報表示用装置１２は、管理計算機１１で実行する各プログラムＰ１１１、Ｐ１１２、Ｐ１１３に関する画面などをユーザに提供する。情報表示用装置１２は、例えば、運用自動化フロー編集画面表示プログラムＰ１２１と、サービス編集画面表示プログラムＰ１２２と、サービス実行画面表示プログラムＰ１２３と、後述する他のプログラムＰ１２４〜Ｐ１２７（図６で後述）を実行できるように構成されている。なお、情報表示用装置１２と管理計算機１１とを一体化する構成でもよい。【００４７】
各コンピュータプログラムによる処理の流れは後述するが、先に各コンピュータプログラムの機能を説明する。以下、コンピュータプログラムの名称を簡略化して表示する場合がある。例えば、運用自動化フロー編集プログラムＰ１１１は「自動化フロー編集」と、サービス情報保持プログラムＰ１１２は「サービス保持」と、構成変更命令送信プログラムＰ１１３は「命令送信」と、表示する。運用自動化フロー編集画面表示プログラムＰ１２１は「フロー表示」と、サービス編集画面表示プログラムＰ１２２は「サービス表示」と、サービス実行画面表示プログラムＰ１２３は「実行画面表示」と、表示する。運用自動化フローを、「フロー」と略記する場合もある。【００４８】
自動化フロー編集プログラムＰ１１１は、ストレージシステムの運用管理を自動的に行うためのフロー（つまりサービス１００の内容）を作成したり、編集したりする機能を有する。フロー表示プログラムＰ１２１は、自動化フロー編集プログラムＰ１１１から新規作成または作成済みのフローに関する情報を取得し、情報表示用装置１２の有するディスプレイ装置に表示する機能を有する。フローの編集権限を有するユーザ（ストレージ管理者など）は、情報表示用装置１２の有する入力装置を用いてフローを編集する。【００４９】
サービス保持プログラムＰ１１２は、自動化フロー編集プログラムＰ１１１から、フローに関する情報（つまり、サービスの内容に関する情報）を取得し、メモリなどの所定の記憶領域に保持する機能を有する。サービス表示プログラムＰ１２２は、サービス保持プログラムＰ１１２から受領した情報（サービスの内容であるフローの情報）に基づいて、各ソフトウェア部品１０１に入力するデータをプロパティグループごとに分類し、そのデータの入力が必要であるかを判定する機能を有する。【００５０】
すなわち、サービス表示プログラムＰ１２２は、フローに関する情報に基づいてサービス提供画面Ｇ１０に表示すべき入力項目を選択し、サービス提供画面Ｇ１０の構成を決定する。具体的には、サービス表示プログラムＰ１２２は、画面Ｇ１０に表示するプロパティグループを決定し、さらにプロパティグループの入力プロパティ（入力項目）のうち入力可能な状態に設定する入力プロパティを決定する。【００５１】
実行画面表示プログラムＰ１２３は、サービス保持プログラムＰ１１２からフローに関する情報を取得し、サービス１００の実行をストレージ管理システム２に指示するための実行画面を表示する機能を有する。【００５２】
命令送信プログラムＰ１１３は、ストレージ管理システム２に対してサービスの実行を指示するための命令を発行する機能を有する。命令送信プログラムＰ１１３は、サービス保持プログラムＰ１１２からフローの情報を取得して、そのフローに従ってストレージ管理システム２が動作するための命令を作成し、その命令をストレージ管理システム２に送信する。【００５３】
図４は、ホスト３の構成例を示す。ホスト３は、例えば、マイクロプロセッサ３１、メモリ３２、通信ポート３３を備えており、それらはバス等で相互に接続されている。メモリ３２は、半導体メモリに限定しない。メモリはハードディスクドライブのような記憶装置であってもよい。メモリ３２は、例えば、アプリケーションプログラムＰ３１、オペレーティングシステムＰ３２、装置管理プログラムＰ３３などを記憶する。これらコンピュータプログラムＰ３１、Ｐ３２、Ｐ３３は、マイクロプロセッサ３１により実行されて所定の機能を実現する。【００５４】
アプリケーションプログラムＰ３１は、例えば、顧客管理プログラム、画像配信プログラムなどのように、ストレージ装置４の論理ボリューム４８に格納したデータを用いて、所定の処理を実行する。装置管理プログラムＰ３３は、ストレージ装置４を利用するための制御プログラムである。通信ポート３３は、通信ネットワーク６を介してストレージ装置４と通信するための装置である。【００５５】
ストレージ装置４は、複数の記憶装置４５と、前記各記憶装置４５の動作を制御するコントローラ４６を備える。コントローラ４６は、マイクロプロセッサ４１、メモリ４２、Ｉ／Ｏ（Input/Output）ポート４３、管理ポート４４を備える。【００５６】
メモリ４２は、装置管理プログラムＰ４１を備える。装置管理プログラムＰ４１は、ストレージ装置４の動作を制御する制御プログラムである。Ｉ／Ｏポート４３は、通信ネットワーク６を介してホスト３の通信ポート３３に接続されており、ホスト３からのコマンドなどを受信したり、ホスト３へデータを送信したりする。管理ポート４４は、通信ネットワーク６を介してストレージ管理システム２に接続されている。【００５７】
記憶装置４５は、例えば、ハードディスクドライブ、フラッシュメモリデバイスなどのデータを読み書き可能な装置である。複数の記憶装置４５の有する記憶領域をパリティグループ４７としてグループ化し、このグループ化された記憶領域から所定サイズの論理的記憶領域４８を形成できる。論理的記憶領域４８は、論理ボリュームと呼ばれる。論理ボリューム４８には、ホスト３がアクセスするための通信パスが設定される。これにより、ホスト３は、Ｉ／Ｏポート４３を介して所望の論理ボリューム４８にアクセスし、データを読み書きすることができる。【００５８】
図５は、ストレージ運用自動化システム１の管理計算機１１の構成例を示す。管理計算機１１は、例えば、マイクロプロセッサ１１１、メモリ１１２、入出力デバイス１１３、通信ポート１１４を備える。【００５９】
メモリ１１２は、半導体メモリに限らずハードディスクドライブでもよい。メモリ１１２は、コンピュータプログラムと管理テーブルを格納する。メモリ１１２に格納されるコンピュータプログラムには、オペレーティングシステムＰ１０と管理プログラムＰ１１がある。管理プログラムＰ１１は、上述した自動化フロー編集プログラムＰ１１１、サービス保持プログラムＰ１１２、命令送信プログラムＰ１１３を含む。【００６０】
メモリ１１２に格納される管理テーブルは、例えば、部品テーブルＴ１１１、部品情報テーブルＴ１１２、サービス情報テーブルＴ１１３、フロー情報テーブルＴ１１４、部品間関連情報テーブルＴ１１５、サービス入出力情報テーブルＴ１１６を含む。各テーブルの詳細は後述する。【００６１】
入出力デバイス１１３は、管理計算機１１に情報を入力したり、管理計算機１１から情報を出力したりするための装置である。通信ポート１１４は、通信ネットワーク６を介して各ホスト３および各ストレージ装置４に接続されている。スイッチ装置５を管理対象とする場合、管理計算機１１は各スイッチ装置５にも接続される。【００６２】
図６は、ストレージ運用自動化システム１の情報表示用装置１２の構成例を示す。情報表示用装置１２は、例えば、マイクロプロセッサ１２１、メモリ１２２、入出力デバイス１２３、通信ポート１２４を備える。【００６３】
メモリ１２２は、半導体メモリに限らずハードディスクドライブでもよい。メモリ１２２は、表示プログラムＰ１２を格納する。表示プログラムＰ１２は、上述したフロー表示プログラムＰ１２１、サービス表示プログラムＰ１２２、実行画面表示プログラムＰ１２３のほかに、実行結果表示プログラムＰ１２４、プロパティグループ編集画面表示プログラムＰ１２５、プロパティグループ実行画面表示プログラムＰ１２６、プロパティグループ実行結果画面表示プログラムＰ１２７を含む。【００６４】
実行結果表示プログラムＰ１２４は、サービス１００の実行結果を表示するプログラムである。プロパティグループ編集画面表示プログラムＰ１２５は、サービス提供画面などに表示するプロパティグループの構成を編集するプログラムである。プロパティグループ実行画面表示プログラムＰ１２６は、サービス１００の実行画面において、プロパティグループ毎の実行時の状況を表示するプログラムである。プロパティグループ実行結果画面表示プログラムＰ１２７は、サービス１００の実行結果を表示する画面において、プロパティグループ毎の実行結果を表示するプログラムである。【００６５】
図７〜図１２を参照して運用自動化システム１の管理計算機１１の有する管理テーブルＴ１１１〜Ｔ１１６の構成例を説明する。なお、以下に示す各テーブルの構成は例示であり、複数のテーブルを一つのテーブルにまとめたり、一つのテーブルを複数のテーブルに分割したりしてもよい。さらに、各テーブルの【００６６】
図７は、ソフトウェア部品１０１を管理するための部品テーブルＴ１１１を示す。部品テーブルＴ１１１は、例えば、管理番号Ｃ１１１１と、部品名Ｃ１１１２と、部品識別子Ｃ１１１３を対応づけて管理する。部品名Ｃ１１１２は、ソフトウェア部品１０１の名称である。部品識別子Ｃ１１１３は、ソフトウェア部品１０１を図１に示すシステム内で一意に識別するための情報である。【００６７】
図８は、ソフトウェア部品１０１の詳細な情報を管理するための部品情報テーブルＴ１１２を示す。部品情報テーブルＴ１１２は、例えば、管理番号Ｃ１１２１と、部品識別子Ｃ１１２２と、入力名Ｃ１１２３と、キー名Ｃ１１２４と、値Ｃ１１２５と、入出力タイプＣ１１２６と、プロパティグループＣ１１２７とビジビリティ情報Ｃ１１２８を対応づけて管理する。【００６８】
入力名Ｃ１１２３は、部品識別子Ｃ１１２２で特定されるソフトウェア部品１０１へ入力するデータの名称である。ソフトウェア部品１０１から出力するデータの名称も入力名Ｃ１１２３で管理している。キー名Ｃ１１２４は、レコードを一意に特定するための情報である。キー名は、例えば、ソフトウェア部品の名称に入力名を加えることで生成されている。【００６９】
値Ｃ１１２５は、入力名Ｃ１１２３で特定される入力データとして予め設定されている初期値である。
入出力タイプＣ１１２６は、入力名Ｃ１１２３で特定されるデータが入力値であるか出力値であるかを区別するための情報である。【００７０】
入出力タイプＣ１１２６には、入力値（入力プロパティ）の場合に「Ｉｎ」が格納され、出力値（出力プロパティ）の場合に「Ｏｕｔ」が格納され、入力および出力の両方に使用され得る場合は「Ｉｎ／Ｏｕｔ」が格納される。【００７１】
プロパティグループＣ１１２７は、ソフトウェア部品１０１の入力プロパティおよび出力プロパティの属するプロパティグループ名を示す情報である。プロパティグループ名は、例えば、部品識別子の値とプロパティグループの種類を示す情報（Ｈｏｓｔ、Ｉｎｆｏなど）とを加えることで作成されている。ビジビリティ情報Ｃ１１２８は、サービス提供画面Ｇ１０での表示を制御するための情報である。【００７２】
図９は、サービス１００についての情報を管理するためのサービス情報テーブルＴ１１３を示す。サービス情報テーブルＴ１１３は、例えば、管理番号Ｃ１１３１と、サービス名Ｃ１１３２と、サービス識別子Ｃ１１３３と、サービス詳細Ｃ１１３４と、フロー番号Ｃ１１３５とを対応づけて管理する。【００７３】
サービス名Ｃ１１３２は、サービス１００の名称である。サービス名は、そのサービスを作成したユーザが任意に設定することができる。サービス識別子Ｃ１１３３は、サービス１００を一意に識別する情報である。サービス詳細Ｃ１１３４は、サービス識別子Ｃ１１３３で特定されるサービス１００の提供する内容を示す情報である。フロー番号Ｃ１１３５は、サービス識別子Ｃ１１３３で特定されるサービス１００のフローを特定するための情報である。【００７４】
図１０は、サービス１００を実現するための運用自動化フローについての情報を管理するテーブルＴ１１４を示す。フロー情報テーブルＴ１１４は、例えば、管理番号Ｃ１１４１と、フロー番号Ｃ１１４２と、構成部品識別子リストＣ１１４３と、構成部品プロパティグループリストＣ１１４４とを対応づけて管理する。【００７５】
フロー番号Ｃ１１４２は、フローを識別する番号である。構成部品識別子リストＣ１１４３は、フロー番号Ｃ１１４２で特定されるフローを構成するソフトウェア部品１０１の識別子のリストである。構成部品プロパティグループリストＣ１１４４は、そのフローを構成するソフトウェア部品１０１の有するプロパティグループ名のリストである。【００７６】
図１１は、ソフトウェア部品間の関連を示す情報を管理する部品間関連情報テーブルＴ１１５である。部品間関連情報テーブルＴ１１５は、例えば、管理番号Ｃ１１５１と、サービス識別子Ｃ１１５２と、部品間関連リストＣ１１５３とを対応づけて管理する。部品間関連リストＣ１１５３は、フローを構成する複数のソフトウェア部品同士がどのように関連しているかを示す情報である。部品間関連リストＣ１１５３には、例えば、第１のソフトウェア部品１０１（１）の出力値のうちどの出力値が、第２のソフトウェア部品１０１（２）の入力値として使用されるかなどを規定する。なお、図１１に示す内容は、図１に示す内容と対応していない。【００７７】
図１２は、サービス１００への入出力情報を管理するためのサービス入出力情報テーブルＴ１１６を示す。サービス入出力情報テーブルＴ１１６は、例えば、管理番号Ｃ１１６１と、サービス識別子Ｃ１１６２と、部品識別子Ｃ１１６３と、入力名Ｃ１１６４と、キー名Ｃ１１６５と、値Ｃ１１６６と、入出力タイプＣ１１６７と、リードオンリーフラグＣ１１６８と、プロパティグループＣ１１６９と、ビジビリティ情報Ｃ１１７０を対応づけて管理する。【００７８】
サービス識別子Ｃ１１６２には、複数のソフトウェア部品の識別子Ｃ１１６３が対応づけられている。各ソフトウェア部品には、部品情報テーブルＴ１１２で説明したように、入力名Ｃ１１６４、キー名Ｃ１１６５、値Ｃ１１６６、入出力タイプＣ１１６７、プロパティグループ名Ｃ１１６９が対応づけられている。それらの項目Ｃ１１６４〜Ｃ１１６７、Ｃ１１６９、Ｃ１１７０は、図８に示す部品情報テーブルＴ１１２で述べたＣ１１２３〜Ｃ１１２６、Ｃ１１２７、Ｃ１１２８と同様であるため、説明を省略する。【００７９】
リードオンリーフラグＣ１１６８は、入力可能な情報であるか否かを区別するための情報である。キー名Ｃ１１６５で特定される入力プロパティのリードオンリーフラグＣ１１６８に「ｆａｌｓｅ」が設定されている場合、その入力プロパティはリードオンリー状態ではなく、ユーザが入力可能であることを示す。これに対し、リードオンリーフラグＣ１１６８に「ｔｒｕｅ」が設定されている入力プロパティはリードオンリー状態であり、ユーザが入力できないことを示す。すなわち、リードオンリー状態の入力プロパティには、他のソフトウェア部品の出力値が自動的に入力されるため、ユーザが手動で入力することができない。【００８０】
図１３〜図１７を用いて、システムの運用を自動化するためのサービス１００を作成して実行する処理などを説明する。【００８１】
図１３は、サービス編集画面を表示する全体動作を示すシーケンスである。まず最初にユーザは、運用自動化フローを編集するための画面を用いて、運用自動化フローを編集する（Ｓ１０）。【００８２】
フローが作成されると、自動化フロー編集プログラムＰ１１１は、ユーザの編集したフローの情報と、サービス名などのサービス基本情報とを関連付ける（Ｓ１１）。自動化運用フロー編集プログラムＰ１１１は、ステップＳ１１で関連付けた情報をサービス保持プログラムＰ１１２へ送信する（Ｓ１２）。ステップＳ１１の詳細については、図１４で後述する。【００８３】
サービスについての情報を保持するサービス保持プログラムＰ１１２は、受信した情報から、サービスへ入力するデータ（入力プロパティ）とサービスから出力するデータ（出力プロパティ）とを決定し、保存する（Ｓ１３）。ステップＳ１３の詳細については、図１５で後述する。【００８４】
ユーザがサービス編集画面の使用を希望する操作を行うと、サービス編集画面を表示するためのサービス表示プログラムＰ１２２は、サービス保持プログラムＰ１１２に対し、表示対象のサービス名を送信する（Ｓ１４）。【００８５】
サービス名を受信したサービス保持プログラムＰ１１２は、そのサービス名に対応するサービスについての情報と、そのサービスを実現するために作成されたフローについての情報とを、サービス表示プログラムＰ１２２へ送信する（Ｓ１５）。【００８６】
サービス表示プログラムＰ１２２は、サービス保持プログラムＰ１１２から受信した情報をプロパティグループ毎に分類し、プロパティ毎に入力が必要であるか否かを判定する（Ｓ１６）。ユーザによる入力が必要であるか否かは、サービス入出力情報テーブルＴ１１６のリードオンリーフラグＣ１１６８の値から判断することができる。ステップＳ１６の詳細は、図１６で後述する。【００８７】
サービス表示プログラムＰ１２２は、入力を必要とするプロパティを含むプロパティグループに対応するプロパティグループ編集画面表示プログラムＰ１２５に対して、そのプロパティグループのプロパティについての情報を送信する（Ｓ１７、Ｓ１８）。【００８８】
プロパティグループの編集画面を表示するためのプログラムＰ１２５は、それぞれのユーザインターフェース（プロパティグループのユーザインターフェース）において、そのプロパティグループに含まれるプロパティを表示する（Ｓ１９、Ｓ２０）。【００８９】
図１４は、自動化フロー編集プログラムＰ１１１が実行するステップＳ１１の詳細を示すフローチャートである。【００９０】
自動化フロー編集プログラムＰ１１１は、まず最初に、ユーザの編集したフローに含まれる全てのソフトウェア部品１０１を処理したか判定する（Ｓ１１１）。全てのソフトウェア部品１０１を処理済みである場合（Ｓ１１１：ＹＥＳ）、本処理を終了する。本処理の対象としているフローを対象フローと呼ぶことがある。処理対象のソフトウェア部品を対象ソフトウェア部品と呼ぶことがある。図中では、対象フローを構成するソフトウェア部品を「構成部品」と表示している。【００９１】
未処理のソフトウェア部品１０１が有る場合（Ｓ１１１：ＮＯ）、自動化運用フロー編集プログラムＰ１１１は、フロー情報テーブルＴ１１４に、ソフトウェア部品の識別子（ｕｋ）とフローのステップ名であるｎａｍｅｓｐａｃｅ（本実施例では例えば、「１」、「２」など）を保存する。【００９２】
フロー情報テーブルＴ１１４の構成部品プロパティグループリストＣ１１４４に、ｎａｍｅｓｐａｃｅとプロパティグループ名とを対応づけて保存するのは、各プロパティを一意に特定するためである。フローに同一のまたは同種のソフトウェア部品が複数含まれた場合、キー名が重複する可能性があるが、ｎａｍｅｓｐａｃｅとプロパティグループ名とを対応づけておくことで、各プロパティグループの各プロパティを一意に特定することができる。【００９３】
自動化運用フロー編集プログラムＰ１１１は、サービス情報テーブルＴ１１３に、サービス基本情報とフロー番号を記憶する（Ｓ１１３）。サービス基本情報には、サービス名Ｃ１１３２、サービス識別子Ｃ１１３３、サービス詳細Ｃ１１３４がある。フロー番号とは、対象フローに設定された番号であり、サービス情報テーブルＴ１１３のフロー番号Ｃ１１３５に記憶される。【００９４】
自動化運用フロー編集プログラムＰ１１１は、対象ソフトウェア部品に関する部品間関連情報を全て処理したか判定する（Ｓ１１４）。未処理の部品間関連情報が有る場合（Ｓ１１４：ＮＯ）、自動化運用フロー編集プログラムＰ１１１は、部品間関連情報テーブルＴ１１５に、サービスを識別するためのサービス識別子Ｃ１１５２と、部品間関連情報とを記憶する（Ｓ１１５、Ｓ１１６）。【００９５】
部品間関連情報は、関連元のソフトウェア部品のキー名と関連先のソフトウェア部品のキー名とを対応づけることで生成され、部品間関連情報テーブルＴ１１５の部品間関連リストＣ１１５３に保存される。【００９６】
関連元のソフトウェア部品のキー名の先頭には、当該ソフトウェア部品のステップ番号であるｎａｍｅｓｐａｃｅが付加される（Ｓ１１５）。同様に、関連先のソフトウェア部品のキー名の先頭にも、当該ソフトウェア部品のｎａｍｅｓｐａｃｅが付加される（Ｓ１１５）。自動化運用フロー編集プログラムＰ１１１は、このようにして生成した部品間関連情報を部品間関連情報テーブルＴ１１５に記憶する（Ｓ１１６）。【００９７】
自動化運用フロー編集プログラムＰ１１１は、対象ソフトウェア部品についての全ての部品間関連情報を処理するまで、ステップＳ１１４〜Ｓ１１６を繰り返し実行する（Ｓ１１７）。対象ソフトウェア部品についての処理を完了すると（Ｓ１１４：ＹＥＳ）、自動化運用フロー編集プログラムＰ１１１は、対象フローに含まれている次のソフトウェア部品を処理対象とし（Ｓ１１８）、ステップＳ１１１に戻る。【００９８】
図１５は、サービス保持プログラムＰ１１２が実行するサービス情報を保持する処理（Ｓ１３）の詳細を示すフローチャートである。【００９９】
サービス保持プログラムＰ１１２は、自動化運用フロー編集プログラムＰ１１１から受信した情報に含まれているサービス名に基づいてサービス情報テーブルＴ１１３を検索し、サービス名に対応するフロー番号を特定する。サービス保持プログラムＰ１１２は、特定したフロー番号に基づいてフロー情報テーブルＴ１１４を検索し、対象フローを構成する各ソフトウェア部品の部品識別子のリストを取得する（Ｓ１３１）。【０１００】
サービス保持プログラムＰ１１２は、ステップＳ１３１で取得した部品識別子リストに記載された全てのソフトウェア部品について処理したか判定する（Ｓ１３２）。サービス保持プログラムＰ１１２は、部品識別子リストに記載された全てのソフトウェア部品を処理済みであると判定すると（Ｓ１３２：ＹＥＳ）、本処理を終了する。【０１０１】
未処理のソフトウェア部品が有る場合（Ｓ１３２：ＮＯ）、サービス保持プログラムＰ１１２は、未処理のソフトウェア部品を対象ソフトウェア部品とし、対象ソフトウェア部品の識別子に対応する情報を部品情報テーブルＴ１１２から取得する（Ｓ１３３）。サービス保持プログラムＰ１１２は、部品情報テーブルＴ１１２から取得した部品情報中のキー名Ｃ１１２４の先頭にｎａｍｅｓｐａｃｅを付加する（Ｓ１３４）。【０１０２】
サービス保持プログラムＰ１１２は、キー名にｎａｍｅｓｐａｃｅを付加した部品情報と、サービス識別子と、リードオンリーフラグとをサービス入出力情報テーブルＴ１１６に保存する（Ｓ１３５）。この時点では、全てのリードオンリーフラグに「ｆａｌｓｅ」が設定される。【０１０３】
さらに、サービス保持プログラムＰ１１２は、ステップＳ１３１で特定したフロー番号に関連する部品間関連リストを部品間関連情報テーブルＴ１１５から取得し、取得した部品間関連リストに記載されているソフトウェア部品同士の関係（部品間関連情報）を全て処理したか判定する（Ｓ１３６）。【０１０４】
未処理の部品間関連情報が有る場合（Ｓ１３６：ＮＯ）、サービス保持プログラムＰ１１２は、部品間関連情報の関連先ソフトウェア部品のキー名を確認する（Ｓ１３７）。サービス保持プログラムＰ１１２は、サービス入出力情報テーブルＴ１１６において、関連先ソフトウェア部品のキー名に一致するリードオンリーフラグＣ１１６８の値を「ｔｒｕｅ」に設定する（Ｓ１３８）。【０１０５】
サービス保持プログラムＰ１１２は、部品間関連リストに記載されている次の部品間関連情報に移動し（Ｓ１３９）、ステップＳ１３６に戻る。このようにして、部品間関連リストに記載されている全ての部品間関連情報を処理すると（Ｓ１３２：ＹＥＳ）、サービス保持プログラムＰ１１２は、本処理を終了する。【０１０６】
図１６は、サービス編集画面を表示する処理のフローチャートである。本処理は、図１３のステップＳ１６に相当し、サービス表示プログラムＰ１２２が実行する。【０１０７】
サービス表示プログラムＰ１２２は、サービス情報テーブルＴ１１３のフロー番号Ｃ１１３５に記憶されたフロー番号に基づいて、フロー情報テーブルＴ１１４を参照し、構成部品識別子リストＣ１１４３に記載の全てのソフトウェア部品を処理したか判定する（Ｓ１６１）。【０１０８】
未処理のソフトウェア部品がある場合（Ｓ１６１：ＮＯ）、サービス表示プログラムＰ１２２は、その未処理のソフトウェア部品の識別子と同一の識別子を有するカラムがサービス入出力情報テーブルＴ１１６に存在するか判定する（Ｓ１６２）。【０１０９】
該当するカラムがあると判定すると（Ｓ１６２：ＹＥＳ）、サービス表示プログラムＰ１２２は、キー名Ｃ１１６５の値を取得し、その値からｎａｍｅｓｐａｃｅを取り除く（Ｓ１６３）。【０１１０】
サービス表示プログラムＰ１２２は、メモリ１１２内に設けられる部品プロパティリスト（図示せず）に、前記カラムの情報と、前記除去したｎａｍｅｓｐａｃｅとを追加する（Ｓ１６４）。サービス表示プログラムＰ１２２は、フローを構成する各ソフトウェア部品について処理するまで、ステップＳ１６１〜Ｓ１６４を繰り返す。【０１１１】
リストに記載された全てのソフトウェア部品を処理すると（Ｓ１６１：ＹＥＳ）、サービス表示プログラムＰ１２２は、プロパティグループのユーザインターフェースを読み込む（Ｓ１６５）。サービス表示プログラムＰ１２２は、例えば、ＨＴＭＬ（HyperText Markup Language）のｉｆｒａｍｅ（inline frame）のＡＰＩ（Application Programming Interface）を用いて、ｎａｍｅｓｐａｃｅとプロパティグループ名と画面種別とから、該当するプロパティグループのユーザインターフェースを読み込む。【０１１２】
ｉｆｒａｍｅとは、ＨＴＭＬファイル内にＨＴＭＬファイルを埋め込むための画面構成技術の一例である。これ以外の技術を用いて、サービス提供画面Ｇ１０内にプロパティグループごとのユーザインターフェース画面を埋め込んでもよい。サービス表示プログラムＰ１２２は、ｉｆｒａｍｅ．ｎａｍｅに「＜ＮＡＭＥＳＰＡＣＥ＞−＜プロパティグループ名＞−＜画面種別＞」を設定する（Ｓ１６６）。【０１１３】
最後に、サービス表示プログラムＰ１２２は、メモリ１１２内の部品プロパティリストの中から、ｎａｍｅｓｐａｃｅとプロパティグループ名とが一致するプロパティの情報を読み出して、その情報を、該当するプロパティグループのユーザインターフェースに送信する（Ｓ１６７）。【０１１４】
図１３で述べたように、各プロパティグループのユーザインターフェースは、サービス提供画面Ｇ１０内の特定の表示領域において、当該プロパティグループに属するプロパティを表示する。その際に表示するためのリードオンリー情報やビジビリティ情報を加味して表示内容や表示範囲を決める（Ｓ１９、Ｓ２０）。【０１１５】
図１７は、ソフトウェア部品１０１をストレージ運用自動化システム１にインストールする場合の処理を示す。【０１１６】
まず最初に、ストレージ運用自動化システム１は、インストール対象のソフトウェア部品１０１の部品名およびソフトウェア部品識別子を、部品テーブルＴ１１１に格納する（Ｓ３０１）。続いて、ストレージ運用自動化システム１は、部品情報テーブルＴ１１２に、インストール対象のソフトウェア部品についての情報を格納する（Ｓ３０２）。【０１１７】
本実施例は上述のように構成されるため、以下の効果を奏する。本実施例では、サービス１００のフローを複数のソフトウェア部品１０１から構成し、各ソフトウェア部品１０１には、プロパティグループごとに個別のユーザインターフェース１０３を予め設定している。従って、ユーザは、サービス１００の内容（フロー）を編集するだけで、サービス全体のユーザインターフェースを自動的に生成することができる。【０１１８】
本実施例では、プロパティグループごとにユーザインターフェースを予め設定しているため、ソフトウェア部品の組合せを変更した場合でも、サービス全体のユーザインターフェースを容易に生成することができる。【０１１９】
さらに、本実施例では、フローを構成する複数のソフトウェア部品同士の関連を解析して、接続元（関連元）のソフトウェア部品の出力プロパティを接続先（関連先）のソフトウェア部品の入力プロパティとして使用する場合は、その入力プロパティにユーザが入力できないようにユーザインターフェースを構成する。従って、誤ったデータが入力されるのを未然に防止し、人為的ミスの発生を予防できる。
【実施例２】
【０１２０】
図１８および図１９を用いて第２実施例を説明する。本実施例を含む以下の各実施例は、第１実施例の変形例に該当する。従って、本実施例では、第１実施例との相違を中心に説明する。図１８は、本実施例によるサービス１００と各ソフトウェア部品１０１（１）、１０１（２）の関係を示す説明図である。【０１２１】
本実施例も、第１のソフトウェア部品１０１（１）と第２のソフトウェア部品１０１（２）を組み合わせて構成されるフローにより、サービス１００を実現する。第１のソフトウェア部品１０１（１）は、シンプロビジョニングボリュームを生成する。第２のソフトウェア部品１０１（２）は、第１のソフトウェア部品１０１（１）で作成したシンプロビジョニングボリューム内に、データストアを作成する。【０１２２】
ここで、入力プロパティ「ホスト名」は、第１のソフトウェア部品１０１（１）および第２のソフトウェア部品１０１（２）の両方に存在する。第１のソフトウェア部品（１）に入力する「ホスト名」と第２のソフトウェア部品１０１（２）に入力する「ホスト名」とは同一でなければならない。第１のソフトウェア部品１０１（１）の生成したシンプロビジョニングボリュームにアクセスできるホスト３が、そのシンプロビジョニングボリューム内のデータストアを使用するためである。従って、本実施例では、第１のソフトウェア部品１０１（１）にユーザが入力した「ホスト名」をそのまま第２のソフトウェア部品１０１（２）にも使用する。【０１２３】
上述の理由により、第１のソフトウェア部品１０１（１）から出力する「パス情報」は、第２のソフトウェア部品１０１（２）の入力としても使用されるべきである。そこで、本実施例では、第１のソフトウェア部品１０１（１）の出力する「パス情報」を、そのまま第２のソフトウェア部品１０１（２）の入力データとして使用する。【０１２４】
図１９は、本実施例によるサービス提供画面Ｇ２０を示す。サービス提供画面Ｇ２０は、例えば、サービス概要説明部ＧＰ２１と、ボリューム設定部ＧＰ２２と、シンプロビジョニングボリュームを使用するホスト設定部ＧＰ２３と、データストアを使用するホスト設定部ＧＰ２４と、パス情報設定部ＧＰ２５と、データストア情報設定部ＧＰ２６と、実行種別指定部ＧＰ２７と、ボタンＧＰ２８を備える。【０１２５】
サービス概要説明部ＧＰ２１は、第１実施例で述べたと同様に、サービス説明部ＧＰ２１Ａと、フロー概要図ＧＰ２１Ｂを含む総称である。【０１２６】
各設定部ＧＰ２２〜ＧＰ２６は、各ソフトウェア部品１０１の有する入力プロパティグループ１０２（ｉ）のユーザインターフェース１０３に対応している。ボリューム設定部ＧＰ２２は、第１のソフトウェア部品１０１（１）の入力プロパティグループ１０２（１Ａｉ）が有するユーザインターフェース１０３（１Ａ）に対応する。ユーザは、ボリューム設定部ＧＰ２２に対し、シンプロビジョニングボリュームの作成数と、ボリュームサイズとを入力する。【０１２７】
一方のホスト設定部ＧＰ２３は、第１のソフトウェア部品１０１（１）の入力プロパティグループ１０２（１Ｂｉ）の有するユーザインターフェース１０３（１Ｂ）に対応する。ユーザは、ホスト設定部ＧＰ２３に対し、シンプロビジョニングボリュームを使用するホストを特定するためのホスト名と、シンプロビジョニングボリュームに接続するパス数とを入力する。【０１２８】
他方のホスト設定部ＧＰ２４は、第２のソフトウェア部品１０１（２）の入力プロパティグループ１０２（２Ａｉ）の有するユーザインターフェース１０３（２Ａ）に対応している。ここでは第２のソフトウェア部品１０１（２）で使用する「ホスト名」は、第１のソフトウェア部品１０１（１）で使用する「ホスト名」と同一でなければならない。そこで、他方のホスト設定部ＧＰ２４では、ユーザが「ホスト名」を入力できないようにして表示する。【０１２９】
パス情報設定部ＧＰ２５も、第１のソフトウェア部品１０１（１）で決定されたパス情報を自動的に使用するため、ユーザが入力できないようにして表示する。【０１３０】
データストア情報設定部ＧＰ２６では、ユーザがデータストアに関する情報を設定できるようになっている。【０１３１】
実行種別指定部ＧＰ２７については第１実施例の実行種別指定部ＧＰ１６と同様なので説明を省略する。ボタンＧＰ２８は、実行ボタンＧＰ２８Ａと取消ボタンＧＰ２８Ｂとの総称である。ボタンＧＰ２８は、第１実施例のボタンＧＰ１７と同様なので、説明を省略する。【０１３２】
このように構成される本実施例も第１実施例と同様の作用効果を奏する。さらに本実施例では、第２のソフトウェア部品１０１（２）は、第１のソフトウェア部品１０１（１）に入力されるデータと同一データを使用する入力プロパティと、第１のソフトウェア部品１０１（１）から出力されるデータを使用する入力プロパティとを有する。このように、本実施例は、各ソフトウェア部品間で共通のデータが入力される場合、および第１のソフトウェア部品１０１（１）の出力を第２のソフトウェア部品１０１（２）の入力として使用する場合の両方に対応することができる。従って、サービスのユーザインターフェースを自動生成する範囲を広げることができ、使い勝手がさらに向上する。
【実施例３】
【０１３３】
図２０および図２１を用いて第３実施例を説明する。図２０は、本実施例によるサービス１００と各ソフトウェア部品１０１との関係を示す説明図である。【０１３４】
本実施例では、第１のソフトウェア部品１０１（１）によりシンプロビジョニングボリュームを生成し、生成したシンプロビジョニングボリュームにホスト３へ接続するための通信パスを設定する。第２のソフトウェア部品１０１（２）は、そのシンプロビジョニングボリュームをデータベース用のボリュームとして使用するために初期設定を行う。【０１３５】
本実施例も第２実施例と同様に、入力プロパティ「ホスト名」は、第１のソフトウェア部品１０１（１）および第２のソフトウェア部品１０１（２）の両方に存在する。第１のソフトウェア部品（１）に入力する「ホスト名」と第２のソフトウェア部品１０１（２）に入力する「ホスト名」とは同一でなければならない。第１のソフトウェア部品１０１（１）の生成したシンプロビジョニングボリュームにアクセスできるホスト３が、そのシンプロビジョニングボリュームから形成されるデータベース用ボリュームを使用するためである。従って、本実施例でも、第１のソフトウェア部品１０１（１）にユーザが入力した「ホスト名」をそのまま第２のソフトウェア部品１０１（２）にも使用する。【０１３６】
第１のソフトウェア部品１０１（１）から出力する「パス情報」は、第２のソフトウェア部品１０１（２）の入力としても使用される。そこで、本実施例では、第１のソフトウェア部品１０１（１）の出力する「パス情報」を、そのまま第２のソフトウェア部品１０１（２）の入力データとして使用する。【０１３７】
第１のソフトウェア部品１０１（１）で作成したシンプロビジョニングボリュームと、第２のソフトウェア部品１０１（２）で初期設定するデータベース用ボリュームとは、同一ボリュームであるため、第２のソフトウェア部品１０１（２）に「ボリューム識別子」を入力する必要はない。【０１３８】
図２１は、本実施例によるサービス提供画面Ｇ３０を示す。サービス提供画面Ｇ３０は、例えば、サービス概要説明部ＧＰ３１と、ボリューム設定部ＧＰ３２と、シンプロビジョニングボリュームを使用するホスト設定部ＧＰ３３と、データベース用ボリュームを使用するホスト設定部ＧＰ３４と、ノードおよび認証情報を設定する認証設定部ＧＰ３５と、パス情報設定部ＧＰ３６と、データベース設定部ＧＰ３７とを備える。図２１では省略しているが、サービス提供画面Ｇ３０は、第１実施例および第２実施例と同様に、実行種別指定部およびボタンを備える。【０１３９】
サービス概要説明部ＧＰ３１は、サービス説明部ＧＰ３１Ａと、フロー概要図ＧＰ３１Ｂを含む総称である。【０１４０】
各設定部ＧＰ３２〜ＧＰ３７は、各ソフトウェア部品１０１の有する入力プロパティグループ１０２（ｉ）のユーザインターフェース１０３に対応している。ボリューム設定部ＧＰ３２は、第１のソフトウェア部品１０１（１）の入力プロパティグループ１０２（１Ａｉ）が有するユーザインターフェース１０３（１Ａ）に対応する。ユーザは、ボリューム設定部ＧＰ２２に対し、シンプロビジョニングボリュームの作成数と、ボリュームサイズとを入力する。【０１４１】
一方のホスト設定部ＧＰ３３は、第１のソフトウェア部品１０１（１）の入力プロパティグループ１０２（１Ｂｉ）の有するユーザインターフェース１０３（１Ｂ）に対応している。ユーザは、ホスト設定部ＧＰ２３に対し、シンプロビジョニングボリュームを使用するホストを特定するためのホスト名と、シンプロビジョニングボリュームに接続するパス数とを入力する。【０１４２】
他方のホスト設定部ＧＰ３４は、第２のソフトウェア部品１０１（２）の入力プロパティグループ１０２（２Ａｉ）の有するユーザインターフェース１０３（２Ａ）に対応している。ここでは、第２のソフトウェア部品１０１（２）で使用する「ホスト名」は、第１のソフトウェア部品１０１（１）で使用する「ホスト名」と同一でなければならない。そこで、他方のホスト設定部ＧＰ３４では、ユーザが「ホスト名」を入力できないように表示する。【０１４３】
認証情報設定部ＧＰ３５では、ユーザはノードの認証情報を設定できる。パス情報設定部ＧＰ３６では、第１のソフトウェア部品１０１（１）で決定されたパス情報を自動的に使用するため、ユーザが入力できないようにして表示する。【０１４４】
データベース設定部ＧＰ３７では、データベース用ボリュームとして使用するために必要な情報をユーザが設定できるように表示する。このように構成される本実施例も前記第２実施例と同様の作用効果を奏する。
【実施例４】
【０１４５】
図２２〜図２４を用いて第４実施例を説明する。本実施例では、サービス１００のユーザインターフェースを利用するユーザの属性に応じて、サービス１００のユーザインターフェースの表示内容を変更する。サービス１００のユーザインターフェースを利用するユーザとは、サービス１００に関係するユーザであり、例えば、サービス１００の編集権限を有するユーザ、サービス１００の実行を指示するユーザなどに分類できる。ここでは、サービス１００の編集権限を有するユーザをストレージ管理者と呼び、サービス１００の実行を指示するユーザをオペレータと呼ぶ。【０１４６】
さらに、本実施例では、サービス１００について予め設定された複数の段階毎に、サービス１００のユーザインターフェースの表示内容を変更する。複数の段階としては、例えば、編集段階、実行指示確認段階、実行結果確認段階がある。このように、本実施例では、サービス１００に関するユーザの属性と所定の複数の段階の両方に従って、サービス１００の表示内容を変更する。【０１４７】
図２２は、編集段階の画面Ｇ４０の例を示す。サービス編集画面Ｇ４０は、ストレージ管理者のみが情報表示用装置１２に表示させて、操作することができる。サービス編集画面Ｇ４０は、ストレージ管理者がサービス１００の内容（フロー）を詳細に設定できるようにするために用意されている。【０１４８】
図２２に示す編集画面Ｇ４０は、例えば、ボリューム設定部ＧＰ４１と、ホスト設定部ＧＰ４２と、パス情報設定部ＧＰ４３を備えている。なお、本実施例のサービス提供画面Ｇ４０、Ｇ５０、Ｇ６０では、サービス概要説明部、実行種別指定部およびボタンも備えることができるが、図示を省略する。【０１４９】
ボリューム設定部ＧＰ４１において、ストレージ管理者は、例えば生成するボリューム数、ボリュームサイズ、ボリュームを生成するためのプールの物理的特性、使用するＬＵＮ（Logical Unit Number）を設定したりすることができる。ホスト設定部ＧＰ４２において、ストレージ管理者は、例えばホストモード、ホストモードのオプションを設定することができる。パス情報設定部ＧＰ４３において、ストレージ管理者は、初期コピーを実行するか否かの指示、コピーモード、コピーグループ名のプレフィックスを設定できる。【０１５０】
図２３は、実行指示確認画面Ｇ５０の例を示す。サービスの実行指示を確認するための画面Ｇ５０は、オペレータが、実行するタスク毎に設定する必要のある項目だけを表示している。【０１５１】
実行指示確認画面Ｇ５０は、例えば、ホスト設定部ＧＰ５１と、ボリューム設定部ＧＰ５２と、他方のホスト設定部（バックアップサーバ設定部）ＧＰ５３と、パス世代数設定部ＧＰ５４を備える。【０１５２】
ホスト設定部ＧＰ５１において、オペレータは、機器を管理する製品で管理されている任意のホストを指定することができる。ボリューム設定部ＧＰ５２において、オペレータは、例えば、予め指定されている物理特性を有するプールの中から、ホストに割り当てるボリュームの数やサイズを設定することができる。パス世代数設定部ＧＰ５４において、オペレータは、例えば、コピーグループ名のプレフィックス、コピーグループの世代数などを指定できる。【０１５３】
このように実行指示確認画面Ｇ５０では、オペレータは、ストレージ管理者に提供されている情報に比べて、限定された情報のみアクセスでき、限定された情報のみ操作することができる。オペレータは、ストレージ管理者により事前に設定されているホストモードなどの情報を操作することはできない。それらの権限のない情報は、参照のみ可能なモードで画面Ｇ５０に表示してもよい。【０１５４】
図２４は、実行結果確認画面Ｇ６０の例を示す。サービスの実行結果を確認するための画面Ｇ６０は、ストレージ管理者、オペレータの区別無く、タスクの実行結果に関する全ての情報を確認できるように構成されている。【０１５５】
実行結果確認画面Ｇ６０は、例えば、実行結果表示部ＧＰ６１と、ホスト情報表示部ＧＰ６２と、ボリューム情報表示部ＧＰ６３と、他方のホスト情報表示部（バックアップサーバ表示部）ＧＰ６４と、パス世代数情報表示部ＧＰ６５とを備える。【０１５６】
実行結果についての基礎的な情報を示す実行結果表示部ＧＰ６１において、ストレージ管理者およびオペレータは、例えば、タスク名、タスクステータス、タスク開始時刻、タスク終了時刻、タスク識別子、ユーザ名などを確認できる。ホスト情報表示部ＧＰ６２において、ストレージ管理者およびオペレータは、例えば、正ボリューム（コピー元ボリューム）を使用するホストの名称を確認できる。【０１５７】
ボリューム情報表示部ＧＰ６３において、ストレージ管理者およびオペレータは、例えば、生成したボリュームの用途、ボリューム数、ボリュームサイズ、ボリュームを生成するために使用したプールの物理特性、ＬＵＮ、パス情報を確認できる。他方のホスト情報表示部ＧＰ６４において、ストレージ管理者およびオペレータは、例えば、他方のホストの名称を確認できる。【０１５８】
パス世代数情報表示部ＧＰ６５において、ストレージ管理者およびオペレータは、例えば、コピーグループの世代数、初期コピーの実施の有無、コピーグループ名のプレフィックス、パス情報を確認することができる。【０１５９】
実行結果確認画面Ｇ６０において、ストレージ管理者およびオペレータは、タスク実行前（サービス実行前）に指定した値と、タスクの実行の結果として得られた値との両方を参照可能である。なお、表示部ＧＰ６３、ＧＰ６５に示すように、詳細情報の表示を制御するための「Ｄｅｔａｉｌ  Ｖｉｅｗ」ボタンを設け、このボタンのオン／オフを切り替えることで詳細情報を表示したり、消去したりすることができる。【０１６０】
このように構成される本実施例も前記各実施例と同様の作用効果を奏する。さらに、本実施例では、サービスに関係するユーザの属性およびサービスについて事前に設定された所定の段階に応じて、サービス提供画面の表示内容を制御する。従って、ユーザは、自分に必要な範囲の情報を確認したり操作したりでき、使い勝手が向上する。なお、本実施例では、ユーザ属性および所定の段階の両方に応じて画面構成を制御する例を説明したが、ユーザ属性のみに応じて画面構成を制御したり、あるいは、サービスの所定の段階のみに応じて画面構成を制御したりすることもできる。それらの構成はいわゆる当業者であれば容易に理解して実施できるため、詳細な説明は割愛する。【０１６１】
本発明は、上述した実施例に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。例えば、上述した本発明の技術的特徴は、適宜結合させて実施することができる。
【符号の説明】
【０１６２】
１：ストレージ運用自動化システム、２：ストレージ管理システム、３：ホストコンピュータ、４：ストレージ装置
【図１】
0005977890.tif 000002
【図２】
0005977890.tif 000003
【図３】
0005977890.tif 000004
【図４】
0005977890.tif 000005
【図５】
0005977890.tif 000006
【図６】
0005977890.tif 000007
【図７】
0005977890.tif 000008
【図８】
0005977890.tif 000009
【図９】
0005977890.tif 000010
【図１０】
0005977890.tif 000011
【図１１】
0005977890.tif 000012
【図１２】
0005977890.tif 000013
【図１３】
0005977890.tif 000014
【図１４】
0005977890.tif 000015
【図１５】
0005977890.tif 000016
【図１６】
0005977890.tif 000017
【図１７】
0005977890.tif 000018
【図１８】
0005977890.tif 000019
【図１９】
0005977890.tif 000020
【図２０】
0005977890.tif 000021
【図２１】
0005977890.tif 000022
【図２２】
0005977890.tif 000023
【図２３】
0005977890.tif 000024
【図２４】
0005977890.tif 000025