OpenVMS AXP
オペレーティング・システム
OpenVMS AXP オペレーティング・システムへの移行:システム移行の手引き


前へ 次へ 目次 索引



付録 B
移行計画の例

この付録に示す移行計画は,現実のアプリケーションに対する計画ではありませんが,お客様のアプリケーションのために作成した,実際の移行計画にもとづいています。

Migration Plan for Omega-1

Omega Corporation

B.1 エグゼクティブ・サマリ

Omega-1はデータのアクセス,分析,管理,および報告のための,企業全体を網羅する情報システムです。

Omega-1のソース・コードは400万行以上のサイズです。ソース・コードの大部分は Cプログラミング言語で作成されており,多彩なプラットフォームで共通に使用でき,移植性がかなり高いと考えられます。

しかし,Omega-1には各プラットフォーム固有のルーチンが含まれており,VAXプラットフォームを対象として,VAX CとVAX MACROで実現されています(この部分は約350,000行のコードです)。これらのルーチンは,付録 B.2.4 項 で説明するように,VAXアーキテクチャ固有の機能に依存する多くの問題を抱えており,移行を成功に導くために解決しなければなりません。これらの問題を解決するには,設計変更も含めて,かなり大量の作業が必要ですが,これらの問題があるからといって,1992年12月にOmega-1の顧客への納品が遅れることはないと考えられます。

Omega-1は,多くのDECプロダクトとサード・パーティ・プロダクトへの接続をサポートします。これらのプロダクトの一部は,OpenVMS AXPが最初に出荷される時点では,AXPプラットフォームで提供されませんが,Omega-1を供給する業者である Omega Corporationは,そのときまでに基本的なOmega-1を移行することを約束しています。

DECサービスは,この計画の詳細記述に従って,移行プロジェクトの最初から最後まで,Omega Corporationにサポート・サービスを提供します。Omega Corporationに提供されるサポート計画をまとめると,次のようになります。

もう1つの問題として,出荷日より前にプロダクトに対して適切なフィールド・テストを実行するために,Omegaにハードウェアを提供しなければならないという問題があります。通常,Omegaの開発者は実際にプロダクトを出荷する前に,30〜40ヵ所の顧客システムで4ヵ月間,フィルード・テストを行います。しかし,この規模のフィールド・テストを実行するために必要な台数のAXPシステムを入手できるかどうかが不明です。

B.2 技術分析

Omega CorporationはDECサービスと協力して技術分析を行いました。

B.2.1 アプリケーションの特性

Omega-1は大部分のVAXプラットフォーム,および他社のプラットフォームで実行されます。このアプリケーションは3つの層で構成されており,各層は,VAX環境の固有の機能を利用する場合も,利用しない場合もあります。しかし,特定のハードウェア構成や装置に対する直接的な依存はありません。

大部分の機能はアプリケーション層で提供され,この層にはユーザ・インターフェイス,基本的なデータ管理ツール,およびOmegaの第4世代言語(4GL)が含まれています。Omega-1の基本プロダクトは,DECまたはサード・パーティのレイヤード・プロダクトに依存しません。

Omega-1の追加プロダクトは,基本プロダクトを基礎にしたレイヤード・プロダクトであり,拡張されたデータ管理機能または通信機能を備えています。これらのオプションは,DECまたはサード・パーティのレイヤード・プロダクトに依存し,基礎となるプロダクトがリリースされるときに提供されます。

B.2.2 ソフトウェア・アーキテクチャ

Omega-1は 図 B-1 に示すように,層に分かれています。この層構造によって,高いレベルのソフトウェア移植性を実現しています。これは,システムの約10パーセントだけが特定の実現方法に依存し,このコードはすべて1つのモジュール群,つまりホスト層に含まれているからです。

アプリケーション層とコア層は,すべてのソース・ファイルを再コンパイルおよび再リンクするだけでAXPプラットフォームで実行できると考えられます。そのための前提条件は,Omegaソフトウェア開発ツールを正しく移行できることだけです。しかし,これらの開発ツールも移植可能であると考えられ,OpenVMS AXPのランタイム・ライブラリとCコンパイラにのみ依存します。

ホスト層では,VAXハードウェアに依存している一部のモジュールを再開発するなど,多くの変更が必要になります。

図 B-1 Omega-1の層構造


B.2.3 イメージ分析の結果

