技術情報 - Revolve - Revolveを巨大なプロジェクトで利用する
歴史の長い情報システムでは、システムの規模はしばしば非常になります。何万本ものCOBOLプログラムを保守しつづけてきた企業にとって Revolve は適用可能なのでしょうか。Revolve の適用可能な規模の上限はどれほどでしょうか。ここではこのような疑問に回答します。
この質問にお答えするに当たって、以下のような観点から考える必要があります:
- Revolveの導入によって得られる投資効果
- Revolveの利用者の要求事項
- Revolveを稼動させる環境の技術的要件
- Revolveソフトウェアの物理的限界
Revolveの導入によって得られる投資効果
Micro Focus Revolveは、プログラマーが日々の保守作業の中で利用するための、アプリケーション理解を支援するツールです。ソースコードに変更を加える前に、対象アプリケーション中の重要な情報を、理解し、集積し、詳細化することを支援します。これによって、保守の作業品質を向上させることができます。システムの保守に伴う変更をより短期間で行うことができ、変更によるデグレードの危険を低減させ、その結果として、企業のビジネスをタイムリーに展開させることができます。従って Revolve の投資効果は、プログラマーのレベルでの生産性と品質の向上です。
Revolveの利用者の要求事項
Revolveを利用するに当たって、対象システムの全体をひとつの Revolveプロジェクトに含める必要があると判断される場合には注意が必要です。多くの場合、この要求事項は机上の検討から生まれるものであって、必ずしも現実に日々Revolve を使用するプログラマーにとって意味のある要求事項ではありません。
ほとんどの場合、プログラマーに割り当てられるシステムの保守案件とは、いくつかのモジュールやデータ項目の一覧があって、それをどのように変更しなければならないかという要求仕様です。一方、システム全体を Revolveプロジェクトに追加するという要求は、多くの場合、このようなプログラマーの作業を支援するためのものではなく、よりハイレベルな情報(ソースコードのステップカウント、ある資源が使用されているプログラムの一覧など)への要求から来ています。従って、このような場合ツールを導入することによってどのような投資効果を狙っているのかを再確認する必要があります。
Revolveを稼動させる環境の技術的要件
Revolveで巨大プロジェクトを構築する場合には、以下のことを考慮する必要があります:
- プロジェクト構築の所要時間を短縮するためには CPUはできる限り高速のものを使用する必要があります。
- Revolveの製品仕様としての上限があります。
- プロジェクトの規模が大きくなれば、それだけ Revolveの通常のオペレーションのレスポンスも悪化します。
- プロジェクトデータベースをネットワーク経由でアクセスする場合には、さらにレスポンスの悪化を招きます。
Revolveソフトウェアの物理的限界
Revolveの製品仕様上、ひとつのプロジェクトに含めることのできるコンポーネントの数の上限は 32,000 です。この数には COPYメンバーやカタログプロシージャなど、インクルードされるものは含みません。Micro Focusでは、現在のところこの上限を拡張する計画はありません。
巨大プロジェクト構築のためのガイドライン
Revolveプロジェクトの構築のための所要時間は、以下のようなさまざまな要因に依存しますので、一般的に事前予測する手段はありません。
- コンポーネントの本数
- 各コンポーネントの大きさ
- 各コンポーネントの複雑さ
- コンポーネントの種類。一般に COBOLプログラムを解析より、JCLの解析には時間がかかります。同じ行数であっても、JCLの多いプロジェクトの構築は時間がかかる傾向があります。
以下に、巨大プロジェクト構築に際しての注意事項・推奨事項をまとめます。
- Windows NTまたは 2000 の使用を推奨します。
- ソースコードをローカルドライブに置いた状態で作製してください。一旦構築されたプロジェクトをネットワーク経由でアクセスすることはそれほどのオーバーヘッドではありませんが、プロジェクトの構築時には、ネットワーク経由の利用は避けるべきです。
- 構築の所要時間を短縮するためにもっとも効果的なのはCPUスペックの向上です。
- Revolveの構文解析系はシングルスレッドで稼動しますので、CPU数を増やすことは意味がありません。
巨大プロジェクト構築の実測結果
参考のために、最近弊社で実施した Revolve による巨大プロジェクト構築のベンチマーク結果を示します。
| No. | 総行数 | コンポーネント総数 | マシンスペック | 所要時間 | |
|---|---|---|---|---|---|
| 1 | 4200万行 | 31,744 | XP 1.5GHz, 256Mb RAM | Source local, project local | 60 hours |
| 2 | 160万行 | 1,353 | NT 400MHz, 64Mb RAM | Source on LAN, project local | 40 minutes. |
| 3 | 3000万行 | 4,199 | NT 400MHz, 64Mb RAM | Source on LAN, project local | 43 hours |
| 4 | 140万行 | 13,519 | W2K 700MHz, 128Mb RAM | Source on LAN, project local | 5 hours |
| 5 | 800万行 | 10,285 | W2K 700MHz, 128Mb RAM | Source local, project local | 32.5 hours |
| 6 | 772,307 | 337 | NT 400MHz, 64Mb RAM | Source on LAN project on LAN | 20 minutes |