(57)【要約】【課題】  種々のバージョンが派生し、それぞれ独自にバージョンアップされていく多種類のバージョン系列を適切に管理し、プログラム品質を向上させる。【解決手段】  各バージョン系列Ｖ２，Ｖ２Ａのバージョンアップに関する情報は、記憶装置４に記憶され、一元的に管理される。作業者や管理者は、クライアント１を介してサーバ３にアクセスし、任意のバージョンを複数指定する。指定されたバージョン（Ver.21，Ver21A）同士が最初に分岐したバージョン（Ver.11）が検出される。分岐点バージョンから各指定バージョンまでの間に実行された全てのプログラム変更項目Ｐ２〜Ｐ４が検出される。各指定バージョンに反映済みのプログラム変更項目同士を比較することにより、いずれか一方のみに適用されているプログラム変更項目を検出することができる。【選択図】        図１
2005258709.tif 000002
【特許請求の範囲】
【請求項１】
上位装置とのデータ授受を制御するチャネルアダプタと、
論理的な記憶領域を提供する記憶デバイスと、
前記記憶デバイスとのデータ授受を制御するディスクアダプタと、
前記チャネルアダプタ及び前記ディスクアダプタにそれぞれ設けられる制御プログラムとを備えたディスクアレイ装置のバージョン系列を管理する管理システムであって、
前記制御プログラムの各プログラムバージョンに関する情報を記憶するバージョン管理情報記憶部と、
比較対象となる複数のプログラムバージョンをそれぞれ指定する指定部と、
前記バージョン管理情報記憶部を参照することにより、前記指定された各プログラムバージョンにそれぞれ関連する基点バージョンを取得する基点バージョン取得部と、
前記バージョン管理情報記憶部を参照することにより、前記指定された各プログラムバージョン毎に、前記基点バージョンから前記指定されたプログラムバージョンに至るまでの間のプログラム更新履歴を取得する更新履歴取得部と、
を備えたディスクアレイ装置のバージョン系列管理システム。
【請求項２】
前記指定された各プログラムバージョンに関するプログラム更新履歴を比較する比較部と、この比較部による比較結果を出力する出力部を備えた請求項１に記載のディスクアレイ装置のバージョン系列管理システム。
【請求項３】
前記指定部は、バージョン系列に存在する任意のプログラムバージョンを指定可能である請求項２に記載のディスクアレイ装置のバージョン系列管理システム。
【請求項４】
前記指定部は、実質的に直系関係にない任意のプログラムバージョンを指定可能である請求項２に記載のディスクアレイ装置のバージョン系列管理システム。
【請求項５】
前記基点バージョン取得部は、前記指定された各プログラムバージョンが分岐した分岐点のプログラムバージョンを、前記基点バージョンとして取得する請求項２に記載のディスクアレイ装置のバージョン系列管理システム。
【請求項６】
前記基点バージョン取得部は、前記指定された各プログラムバージョンに共通する最古のプログラムバージョンを、前記基点バージョンとして取得する請求項２に記載のディスクアレイ装置のバージョン系列管理システム。
【請求項７】
前記基点バージョン取得部は、前記指定された各プログラムバージョンのそれぞれの最古のプログラムバージョンを、前記基点バージョンとしてそれぞれ取得する請求項２に記載のディスクアレイ装置のバージョン系列管理システム。
【請求項８】
前記更新履歴取得部は、前記指定された各プログラムバージョン毎に、前記基点バージョンから前記指定されたプログラムバージョンに至るまでの間に存在するプログラムバージョンを検出し、検出されたプログラムバージョンに施されたプログラム変更に関する情報を前記プログラム更新履歴として取得する請求項２に記載のディスクアレイ装置のバージョン系列管理システム。
【請求項９】
前記プログラム変更に関する情報は、前記プログラム変更の目的毎にグループ化されたプログラム変更項目である請求項８に記載のディスクアレイ装置のバージョン系列管理システム。
【請求項１０】
前記比較部は、前記指定された各プログラムバージョンのプログラム更新履歴について、それぞれの共通点及び相違点を出力するものである請求項２に記載のディスクアレイ装置のバージョン系列管理システム。
【請求項１１】
前記比較部は、前記指定された各プログラムバージョンのプログラム更新履歴について、それぞれの共通点または相違点のうちいずれか選択された方を出力するものである請求項２に記載のディスクアレイ装置のバージョン系列管理システム。
【請求項１２】
前記比較部による比較結果に、他の属性情報を付加する属性情報付加部を備えた請求項２に記載のディスクアレイ装置のバージョン系列管理システム。
【請求項１３】
前記バージョン管理情報記憶部は、
前記各プログラムバージョンの変更元のプログラムバージョンを管理する変更元バージョン管理部と、
前記各プログラムバージョンに適用されたプログラム変更に関する情報を管理するプログラム変更適用管理部と、
前記プログラム変更に関する情報の内容を管理するプログラム変更内容管理部と、
を互いに関連付けることにより構成されている請求項２に記載のディスクアレイ装置のバージョン系列管理システム。
【請求項１４】
上位装置とのデータ授受を制御するチャネルアダプタと、
論理的な記憶領域を提供する記憶デバイスと、
前記記憶デバイスとのデータ授受を制御するディスクアダプタと、
前記チャネルアダプタ及び前記ディスクアダプタにそれぞれ設けられる制御プログラムとを備えたディスクアレイ装置のバージョン系列を管理する管理方法であって、
前記制御プログラムの各プログラムバージョンに関する情報をバージョン管理情報記憶部に登録するステップと、
比較対象となる複数のプログラムバージョンをそれぞれ指定するステップと、
前記バージョン管理情報記憶部を参照することにより、前記指定された各プログラムバージョンにそれぞれ関連する基点バージョンを取得するステップと、
前記バージョン管理情報記憶部を参照することにより、前記指定された各プログラムバージョン毎に、前記基点バージョンから前記指定されたプログラムバージョンに至るまでの間のプログラム更新履歴を取得するステップと、
を含むディスクアレイ装置のバージョン系列管理方法。
【請求項１５】
前記指定された各プログラムバージョンに関するプログラム更新履歴を比較するステップと、
前記比較された結果を出力するステップと、
をさらに含む請求項１４に記載のディスクアレイ装置のバージョン系列管理方法。
【請求項１６】
直系関係にない任意の時点のプログラムバージョンを指定可能である請求項１５に記載のディスクアレイ装置のバージョン系列管理方法。
【請求項１７】
前記指定された各プログラムバージョンが最初に分岐した分岐点のプログラムバージョンを、前記基点バージョンとして取得する請求項１５に記載のディスクアレイ装置のバージョン系列管理方法。
【請求項１８】
前記指定された各プログラムバージョンに共通する最古のプログラムバージョンを、前記基点バージョンとして取得する請求項１５に記載のディスクアレイ装置のバージョン系列管理方法。
【請求項１９】
前記指定された各プログラムバージョンのそれぞれの最古のプログラムバージョンを、前記基点バージョンとしてそれぞれ取得する請求項１５に記載のディスクアレイ装置のバージョン系列管理方法。
【請求項２０】
前記基点バージョンから前記指定された各プログラムバージョンに至るまでの間に行われたプログラム変更に関する情報を、前記プログラム変更の目的毎にグループ化することにより前記プログラム更新履歴として取得する請求項１５に記載のディスクアレイ装置のバージョン系列管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイ装置のバージョン系列管理システム及びバージョン系列管理方法に関する。
【背景技術】
【０００２】
ディスクアレイ装置は、例えば、ハードディスク装置や半導体メモリ装置等の記憶デバイスをアレイ状に配設し、RAID（Redundant Array of Independent Inexpensive Disks）に基づいた記憶領域を構築する。各ディスクドライブが有する物理的な記憶領域上には、論理的な記憶領域である論理ボリューム（LU：Logical Unit）が形成され、この論理ボリュームがホストコンピュータに提供される。
【０００３】
ホストコンピュータとディスクアレイ装置との間のデータ授受は、チャネルアダプタと呼ばれる上位インターフェース制御基板が行う。チャネルアダプタは、ホストコンピュータとの間の通信プロトコルに応じて、種々のタイプが用意されている。また、ディスクアレイ装置と記憶デバイスとの間のデータ授受は、ディスクアダプタと呼ばれる下位インターフェース制御基板が行う。各制御基板は、それぞれマイクロプロセッサを搭載したコンピュータ装置であり、各制御基板がそれぞれの制御プログラムを実行することにより、連携して動作するようになっている。
【０００４】
ディスクアレイ装置では、例えば、顧客から要求された仕様の追加または変更等に応じて、プログラムの改良や変更が行われる。このような古いプログラムを改良等して新しいプログラムに更新することを、例えば、プログラムのバージョンアップ、またはプログラムのアップグレード、あるいはプログラムのアップデートと呼ぶ。本明細書では、バージョンアップと呼ぶことにする。
【０００５】
ディスクアレイ装置は、多数のマイクロコンピュータ部品を搭載した大規模なシステム製品である。また、ディスクアレイ装置は、パーソナルコンピュータ等のような汎用品とは異なり、顧客要求等に応じて種々のバージョンが派生し、かつ、それらの派生品を客先で運用する間も随時プログラムが改良されるという特殊な製品である。そこで、ディスクアレイ装置のプログラム開発においては、プログラムのバージョン管理を適切に行うことが求められている。
【０００６】
プログラムのバージョン管理方法としては、例えば、ソース変更管理方法と、プログラム変更項目管理方法とが知られている。ソース変更管理方法とは、異なるバージョンのソースプログラム（ソースファイル）について、ソースプログラム間で行われた変更、追加、削除を管理するものである。ソース変更管理方法では、例えば、旧ソースプログラムと新ソースプログラムとの間で、どの行が変更されたか等を管理する。ソース変更管理方法は、従来より使用されている方法であり、例えば、UNIX（登録商標）のような市販ＯＳにも搭載されている。
【０００７】
これに対し、プログラム変更項目管理方法とは、ソースプログラムの変更箇所のみを単純に管理するソース変更管理方法とは異なり、プログラムの変更に関わる種々の情報をまとめて管理するものである。プログラム変更項目管理方法では、例えば、変更部分に関する情報以外に、変更の理由、変更者の氏名、変更日、重要度、その変更が実施済であるか否か、変更の原因となった不具合の発生現象、発生原因等の諸情報が管理される（特許文献１）。
【特許文献１】特開２００１−１６６９２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記特許文献に記載された技術では、異なる２つのバージョン間で、プログラムの変更部分を管理できるようにしている。しかし、この従来技術では、基本的に、比較の対象となるバージョン同士が連続的な関係にある場合を前提とする。即ち、比較対象の一方のバージョンが、直接的または間接的に（親と子、親と孫のような関係）、他方のバージョンの変更元バージョンでなければ、比較することができない。
【０００９】
従って、異なるバージョンが直系の関係になく、例えば、直系と傍系のような関係にある場合は、それぞれのバージョンで実施されたプログラム変更を比較して確認することができない。さらには、比較対象の各バージョンが、それぞれ全く異なるオリジナルのプログラムからそれぞれの進化を重ねてきた場合も、両者の一致点や相違点を確認することはできない。
【００１０】
それぞれ異なる系列、系統に属するバージョン間で、一方に適用したプログラム変更を他方にも適用する必要性は、一般的な民生品プログラムの分野では乏しい。仮に、その必要性があったとしても、各バージョンでそれぞれ独自に同時期にバージョンアップすれば足りる。別系列に属するバージョン同士の相違点や一致点まで確認する必要はない。
【００１１】
異なる系列に属するプログラムは、基本的に別々のプログラム製品であって、更新履歴を相互に参照しながらプログラム開発を行う必要性に乏しく、各系列毎にそれぞれ独自にバージョンを管理すればよいためである。従って、このような一般的なプログラム開発の分野では、管理すべきバージョン同士が直系関係または実質的に直系関係にあるため、上記特許文献に記載されている技術を用いて、バージョン管理を行うことができる。
【００１２】
ところが、ディスクアレイ装置は、多数のマイクロコンピュータを搭載した大規模なシステム製品であり、規格の標準化も民生品の分野ほど進んでいない。また、ディスクアレイ装置は高価であり、簡単に新機種に乗り換えることができない反面、ストレージシステムの運用環境はコンピュータ技術やネットワーク技術の進展に伴って日々変化する。従って、ディスクアレイ装置は、種々の理由から、異なるバージョン系列が多数派生し、かつ、それぞれのバージョン系列同士が密接に関係しながら同時に運用され、改良されていくという、特殊な技術的性質を有する。
【００１３】
例えば、ディスクアレイ装置では、一般顧客向けの製品から、特定の顧客向けの特殊な仕様に対応するために、新たなバージョンが派生する。また、ディスクアレイ装置では、特定機種の製品に搭載する特殊なハードウェアに対応するために、新たなバージョンが派生する。さらに、市場投入用バージョンと、社内での評価用バージョン、客先での評価用バージョン等のように、それぞれ異なるバージョンが同時期にまたは近い時期に、多数派生する場合がある。また、評価用バージョンの場合には、新機能の追加を目的とするバージョンと、市場投入のために品質改良を目的とするバージョン等がある。また、次期機種用のバージョンと、特定用途に向けた一時的なバージョンも存在する。
【００１４】
このように、ディスクアレイ装置では、様々なバージョンが複数発生する。そして、これらの派生した各系列のプログラムは、それぞれの事情によって独自の改良が重ねられていく。ディスクアレイ装置としての基本的な機能は共通するため、前のソースプログラムを利用してバージョンアップが行われる。しかし、具体的な仕様等は、それぞれのバージョン系列同士で、個別に相違する。従って、機能が共通するプログラム同士であっても、ソースプログラムの内容は異なる場合が多い。
【００１５】
ソースプログラムが各バージョン系列間で異なる場合でも、あるバージョン系列に属するプログラムに対して実施されたプログラム変更が、他の系列に属するプログラムにも関係する場合がある。例えば、ディスクアレイ装置としての基本構成に関する機能追加や機能の改善等のような場合である。
【００１６】
しかし、上述のように、各バージョン系列の用途等はそれぞれ異なるため、複数のバージョン系列に関係するプログラム変更であっても、各バージョン系列のそれぞれに同時期に適用されるとは限らない。あるバージョン系列にとって重要なプログラム変更であっても、関係する他のバージョン系列においては重要でない場合がある。また、特定機種向けのバージョン系列で実施されたプログラム変更が、他機種のバージョン系列に適用可能か否か、適用可能な場合はどの部分を変更等すべきかについて、検証するための時間も必要となる。ディスクアレイ装置は、企業や自治体等の重要なデータを管理するために使用されるものであり、多数のマイクロコンピュータを連携させた高度かつ大規模なシステム製品である。従って、ディスクアレイ装置には一般の民生品よりも特に高い信頼性が求められ、信頼性を検証するために長時間を必要とする。
【００１７】
このように、ディスクアレイ装置では、プログラム変更を適用すべきバージョン系列が複数存在する場合でも、各バージョン系列に固有の事情により、プログラム変更の適用がいったん保留され、後日になって適用されることがある。プログラム変更の適用時期を各バージョン系列固有の理由で変えざるを得ない特殊な状況は、そのプログラム変更の適用もれが発生する可能性を高くする。
【００１８】
上記特許文献では、ディスクアレイ装置の特殊な技術的性質について何ら考慮されていないため、直系と傍系のように、互いに異なるバージョン系列が複数存在し、独自に進化していくような環境下では、適切なバージョン管理を行うことができない。
【００１９】
本発明は、上記問題点に鑑みてなされたもので、その目的の一つは、異なる系列のバージョンを適切に管理することができるディスクアレイ装置のバージョン系列管理システム及びバージョン系列管理方法を提供することにある。本発明の目的の一つは、異なる系列に属するバージョン同士を比較し、プログラム変更の適用もれを低減することができるディスクアレイ装置のバージョン系列管理システム及びバージョン系列管理方法を提供することにある。本発明の目的の一つは、より効率的に、異なる系列のバージョンを適切に管理することができるディスクアレイ装置のバージョン系列管理システム及びバージョン系列管理方法を提供することにある。本発明の他の目的は、後述する実施形態の記載から明らかになるであろう。
【課題を解決するための手段】
【００２０】
上記課題を解決すべく、本発明に従うディスクアレイ装置のバージョン系列管理システムは、上位装置とのデータ授受を制御するチャネルアダプタと、論理的な記憶領域を提供する記憶デバイスと、記憶デバイスとのデータ授受を制御するディスクアダプタと、チャネルアダプタ及びディスクアダプタにそれぞれ設けられる制御プログラムとを備えたディスクアレイ装置のバージョン系列を管理する。そして、この管理システムは、制御プログラムの各プログラムバージョンに関する情報を記憶するバージョン管理情報記憶部と、比較対象となる複数のプログラムバージョンをそれぞれ指定する指定部と、バージョン管理情報記憶部を参照することにより、指定された各プログラムバージョンにそれぞれ関連する基点バージョンを取得する基点バージョン取得部と、バージョン管理情報記憶部を参照することにより、指定された各プログラムバージョン毎に、基点バージョンから指定されたプログラムバージョンに至るまでの間のプログラム更新履歴を取得する更新履歴取得部と、を備えている。
【００２１】
バージョン管理情報記憶部には、制御プログラムの各バージョン系列に関する種々の管理情報が記憶され、一元的に管理される。バージョン管理情報としては、例えば、変更元バージョンに関する情報、実施済または未実施のプログラム変更項目に関する情報、プログラム変更項目が適用されたバージョンに関する情報等を挙げることができる。
【００２２】
例えば、プログラム開発者やプログラム開発の管理者等のユーザは、指定部によって、所望する複数のバージョンを指定することができる。基点バージョン取得部は、指定されたバージョン（以下、指定バージョン）に関連する基点バージョンを求める。更新履歴取得部は、基点バージョンから一方の指定バージョンに至るまでの間に実施されたプログラム更新履歴と、基点バージョンから他方の指定バージョンに至るまでの間に実施されたプログラム更新履歴とを、それぞれ取得する。これにより、ユーザは、各プログラム更新履歴を参照することにより、プログラムの開発過程を知ることができ、さらに、どのプログラム更新がいずれの指定バージョンに適用済であり、どのプログラム更新がいずれの指定バージョンに適用されていないかを確認することができる。
【００２３】
プログラム更新履歴としては、例えば、プログラム変更の目的毎にグループ化されたプログラム変更情報（プログラム変更項目）を挙げることができる。プログラム変更項目には、例えば、変更理由、変更者、変更日付、不具合等の発生現象、発生原因、発生条件、変更方式（具体的な対策等）、変更の重要度等の情報を含めることができる。
【００２４】
指定バージョンに関するプログラム更新履歴を比較する比較部と、この比較部による比較結果を出力する出力部を備えることにより、ユーザは、両プログラム更新履歴の一致点や相違点を簡単に把握することができる。
【００２５】
指定部は、バージョン系列に存在する任意のプログラムバージョンを指定することができる。あるいは、指定部は、実質的に直系関係にない任意のプログラムバージョンを指定することができる。
【００２６】
指定部は、同一バージョン系列に属する複数のプログラムバージョンをそれぞれ任意に指定することができる。また、指定部は、それぞれ異なるバージョン系列に属するプログラムバージョンをそれぞれ任意に指定することができる。例えば、あるバージョン系列に属する最新のプログラムバージョンと別のバージョン系列に属する最新のプログラムバージョン、あるバージョン系列の最新のプログラムバージョンと別のバージョン系列の古いプログラムバージョン、あるバージョン系列の古いプログラムバージョンと別のバージョン系列の古いプログラムバージョン、同一のバージョン系列に属する新旧のプログラムバージョン等のように、バージョンの系列及びバージョンの生成時期を超えて、ユーザは任意のプログラムバージョンを指定可能である。
【００２７】
ここで、実質的に直系関係にないプログラムバージョンとは、例えば、それぞれのプログラム開発過程の直接的な関連性が相対的に低いプログラムバージョンであると定義可能である。例えば、両プログラムバージョンを数世代または十数世代遡っても、共通のバージョンが存在しない場合や、開発の起点となったオリジナルのプログラムがそれぞれ別々の場合等を挙げることができる。
【００２８】
基点バージョンとしては、例えば、指定バージョンが分岐した分岐点のプログラムバージョンを用いることができる。即ち、例えば、各指定バージョンについて、それぞれ世代を遡っていき、同一のプログラムバージョンに初めて到達した場合、この共通のプログラムバージョンが基点バージョンとなる。
【００２９】
基点バージョンとしては、各指定バージョンに共通する最古のプログラムバージョンを用いることができる。例えば、共通の最古のプログラムバージョンから始まって、バージョンアップを繰り返し、あるプログラムバージョンで２つのバージョン系列に分岐した場合は、最初の分岐点を基点バージョンとするのではなく、さらに上流に遡り、最古のプログラムバージョンを基点バージョンとする。最初の分岐点を検出するための処理に要するコストよりも、共通の最古のプログラムバージョンを検出するための処理に要するコストの方が低い。従って、より効率的に、速やかに基点バージョンを取得することができ、使い勝手が向上する。
【００３０】
基点バージョンとしては、指定バージョンのそれぞれの最古のプログラムバージョンを用いることもできる。つまり、各指定バージョンの属するバージョン系列が、その最初から独自に進化してきたような場合は、指定バージョンの最初の分岐点はおろか、共通する最古のプログラムバージョンも存在しない。このような場合、それぞれの指定バージョンに固有の最古のプログラムバージョンを検出し、基点バージョンとして使用する。これにより、全く別系統のバージョン同士であっても比較することができる。
【００３１】
本発明の他の観点に従うディスクアレイ装置のバージョン系列管理方法では、制御プログラムの各プログラムバージョンに関する情報をバージョン管理情報記憶部に登録するステップと、比較対象となる複数のプログラムバージョンをそれぞれ指定するステップと、バージョン管理情報記憶部を参照することにより、指定された各プログラムバージョンにそれぞれ関連する基点バージョンを取得するステップと、バージョン管理情報記憶部を参照することにより、指定された各プログラムバージョン毎に、基点バージョンから指定されたプログラムバージョンに至るまでの間のプログラム更新履歴を取得するステップと、を含むことができる。
【００３２】
さらに、本発明は、例えば、サーバ等のコンピュータに上記管理方法を実行させるためのプログラムとして、あるいは、上記管理システムの機能を実現させるためのプログラムとして構成することもできる。そして、本発明に従うプログラムは、例えば、ハードディスク装置、半導体メモリ装置、光ディスク装置等の記録媒体に固定させて流通に置くこともできるし、あるいは、通信ネットワークを介して送信することもできる。
【発明を実施するための最良の形態】
【００３３】
以下、図１〜図２０に基づき、本発明の実施の形態を説明する。本実施形態のバージョン系列管理システムは、例えば、上位装置とのデータ授受をそれぞれ制御する複数のチャネルアダプタと、論理的な記憶領域をそれぞれ提供する複数の記憶デバイス群と、前記各記憶デバイス群とのデータ授受をそれぞれ制御する複数のディスクアダプタと、前記各チャネルアダプタ及び前記各ディスクアダプタにより共用されるキャッシュメモリ及び制御メモリと、前記各チャネルアダプタ及び前記各ディスクアダプタにそれぞれ接続され、装置の内部情報を収集するサービスプロセッサと、前記各チャネルアダプタ及び前記各ディスクアダプタと前記サービスプロセッサとにそれぞれ設けられる制御プログラムとを備えたディスクアレイ装置に用いられる。
【００３４】
そして、本実施形態のバージョン系列管理システムは、例えば、HTML（HyperText Markup Language）やXML（eXtensible Markup Language）、CGI（Common Gateway Interface）のようなプログラム言語と、TCP／IP（Transmission Control Protocol/Internet Protocol）のような汎用の通信プロトコル等を利用する、いわゆるウェブベースのクライアント−サーバモデルとして構築可能である。
【００３５】
詳細はそれぞれ後述するように、本実施形態のバージョン系列管理システムは、個々のバージョンの変更元バージョンがどれであるかの情報を管理する変更元バージョン管理テーブルＴ１と、プログラム変更項目の適用先バージョンがどれであるかを管理するプログラム変更項目適用管理テーブルＴ２と、各プログラム変更項目の内容を管理するプログラム変更項目管理テーブルＴ３と、比較する複数のバージョンを指定するためのバージョン指定部２０１と、各指定バージョンの最初の分岐点バージョンを取得するバージョン分岐点取得部２０２と、分岐点バージョンと各指定バージョンとの間に存在する全てのバージョンを検出する全バージョン取得部２０３と、分岐点バージョンと各指定バージョン間の全バージョンで実施された各プログラム変更項目を全て検出する全プログラム変更項目取得部２０４と、各指定バージョンのそれぞれについて取得された各プログラム変更項目同士を比較し、相違する項目及び共通する項目をそれぞれ抽出する相違項目・共通項目抽出部２０５と、抽出された相違項目及び共通項目に変更理由や変更者あるいは変更方式等の属性情報を任意に付加することができる諸情報追加部２０６と、この諸情報が追加された相違項目及び共通項目をディスプレイ装置や音声合成装置等の情報出力装置に対して出力させる出力部２０７とを備えている。
【００３６】
これらの各機能部分及びバージョン管理情報は、サーバ上に置いて使用することができるほか、その一部をクライアント側で実行させることもできる。
【実施例１】
【００３７】
図１は、本実施例の概念を概略的に示す説明図である。図中の上側には、ディスクアレイ装置１０の製品系列（プログラムのバージョン系列）の一部が部分的に示されており、図中の下側には、バージョン系列を一元的に管理するための管理システムの全体像が示されている。ディスクアレイ装置１０の詳細は、さらに後述する。
【００３８】
図１中には、２つの異なるバージョン系列Ｖ２，Ｖ２Ａが示されている。バージョン系列Ｖ２は、「Ver.10」から始まり、「Ver.11」を経て「Ver.20」、「Ver.21」へと発展している。バージョン系列Ｖ２Ａは、「Ver.11」から分岐して始まり、「Ver.20A」、「Ver.21A」へと変化している。
【００３９】
従って、図１に示すバージョン系統図では、バージョン系列Ｖ２とバージョン系列Ｖ２Ａとが分岐したバージョンは「Ver.11」である。各バージョン系列Ｖ２，Ｖ２Ａにそれぞれ共通する最古のバージョンは「Ver.10」である。
【００４０】
また、「Ver.10」から「Ver.11」にバージョンアップする際に、「Ver.11」のプログラムに対して、プログラム変更項目Ｐ１が適用されている。同様に、「Ver.20」のプログラムには、プログラム変更項目Ｐ２が適用されている。「Ver.20A」のプログラムには、プログラム変更項目Ｐ３が適用されている。「Ver.21」及び「Ver.20A」の各プログラムには、プログラム変更項目Ｐ４がそれぞれ適用されている。プログラム変更項目の詳細は、さらに後述する。
【００４１】
例えば、ディスクアレイ装置１０の開発部門等には、クライアント１，２とサーバ３とを通信ネットワークＣＮ１を介して相互に接続したクライアント−サーバ型のバージョン系列管理システムが設けられる。サーバ３には、記憶装置４が接続される。ＣＮ１には、例えば、LAN（Local Area Network）等が用いられる。
【００４２】
クライアント１は、例えば、作業者によって使用される。各作業者は、ディスクアレイ装置１０に実装される各種プログラムを開発する。開発されたプログラムは、クライアント１のローカル記憶装置や記憶装置４、あるいは図外の別の記憶装置に記憶させることができる。別のクライアント２は、例えば、管理者によって使用される。管理者は、プログラム開発の進行等を管理する。
【００４３】
記憶装置４には、各バージョン系列Ｖ２，Ｖ２Ａに関するバージョン管理情報がそれぞれ登録され、記憶されている。バージョン管理情報には、例えば、プログラム変更項目Ｐ１〜Ｐ４に関する情報や、変更元バージョンと変更後のバージョンとの対応関係等が含まれる。各作業者や管理者は、ウェブヴラウザを介してサーバ３にそれぞれアクセスすることができ、バージョン管理情報等を入力したり、入力済のバージョン管理情報を参照することができる。また、各作業者や管理者は、サーバ３にアクセスすることにより、任意の複数のバージョンについて、共通して適用されたプログラム変更項目や一方のバージョンのみに適用されているプログラム変更項目等に関する情報を得ることができる。
【００４４】
複数のバージョン間の共通項目（共通して適用されたプログラム変更項目）と相違項目（いずれか一方のみに適用されたプログラム変更項目）とを確認する方法については、さらに後述する。
【００４５】
先に、図２，図３を参照して、ディスクアレイ装置１０の詳細を説明する。図２は、ディスクアレイ装置１０の外観構成の一例を示す概略斜視図である。ディスクアレイ装置１０は、例えば、基本筐体１１と複数の増設筐体１２とから構成可能である。
【００４６】
基本筐体１１は、ディスクアレイ装置１０の最小構成単位であり、記憶機能及び制御機能の両方を備えている。増設筐体１２は、ディスクアレイ装置１０のオプションであり、基本筐体１１の有する制御機能により制御される。例えば、最大４個の増設筐体１２を基本筐体１１に接続可能である。
【００４７】
基本筐体１１には、複数の制御パッケージ１３と、複数の電源ユニット１４と、複数のバッテリユニット１５と、複数のディスクドライブ２６とがそれぞれ着脱可能に設けられている。増設筐体１２には、複数のディスクドライブ２６と、複数の電源ユニット１４及び複数のバッテリユニット１５が着脱可能に設けられている。また、基本筐体１１及び各増設筐体１２には、複数の冷却ファン１６もそれぞれ設けられている。
【００４８】
制御パッケージ１３は、後述するチャネルアダプタ（以下、CHA）２１、ディスクアダプタ（以下、DKA）２２及びキャッシュメモリ２３等をそれぞれ実現するためのモジュールである。即ち、基本筐体１１には、複数のCHAパッケージ、複数のDKAパッケージ及び１つ以上のメモリパッケージがそれぞれ着脱可能に設けられ、パッケージ単位で交換可能となっている。
【００４９】
図３は、ディスクアレイ装置１０の全体概要を示すブロック図である。ディスクアレイ装置１０は、通信ネットワークＣＮ２を介して、複数のホストコンピュータ３０と双方向通信可能にそれぞれ接続可能である。
【００５０】
通信ネットワークＣＮ２は、例えば、LAN、SAN（Storage Area Network）、インターネットあるいは専用回線等である。LANを用いる場合、ホストコンピュータ３０とディスクアレイ装置１０との間のデータ転送は、TCP/IPに従って行われる。ＳＡＮを用いる場合、ホストコンピュータ３０とディスクアレイ装置１０とは、ファイバチャネルプロトコルに従ってデータ転送を行う。また、ホストコンピュータ３０がメインフレームの場合は、例えば、FICON（Fibre Connection：登録商標）、ESCON（Enterprise System Connection：登録商標）、ACONARC（Advanced Connection Architecture：登録商標）、FIBARC（Fibre Connection Architecture：登録商標）等の通信プロトコルに従ってデータ転送が行われる。
【００５１】
各ホストコンピュータ３０は、例えば、サーバ、パーソナルコンピュータ、ワークステーション、メインフレーム等として実現されるものである。例えば、各ホストコンピュータ３０は、図外に位置する複数のクライアント端末と別の通信ネットワークを介して接続されている。各ホストコンピュータ３０は、例えば、各クライアント端末からの要求に応じて、ディスクアレイ装置１０にデータの読み書きを行うことにより、各クライアント端末へのサービスを提供する。
【００５２】
各CHA２１は、各ホストコンピュータ３０との間のデータ転送を制御するもので、通信ポート２１Ａを備えている。ディスクアレイ装置１０には、例えば３２個のCHA２１を設けることができる。CHA２１は、例えば、オープン系用CHA、メインフレーム系用CHA等のように、ホストコンピュータ３０の種類に応じて用意される。
【００５３】
各CHA２１は、それぞれに接続されたホストコンピュータ３０から、データの読み書きを要求するコマンド及びデータを受信し、ホストコンピュータ３０から受信したコマンドに従って動作する。
【００５４】
DKA２２の動作も含めて先に説明すると、CHA２１は、ホストコンピュータ３０からリードコマンドを受信すると、このリードコマンドを共有メモリ２４に記憶させる。DKA２２は、共有メモリ２４を随時参照しており、未処理のリードコマンドを発見すると、ディスクドライブ２６からデータを読み出して、キャッシュメモリ２３に記憶させる。CHA２１は、キャッシュメモリ２３に移されたデータを読み出し、ホストコンピュータ３０に送信する。
【００５５】
一方、CHA２１は、ホストコンピュータ３０からライトコマンドを受信すると、このライトコマンドを共有メモリ２４に記憶させる。また、CHA２１は、受信したデータ（ユーザデータ）をキャッシュメモリ２３に記憶させる。CHA２１は、キャッシュメモリ２３にデータを記憶した後、ホストコンピュータ３０に書込み完了を報告する。DKA２２は、共有メモリ２４に記憶されたライトコマンドに従って、キャッシュメモリ２３に記憶されたデータを読出し、所定のディスクドライブ２６に記憶させる。
【００５６】
各DKA２２は、ディスクアレイ装置１０内に例えば４個や８個等のように複数個設けることができる。各DKA２２は、各ディスクドライブ２６との間のデータ通信をそれぞれ制御する。各DKA２２と各ディスクドライブ２６とは、例えば、ＳＡＮ等の通信ネットワークＣＮ５を介して接続されており、ファイバチャネルプロトコルに従ってブロック単位のデータ転送を行う。各DKA２２は、ディスクドライブ２６の状態を随時監視しており、この監視結果は、内部ネットワークＣＮ４を介して、SVP２８に送信される。
【００５７】
各CHA２１及び各DKA２２は、例えば、プロセッサやメモリ等が実装されたプリント基板と、メモリに格納された制御プログラム（いずれも不図示）とをそれぞれ備えており、これらのハードウェアとソフトウェアとの協働作業によって、それぞれ所定の機能を実現するようになっている。各CHA２１，各DKA２２にそれぞれ設けられる制御プログラムは、ディスクアレイ装置１０の全体動作を制御するものであり、バージョンアップの主要な対象となっている。なお、このほかに、SVP２８に搭載されるプログラムや共有メモリ２４に記憶される構成定義ファイル等もバージョンアップの対象となる。
【００５８】
キャッシュメモリ２３は、例えば、ユーザデータ等を記憶するものである。キャッシュメモリ２３は、例えば不揮発メモリから構成される。
【００５９】
共有メモリ（あるいは制御メモリ）２４は、例えば不揮発メモリから構成される。共有メモリ２４には、例えば、制御情報や管理情報等が記憶される。これらの制御情報等の情報は、複数の共有メモリ２４により多重管理することができる。共有メモリ２４及びキャッシュメモリ２３は、それぞれ複数個設けることができる。また、同一のメモリ基板にキャッシュメモリ２３と共有メモリ２４とを混在させて実装することもできる。あるいは、メモリの一部をキャッシュ領域として使用し、他の一部を制御領域として使用することもできる。
【００６０】
スイッチ部２５は、各CHA２１と、各DKA２２と、キャッシュメモリ２３と、共有メモリ２４とをそれぞれ接続するものである。これにより、全てのCHA２１，DKA２２は、キャッシュメモリ２３及び共有メモリ２４にそれぞれアクセス可能である。スイッチ部２５は、例えば超高速クロスバスイッチ等として構成することができる。
【００６１】
ディスクアレイ装置１０は、多数のディスクドライブ２６を実装可能である。各ディスクドライブ２６は、例えば、ハードディスクドライブ（ＨＤＤ）や半導体メモリ装置等として実現することができる。
【００６２】
ディスクドライブ２６は、物理的な記憶デバイスである。RAID構成等によっても相違するが、例えば、４個１組のディスクドライブ２６が提供する物理的な記憶領域上には、仮想的な論理領域であるRAIDグループ２７が構築される。さらに、RAIDグループ２７上には、仮想的な論理デバイス（LU：Logigal Unit）を１つ以上設定可能である。
【００６３】
なお、ディスクアレイ装置１０により使用される記憶資源は、全てディスクアレイ装置１０内に設けられている必要はない。ディスクアレイ装置１０は、ディスクアレイ装置１０の外部に存在する記憶資源を、あたかも自己の記憶資源であるかのように取り込んで、利用することもできる。
【００６４】
サービスプロセッサ（SVP）２８は、LAN等の内部ネットワークＣＮ４を介して、各CHA２１及び各DKA２２とそれぞれ接続されている。また、SVP２８は、LAN等の通信ネットワークＣＮ３を介して、複数の管理端末３１に接続可能である。SVP２８は、ディスクアレイ装置１０内部の各種状態を収集し、管理端末３１に提供する。
【００６５】
図４は、図１中に示すバージョン系列管理システムの概略ブロック図である。クライアント１，２には、それぞれウェブヴラウザ１００が設けられている。サーバ３には、ディスクアレイ装置１０のバージョン系列を管理するためのバージョン管理プログラム２００が設けられている。記憶装置４には、変更元バージョン管理テーブルＴ１と、プログラム変更項目適用管理テーブルＴ２と、プログラム変更項目管理テーブルＴ３とが、互いに関連付けられて記憶されている。
【００６６】
各クライアント１，２は、ウェブヴラウザ１００を介してサーバ３にアクセスし、比較を希望する複数のプログラムバージョンを入力する。バージョン管理プログラム２００は、クライアント１，２から入力された複数のプログラムバージョンに基づいて、各テーブルＴ１〜Ｔ３を参照し、指定されたバージョン間の比較結果を求める。比較結果は、サーバ３からウェブヴラウザ１００に送信され、ウェブヴラウザ１００に表示される。
【００６７】
図５は、ディスクアレイ装置１０用の制御プログラム生成方法を簡略化して示す模式図である。ソースプログラムＳＰには、例えば、CHA２１のみに適用されるコード群ＳＰ１と、DKA２２のみに適用されるコード群ＳＰ２と、CHA２１及びDKA２２の両方に共通して適用されるコード群ＳＰ３とが含まれている。CHA２１とDKA２２とは、機能上共通部分が多い。そこで、ソースプログラムＳＰは、共通するコード群ＳＰ３をベースに、CHA専用コード群ＳＰ１及びDKA専用コード群ＳＰ２を加えて構成される。
【００６８】
簡略化して説明すれば、ソースプログラムＳＰをコンパイルするときに、コンパイルスイッチにより、CHA用の制御プログラムを生成するのか、あるいは、DKA用の制御プログラムを生成するのか、いずれかを指定する。
【００６９】
図６は、バージョン系列管理システムのブロック図である。この管理システムは、バージョン指定部２０１と、バージョン分岐点取得部２０２と、全バージョン取得部２０３と、全プログラム変更項目取得部２０４と、相違項目・共通項目抽出部２０５と、諸情報追加部２０６と、出力部２０７と、バージョン管理情報登録部２０８とを備えて構成することができる。これら各機能２０１〜２０８は、サーバ３側に設けることもできるし、一部をクライアント１，２側に設けることもできる。あるいは、クライアント１，２上で実行されるプログラムとサーバ３上で実行されるプログラムとの協働作業として機能を実現することもできる。
【００７０】
バージョン指定部２０１は、比較対象となる任意の複数のプログラムバージョンを指定するためのものである。バージョンの指定方法は、さらに後述する。作業者等のユーザは、任意の時点のバージョンを自由に選択することができる。本実施例では、指定バージョンが属する各バージョン系列が、過去のいずれかの時点で交叉していることを前提条件とする。なお、以下の説明では、２つのバージョンを指定して比較する場合を説明するが、本発明は、３つ以上のバージョンを指定して比較する場合にも適用可能である。
【００７１】
バージョン分岐点取得部２０２は、変更元バージョン管理テーブルＴ１を参照することにより、指定された各バージョンの分岐点を検出して取得する。図７に示すように、変更元バージョン管理テーブルＴ１には、各バージョン番号毎に、それぞれの変更元バージョンが対応付けられている。
【００７２】
従って、指定バージョンの番号を検索キーとして、変更元バージョン管理テーブルＴ１を検索すれば、その指定バージョンの基となった変更元バージョン（１世代前のバージョン）を検出することができる。さらに、その変更元バージョンの番号を検索キーとして、変更元バージョン管理テーブルＴ１を検索すれば、２世代前のバージョンを検出することができる。このようにして、順次世代を遡って探索することができる。指定された各バージョンのそれぞれについて世代を遡り、両者に共通するバージョン番号が検出された場合、その共通するバージョンが、分岐点バージョンとして取得される。図１に示す例では、指定バージョンが「Ver.21」と「Ver.21A」の場合、「Ver.11」が分岐点となるバージョンである。
【００７３】
全バージョン取得部２０３は、変更元バージョン管理テーブルＴ１を参照し、分岐点バージョンと各指定バージョンとの間に存在する全てのバージョンをそれぞれ取得する。上記の例では、分岐点バージョン「Ver.11」と一方の指定バージョン「Ver.21」との間に、バージョン「Ver.20」が存在する。同様に、分岐点バージョン「Ver.11」と他方の指定バージョン「Ver.21A」との間には、バージョン「Ver.20A」が存在する。全バージョン取得部２０３は、「Ver.20」と「Ver.20A」と「Ver.21」と「Ver.21A」とを、分岐点バージョンと各指定バージョンとの間に存在するバージョンとして検出する。
【００７４】
全プログラム変更項目取得部２０４は、プログラム変更項目適用管理テーブルＴ２を参照することにより、分岐点バージョンから各指定バージョンに至るまでの間に実施された全てのプログラム変更項目を取得する。プログラム変更項目適用管理テーブルＴ２には、図８に示すように、各プログラム変更項目の番号（項目識別情報）と、各プログラム変更項目が適用されたプログラムバージョンの番号（バージョン識別情報）とが対応付けられている。従って、分岐点バージョンから各指定バージョンまでの全バージョンについて、プログラム変更項目適用管理テーブルＴ２を参照することにより、分岐点バージョンから各指定バージョンに至るまでの間に実施された全てのプログラム変更項目及びその適用先を取得することができる。上記の例では、プログラム変更項目Ｐ２〜Ｐ４が取得される。全バージョン取得部２０３及び全プログラム変更項目取得部２０４により、プログラム更新履歴取得部が構成される。
【００７５】
相違項目・共通項目抽出部２０５は、分岐点バージョンから一方の指定バージョンに至るまでの間に実施されたプログラム変更項目と、分岐点バージョンから他方の指定バージョンに至るまでの間に実施されたプログラム変更項目とを比較する。これにより、相違項目・共通項目抽出部２０５は、いずれか一方の指定バージョンにのみ反映済みのプログラム変更項目と、両方の指定バージョンに共通して反映されているプログラム変更項目とを、抽出する。相違項目・共通項目抽出部２０５は、例えば、リレーショナルデータベースが備えている外部連結機能を利用することにより、実現することができる。なお、相違項目・共通項目抽出部２０５は、比較部と呼ぶこともできる。
【００７６】
プログラム変更項目諸情報追加部２０６は、プログラム変更項目管理テーブルＴ３を参照することにより、前記抽出結果に他の情報を付加する。プログラム変更項目管理テーブルＴ３は、図９に示すように、例えば、各プログラム変更項目の番号毎に、変更の件名、変更理由、変更方式（具体的対策内容）、変更者、変更日、発生現象（変更理由が不具合等の場合）、発生原因、発生条件、変更の重要度等を対応付けて管理している。抽出結果に付加する情報は、プログラム変更項目管理テーブルＴ３に登録されている情報の中から選択可能である。なお、全ての情報を付加可能に構成してもよいし、一部の情報のみを付加可能とする構成でもよい。
【００７７】
出力部２０７は、プログラム変更項目の相違点及び共通点に諸情報を追加して形成された出力結果Ｌ１を出力させるものである。出力結果Ｌ１は、例えば、クライアント１，２のウェブヴラウザ１００上に画像や文字として表示される。なお、例えば、合成音声による出力を加えてもよい。
【００７８】
バージョン管理情報登録部２０８は、バージョンアップやプログラム変更項目に関する情報を記憶装置４に登録するためのものである。バージョン管理情報登録部２０８を介して記憶装置４に入力された情報は、所定の管理テーブルＴ１〜Ｔ３に記憶される。
【００７９】
図１０は、プログラム変更項目を記憶装置４に登録するための処理を示すフローチャートである。この処理は、バージョン管理情報登録部２０８を介して行われる。
【００８０】
バージョンアップ作業に際して、作業者は、まずウェブヴラウザ１００を介してサーバ３にログインし、プログラム変更項目入力画面を呼び出す（Ｓ１）。プログラム変更項目入力画面Ｇ１の概略を図１１に示す。
【００８１】
プログラム変更項目入力画面Ｇ１には、例えば、Ｇ１０〜Ｇ１８の複数の入力部を表示可能である。変更項目番号入力部Ｇ１０には、プログラム変更項目の番号を入力する。変更の重要度入力部Ｇ１１には、そのプログラム変更項目の重要度を例えばＡＢＣ評価や十段階評価等のようにランク分けして入力する。変更項目件名入力部Ｇ１２には、そのプログラム変更の簡単な名称を入力する。変更者入力部Ｇ１３には、そのプログラム変更項目を担当する作業者の氏名を入力する。変更理由入力部Ｇ１４には、そのプログラム変更を行う理由を入力する。発生現象入力部Ｇ１５には、そのプログラム変更が不具合対策等のために行われる場合に、変更の原因となった不具合の発生現象を入力する。発生原因入力部Ｇ１６には、不具合等の発生原因を入力する。発生条件入力部Ｇ１７には、不具合等が発生する条件を入力する。変更方式入力部Ｇ１８には、どの機種のどの部分をどのように変更するか等のように、プログラム変更項目の具体的な内容を入力する。各入力部Ｇ１０〜Ｇ１８には、作業者が自由に文字を入力できるように構成してもよいし、変更の重要度入力部Ｇ１１のような一部の入力部については、予め用意された中から選択するように構成してもよい。
【００８２】
また、プログラム変更項目入力画面Ｇ１の下部には、実施状況表示部Ｇ１９が表示されている。実施状況表示部Ｇ１９には、例えば、そのプログラム変更項目が実施済のバージョン、未実施のバージョン、実施の必要がないバージョン等のように、プログラム変更項目の適用の可否、適用の有無を表示させることができる。
【００８３】
図１０に戻る。作業者は、プログラム変更項目入力画面Ｇ１に、プログラム変更項目に関する所定の情報をそれぞれ入力する（Ｓ２）。入力された情報は、プログラム変更項目管理テーブルＴ３に記憶される（Ｓ３）。
【００８４】
次に、作業者は、プログラム変更項目適用先指定画面Ｇ２を呼び出し（Ｓ４）、プログラム変更項目を適用しようとするプログラムバージョンを指定する（Ｓ５）。プログラム変更項目適用先指定画面Ｇ２の一例を図１２に示す。適用先指定画面Ｇ２には、例えば、複数の表示部Ｇ２０，Ｇ２１と、複数の入力部Ｇ２２とを設けることができる。
【００８５】
変更項目番号表示部Ｇ２０には、プログラム変更項目の番号が表示される。件名表示部Ｇ２１には、プログラム変更項目の件名が表示される。適用先入力部Ｇ２２には、各バージョン系列が表示されている。作業者は、各プログラム変更項目のそれぞれについて、そのプログラム変更項目の適用先バージョンまたは適用不要のいずれかを指定することができる。
【００８６】
図１０に戻る。作業者が、プログラム変更項目の適用先または適用不要について指定すると（Ｓ５）、この指定は、未確定情報としてプログラム変更項目適用管理テーブルＴ２に記憶される（Ｓ６）。作業者による適用先の指定の有無を未確定として扱うのは、管理者の承認を得ていないためである。例えば、そのプログラム変更項目が適用可能か否か検証されていない場合や、そのバージョンのディスクアレイ装置１０を使用している顧客からの承諾が得られていない場合等には、作業者による適用先の指定が、管理者によって拒否または保留される。
【００８７】
管理者は、クライアント２を介してサーバにログインし、プログラム変更項目適用先確認画面Ｇ３を呼び出す（Ｓ７）。管理者は、選択されたバージョンへのプログラム変更項目の適用の可否を決定し、承認を与える（Ｓ８）。管理者が承認しない場合（S8：NO）、作業者は、そのプログラム変更項目の適用先等を修正することができる。管理者が、プログラム変更項目の適用について承認を与えた場合（S8：YES）、プログラム変更項目適用管理テーブルＴ２内の未確定情報が確定情報に変更される（Ｓ９）。
【００８８】
プログラム変更項目適用先確認画面Ｇ３の一例を図１３に示す。この確認画面Ｇ３には、複数の表示部Ｇ３０〜Ｇ３２と、複数の入力部Ｇ３３とを設けることができる。適用先バージョン情報表示部Ｇ３０には、例えば、プログラム変更項目の適用が要請されているバージョンについて、バージョン系列、変更元バージョン番号、プログラム変更項目適用後のバージョン番号等が表示される。変更項目番号表示部Ｇ３１には、プログラム変更項目の番号が表示される。また、件名表示部Ｇ３２には、プログラム変更項目の件名が表示される。適用確認入力部Ｇ３３には、例えば、プログラム変更項目の適用を許可する「適用確認」と、適用を却下する「却下」と、適用を保留させる「保留」との３つの状態が表示されている。そして、各状態の先頭には、その状態を選択するためのボタンがそれぞれ表示されている。図中の「◎」印は、その状態が選択されていることを示す。図中「○」印は、その状態が選択されていないことを示す。以下に述べる例も同様である。
【００８９】
図１４は、プログラム変更管理処理を示すフローチャートである。まず、作業者や管理者等のユーザは、サーバ３にアクセスしてログインし、比較対象バージョン指定画面Ｇ４を呼び出して、比較を希望する２つのバージョンをそれぞれ指定する（Ｓ１０）。１つ目に指定されたバージョンの番号は、一時的データＤ１に記憶される。２つ目に指定されたバージョンの番号は、一時的データＤ２に記憶される。各指定バージョンの番号を記憶する一時的データＤ１，Ｄ２は、それぞれ所定のステップで利用されるが、図１４では、説明の便宜上、利用されるステップへの矢印を省略している。なお、図１４中に示すＤ１〜Ｄ９は、それぞれ一時的に記憶される情報であり、例えば、サーバ３のローカルメモリに記憶される。
【００９０】
比較対象バージョン指定画面Ｇ４の一例を図１５に示す。この指定画面Ｇ４には、例えば、１つ目の比較対象バージョン選択部Ｇ４１と、２つ目の比較対象バージョン選択部Ｇ４２と、出力項目オプション選択部Ｇ４５とが表示される。
【００９１】
各比較対象バージョン選択部Ｇ４１，Ｇ４２には、バージョン系列選択部Ｇ４３と、バージョン番号選択部Ｇ４４とがそれぞれ設けられている。バージョン系列選択部Ｇ４３には、各バージョン系列が表示されており、ユーザは、その中からいずれか１つのバージョン系列を選択することができる。バージョン系列が選択されると、その選択されたバージョン系列に属する各バージョンの番号がバージョン番号選択部Ｇ４４に表示される。ユーザは、バージョン番号選択部Ｇ４４を操作することにより、所望のバージョン番号をいずれか１つ選択することができる。このように、個別の各バージョン番号を階層化して表示することにより、バージョン数が膨大な場合でも、効率的に所望のバージョン番号を選択できるようになっている。なお、図１５に示す例では、１つ目の指定バージョンとして、バージョン系列Ｖ２に属する「Ver.21」が選択されている。また、２つ目の指定バージョンとして、バージョン系列Ｖ２Ａに属する「Ver.21A」が選択されている。
【００９２】
出力項目オプション選択部Ｇ４５は、図６中に示す諸情報追加部２０６に対応する。ユーザは、出力項目オプション選択部Ｇ４５に表示されている項目の中から、出力結果Ｌ１に加える項目を自由に複数選択することができる。図１５に示す例では、「変更の重要度」、「変更者」及び「変更方式」が選択されている。なお、図１５に示す以外の他の情報を選択可能な構成としてもよい。例えば、ユーザの記入したコメント等を出力結果Ｌ１に付加させることもできる。
【００９３】
図１４に戻る。ユーザによって２つのバージョンがそれぞれ指定されると（Ｓ１０）、サーバ３（バージョン管理プログラム２００）は、変更元バージョン管理テーブルＴ１を参照することにより、指定された２つのバージョンが最初に分岐した分岐点のバージョンを検出する（Ｓ１１）。この検出された分岐点バージョンは、データＤ３として一時的に記憶される。
【００９４】
サーバ３は、変更元バージョン管理テーブルＴ１を参照し、１つ目の指定バージョンと分岐点バージョンとの間に存在する全てのバージョン番号を検出する（Ｓ１２）。検出結果は、「バージョン一覧表１」データＤ４として一時的に記憶される。同様に、サーバ３は、１つ目の指定バージョンと分岐点バージョンとの間に存在する全てのバージョン番号を検出する（Ｓ１３）。検出結果は、「バージョン一覧表２」データＤ５として一時的に記憶される。
【００９５】
サーバ３は、一覧表データＤ４及び変更項目適用管理テーブルＴ２を参照することにより、分岐点バージョンから１つ目の指定バージョンに至るまでの間に適用された全てのプログラム変更項目を検出する（Ｓ１４）。この検出結果は、「変更項目一覧表１」データＤ６として一時的に記憶される。同様に、サーバ３は、一覧表データＤ５及び変更項目適用管理テーブルＴ２を参照して、分岐点バージョンから２つ目の指定バージョンに至るまでの間に適用された全てのプログラム変更項目を検出する（Ｓ１５）。この検出結果は、「変更項目一覧表２」データＤ７として一時的に記憶される。このように、Ｓ１４，Ｓ１５では、分岐点バージョンから発展した各指定バージョンについて、どのようなプログラム変更項目が適用されているかをそれぞれ検出している。
【００９６】
サーバ３は、変更項目一覧表データＤ６，Ｄ７を照合することにより、１つ目の指定バージョンに適用されているプログラム変更項目と２つ目の指定バージョンに適用されているプログラム変更項目のうち、両者に共通するプログラム変更項目といずれか一方のみに適用されているプログラム変更項目とをそれぞれ検出する（Ｓ１６）。この検出結果は、「相違項目・共通項目一覧表」データＤ８（比較結果表データＤ８とも呼ぶ）として一時的に記憶される。
【００９７】
サーバ３は、比較結果表データＤ８に付加すべき情報をプログラム変更項目管理テーブルＴ３から読み出して、比較結果表データＤ８に加える（Ｓ１７）。比較結果表データＤ８に諸情報が付加された結果は、結果表データＤ９として一時的に記憶される。
【００９８】
サーバ３は、結果表データＤ９に含まれる情報を所定のレイアウトに配置し、出力結果Ｌ１を出力する（Ｓ１８）。
【００９９】
図１６には、変更項目一覧表データＤ６，Ｄ７に基づいて、比較結果表データＤ８を得る様子が模式的に示されている。図１６（ａ）に示す変更項目一覧表データＤ６には、１つ目の指定バージョン「Ver.21」に適用されたプログラム変更項目Ｐ２，Ｐ４が示されている。同様に、図１６（ｂ）に示す変更項目一覧表データＤ７には、２つ目の指定バージョン「Ver.21A」に適用されたプログラム変更項目Ｐ３，Ｐ４が示されている。
【０１００】
従って、この両者Ｄ６，Ｄ７を照合することにより、１６（ｃ）に示すように、いずれか１の指定バージョンのみに適用されている相違項目と、各指定バージョンの両方に適用されている共通項目とを把握することができる。図中では、各プログラム変更項目の番号毎に、適用済バージョンの番号が示されている。未だ適用されていないプログラム変更項目の場合は、NULLデータが記憶されている。例えば、図１６に示す例では、プログラム変更項目Ｐ２は、１つ目の指定バージョン「Ver.20」のみに適用され、プログラム変更項目Ｐ３は、２つ目の指定バージョン「Ver.20A」のみに適用され、プログラム変更項目Ｐ４は、各指定バージョン「Ver.20」及び「Ver.20A」の両方に適用されている状態が示されている。
【０１０１】
図１７は、出力結果Ｌ１の出力例を示す比較結果出力画面Ｇ５の説明図である。比較結果出力画面Ｇ５には、例えば、複数の表示部Ｇ５０〜Ｇ５６を設けることができる。第１の指定バージョン表示部Ｇ５０には、プログラム変更項目が適用されている場合、１つ目の指定バージョンが表示される。第２の指定バージョン表示部Ｇ５１には、プログラム変更項目が適用されている場合、２つ目の指定バージョンが表示される。プログラム変更項目が適用されていない場合は、「−」が表示される。変更項目番号表示部Ｇ５２には、比較の結果検出された全てのプログラム変更項目が表示される。
【０１０２】
件名表示部Ｇ５３には、各プログラム変更項目の件名が表示される。重要度表示部Ｇ５４には、各プログラム変更項目の重要度が表示される。変更者表示部Ｇ５５には、各プログラム変更項目の変更者氏名が表示される。変更方式表示部Ｇ５６には、各プログラム変更項目の変更方式が表示される。
【０１０３】
この比較結果出力画面Ｇ５（出力結果Ｌ１）を参照することにより、ユーザは、各指定バージョンのプログラム更新履歴を容易に把握することができる。また、これに加えて、ユーザは、どのプログラム変更項目が未だ適用されていないか、どのプログラム変更項目が既に適用されているかを確認することができる。
【０１０４】
本実施例は上述のように構成されるので、以下の効果を奏する。各バージョン系列のバージョン管理情報を一元的に管理し、指定したバージョンのプログラム更新履歴をそれぞれ取得して比較可能な構成とした。従って、ユーザは、指定したバージョンのプログラム更新履歴を容易に把握することができ、プログラム開発に役立てることができる。
【０１０５】
本実施例では、指定された各バージョンのプログラム更新履歴を照合し、それぞれのプログラム変更項目の相違点・共通点を検出する構成とした。従って、２つのバージョンに共通して適用すべきプログラム変更項目の存在をユーザに喚起することができ、プログラム変更項目の適用忘れを低減して、プログラムの品質向上を図ることができる。
【０１０６】
本実施例では、指定された各バージョンの分岐点を変更元バージョン管理テーブルＴ１に基づいて自動的に検出する構成とした。従って、分岐点の選択に関して人為的ミスが発生する可能性を抑制することができ、バージョン系列管理システムの信頼性を高めることができる。
【０１０７】
本実施例では、指定された各バージョンに共通の祖先となるバージョンが検出されるまで、変更元バージョン管理テーブルＴ１を遡って分岐点を検出する構成とした。従って、指定された各バージョンが、例えば、直系と傍系のように、直接的または間接的に直系の関係に無い場合であっても、使用することができる。
【実施例２】
【０１０８】
図１８〜図１９に基づいて、本発明の第２実施例を説明する。本実施例は、第１実施例の変形例に位置づけることができる。本実施例の特徴は、指定された複数のバージョンの最古のバージョンを検出する点にある。
【０１０９】
図１８は、本実施例によるバージョン系列管理システムのブロック図である。この管理システムは、第１実施例と同様に、バージョン指定部２１１と、最古バージョン取得部２１２と、全バージョン取得部２１３と、全プログラム変更項目取得部２１４と、相違項目・共通項目抽出部２１５と、諸情報追加部２１６と、出力部２１７と、バージョン管理情報登録部２１８とを備えて構成することができる。
【０１１０】
これらの各部２１１〜２１８は、図６と共に述べた各部２０１〜２０８にそれぞれ対応しており、同様の機能を実現するので、重複した説明を割愛する。
【０１１１】
本実施例が第１実施例と最も異なる点は、最古バージョン取得部２１２にある。最古バージョン取得部２１２は、ユーザによって指定された各バージョンについて、それぞれの最古のバージョンを検出するものである。
【０１１２】
図１９に示すように、「比較対象１」で示された第１の指定バージョン「Ver.21」と、「比較対象２」で示された第２の指定バージョン「Ver.40」とは、分岐点バージョン「Ver.10」から分岐してそれぞれ改良を重ねてきたものである。
【０１１３】
第１実施例では、共通のバージョン「Ver.10」にそれぞれ到達するまで、指定された各バージョンの世代を遡りながらバージョンの照合を行う。従って、管理すべき世代数が多くなればなるほど、分岐点バージョンの検出に要するコスト（処理負荷、処理時間）が増加する。
【０１１４】
そこで、本実施例では、分岐点の検出を行うのではなく、指定された各バージョンのそれぞれについて、最古のバージョンを検出する構成とした。図１９に示す例では、第１の指定バージョンの最古のバージョンは、「Ver.01」である。また、第２の指定バージョンの最古のバージョンも「Ver.01」である。このように、直近の分岐点を探索するのではなく、それぞれの指定バージョンについて最古のバージョンまで遡り、最古のバージョンから各指定バージョンまでに行われた全てのプログラム変更項目の実施履歴をそれぞれ検出する。従って、場合によっては、最新の分岐点バージョンを検出するためのコストよりも、検出コストを低下させることができる。これにより、サーバ３の負担を低減し、管理システムの応答性を高めることができる。
【０１１５】
本実施例は、指定された各バージョンが共通の最古バージョンを有する場合以外に、それぞれ全く異なる最古バージョンから発展している場合にも適用可能である。
【０１１６】
図２０に示すように、ディスクアレイ装置１０Ａと、ディスクアレイ装置１０Ｂとは、例えば、高性能版ディスクアレイ装置と普及版ディスクアレイ装置、大型ディスクアレイ装置と小型ディスクアレイ装置等のように、その目的や使用方法が異なる別の製品同士であるとする。
【０１１７】
そして、第１の指定バージョンとして、ディスクアレイ装置１０Ａの「Ver.21」を指定し、第２の指定バージョンとして、ディスクアレイ装置１０Ｂの「Ver.40」を指定したとする。この場合、両バージョン系列は、その最初から異なるため、共通のバージョンを有さない。第１の指定バージョンの最古バージョンとして「Ver.01」が検出され、第２の指定バージョンの最古バージョンとして「Ver.3」が検出される。この場合も、各指定バージョン毎に、最古バージョンから指定バージョンに至るまでの間に実行された全てのプログラム変更項目がそれぞれ取得され、各プログラム変更項目群同士が比較される。
【０１１８】
各指定バージョンがそれぞれ全く異なるバージョン系列に属する場合でも、各指定バージョンに同様のプログラム変更項目を適用しなければならないこともある。例えば、ディスクアレイ装置１０Ａとディスクアレイ装置１０Ｂとで、製品コストを低減するために共通の部品が使用されており、その共通部品の制御プログラムに軽微な不具合等が発見されたような場合である。また、例えば、制御プログラムのバージョンに依存しないコンピュータウィルスの場合も、異なる製品系列間で共通の対策を施す必要がある。このような場合に、本実施例は有効に作用する。
【０１１９】
共通の最古バージョンが何らかの理由で失われたり、利用できないような場合も、図２０に示すのと同様に、各指定バージョンでそれぞれ遡及可能な限界バージョンが最古バージョンとして検出される。このような場合は、共通の最古バージョンから開発されていても、それぞれ全く異なる最古バージョンが検出される。
【０１２０】
本実施例では、指定された各バージョン同士が直接的または間接的に直系関係にある場合に限らず、指定バージョン同士が共通の最古バージョンを有する直系と傍系の関係にある場合、それぞれ固有の最古バージョンを有する全く別系統のバージョン系列に属する場合のいずれの場合にも適用することができる。
【０１２１】
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
【図面の簡単な説明】
【０１２２】
【図１】本発明の実施例に係わるディスクアレイ装置のバージョン系列管理システムの全体構成を示す説明図である。
【図２】ディスクアレイ装置の外観図である。
【図３】ディスクアレイ装置の論理的な概略構成を示すブロック図である。
【図４】バージョン系列管理システムの概略ブロック図である。
【図５】CHA用とDKA用のプログラムが共通のソースプログラムから生成される様子を示す説明図である。
【図６】バージョン系列管理システムの機能ブロック図である。
【図７】変更元バージョン管理テーブルの概略構造を示す説明図である。
【図８】プログラム変更項目適用管理テーブルの概略構造を示す説明図である。
【図９】プログラム変更項目管理テーブルの概略構造を示す説明図である。
【図１０】プログラム変更項目を登録する場合の処理概要を示すフローチャートである。
【図１１】プログラム変更項目入力画面を示す説明図である。
【図１２】プログラム変更項目の適用先指定画面を示す説明図である。
【図１３】プログラム変更項目の適用先確認画面を示す説明図である。
【図１４】プログラム変更管理処理の概要を示すフローチャートである。
【図１５】比較対象バージョン指定画面を示す説明図である。
【図１６】プログラム変更項目の相違点及び共通点を検出するために、異なるテーブルを連結させる様子を示す説明図である。
【図１７】比較結果出力画面を示す説明図である。
【図１８】第２実施例に係るバージョン系列管理システムの機能ブロック図である。
【図１９】共通する最古のバージョンまで遡る様子を示すバージョン系統図である。
【図２０】それぞれ異なる最古のバージョンまで遡る様子を示すバージョン系統図である。
【符号の説明】
【０１２３】
１，２…クライアント、３…サーバ、４…記憶装置、１０，１０Ａ，１０Ｂ…ディスクアレイ装置、１１…基本筐体、１２…増設筐体、１３…制御パッケージ、１４…電源ユニット、１５…バッテリユニット、１６…冷却ファン、２１…チャネルアダプタ、２１Ａ…通信ポート、２２…ディスクアダプタ、２３…キャッシュメモリ、２４…共有メモリ、２５…スイッチ部、２６…ディスクドライブ、２７…RAIDグループ、３０…ホストコンピュータ、３１…管理端末、１００…ウェブヴラウザ、２００…バージョン管理プログラム、２０１，２１１…バージョン指定部、２０２…バージョン分岐点取得部、２０３，２１３…全バージョン取得部、２０４，２１４…全プログラム変更項目取得部、２０５，２１５…相違項目・共通項目抽出部、２０６，２１６…プログラム変更項目諸情報追加部、２０７，２１７…出力部、２０８，２１８…バージョン管理情報登録部、２１２…最古バージョン取得部、ＣＮ１〜ＣＮ５…通信ネットワーク、Ｄ１〜Ｄ９…一時的情報、Ｐ１〜Ｐ４…プログラム変更項目、Ｔ１…変更元バージョン管理テーブル、Ｔ２…プログラム変更項目適用管理テーブル、Ｔ３…プログラム変更項目管理テーブル、Ｖ２，Ｖ２Ａ…バージョン系列
【図１】
2005258709.tif 000003
【図２】
2005258709.tif 000004
【図３】
2005258709.tif 000005
【図４】
2005258709.tif 000006
【図５】
2005258709.tif 000007
【図６】
2005258709.tif 000008
【図７】
2005258709.tif 000009
【図８】
2005258709.tif 000010
【図９】
2005258709.tif 000011
【図１０】
2005258709.tif 000012
【図１１】
2005258709.tif 000013
【図１２】
2005258709.tif 000014
【図１３】
2005258709.tif 000015
【図１４】
2005258709.tif 000016
【図１５】
2005258709.tif 000017
【図１６】
2005258709.tif 000018
【図１７】
2005258709.tif 000019
【図１８】
2005258709.tif 000020
【図１９】
2005258709.tif 000021
【図２０】
2005258709.tif 000022