Omega-1は再コンパイルおよび再リンクされますが,ホスト層の26のイメージを分析するために,まずVAX Environment Software Translator(VEST)を使用しました。これらのイメージの多くには,D浮動小数点データ型に依存する命令が含まれています。このデータ型はVAX Cの省略時の設定です。Omegaの技術者がD浮動小数点を別の浮動小数点フォーマットに移行することを決定した場合には,VAXとAXPが混在する VMSクラスタ環境で,データ・ファイルの互換性に関する問題が発生することに注意しなければなりません。

表 B-1 は,イメージ分析で各イメージによって生成されたエラー・メッセージを示しています。

表 B-1 イメージ分析の結果
イメージ名 VESTが検出した%コード 検出した主な要素
OMEGADEV60 -Fatal errors-
no code found
VEST-F-PROTISD
VEST-F-ISDALIGN
VEST-F-ISDMIXED
VEST-W-STACKMATCH
パック10進命令
OMECRTL 92% VEST-W-STACKMATCH
VEST-W-STKUNAL
パック10進命令
PSCN 64% VEST-W-STKUNAL
VEST-W-STACKMATCH
PVSN 65% VEST-W-STKUNAL
VEST-W-STACKMATCH

次のリストは,Omegaイメージを分析した結果,検出された主な要素を説明しています。

B.2.4 ソース分析の結果

前に説明したように,アプリケーション層とコア層の移行はかなり簡単です。しかし,Omega-1のホスト層にはVAXに依存する部分が数多く含まれています。Omegaの技術者と検討した結果,アーキテクチャに依存する部分は次のとおりであることがわかりました。

B.3 中間目標と成果物

Omega-1の基本プロダクトの出荷予定日は1992年12月です。表 B-2 は,基本プロダクト・プロジェクトの主な中間目標と成果物を示しています。各成果物についての詳しい説明は,付録 B.4 節 を参照してください。

表 B-2 中間目標と成果物
中間目標 責任者 DECの役割 終了日
Omega-1ライン・モード・プロダクト Omega/Digital コンサルティング 1991年11月
新しいクロス・イメージ・ブリッジ Omega/Digital コンサルティング 1991年12月
浮動小数点に関する判断 Omega --- 1991年12月
Omega-1例外モジュール Omega/Digital コンサルティング 1992年1月
コード・ジェネレータの実現開始 Omega/Digital コンサルティング 1992年1月
アプリケーション層の構築 Omega/Digital コンサルティング 1992年1月
コード・ジェネレータのテスト Omega/Digital テスト・スクリプトの実行 1992年3月
アプリケーションのテスト Omega/Digital テスト・スクリプトの実行 1992年5月
Motifユーザ・インターフェイスの実現とテスト Omega/Digital テスト・スクリプトの実行 1992年7月
Omega QAとフィールド・テストの開始 Omega 訪問サポート 1992年12月
出荷日 Omega --- 1992年12月

B.4 技術的なアプローチ

この後の節では,この移行プロジェクトの各中間目標を実現するために採用したアプローチについて,詳しく説明します。

B.4.1 ライン・モード・プロンプト

最初の中間目標はOmega-1にライン・モード・プロンプトを導入し,実行のために意味のあるOmega-1プログラム名とコマンド・シーケンスを入力することです。この目標を達成すれば,開発ツールとランタイム・ライブラリの基本的な機能を示すことができます。この時点で,次の要素を除き,ホスト層は正しく機能します。

さらに,コア層も正しく機能し(ウィンドウ・ユーザ・インターフェイスを除く),少なくとも1つのOmega-1アプリケーションを試すことができます。この作業はDECからのサポートのもとに,Omega VMSホスト・グループが実行します。

B.4.2 イメージ・ブリッジ

Omega-1には,イメージ間ですべてのジャンプをディスパッチする,中心的なブリッジ・ルーチンがあります。このため,Omega-1はアンロードされているイメージ内のルーチンを呼び出し,これらのイメージを動的にロードすることができます。また,ブリッジ・ルーチンの採用により,Omega-1ではイメージをアンロードできます。

OpenVMS AXPオブジェクト・ファイルのフォーマットとイメージ起動ルーチンはすでに設定されており,OpenVMS AXPのブリッジの実現は,OpenVMS VAXの場合と同様の方法で実行できます。

この作業は,DECのサポートのもとにOmega VMSホスト・グループが実行し,必要な変更は 1991年12月までに終了できます。


前へ 次へ 目次 索引