既に説明したような分散開発のメリットを最大限に生かし、そのデメリットを最小限にするためには、分散開発を適用する範囲の選択が重要です。
分散開発の対象となるプログラムの開発目的として、以下が考えられます。
UNIX系プログラムの新規開発
既存のUNIX系プログラムの保守・機能拡張
他システムで動作する既存プログラムのUNIX系システムへの移植
Windowsシステムからの移植
OSIV系システム(富士通製メインフレーム)からの移植
ただし、実際に分散開発を適用する場合の主なプログラム資産の流れを考えると、これは次の図のような3つのパターンに分類できます。ここでは、この3つのパターンに対して、どのように分散開発を適用すべきかを説明します。
パターンA
新規にUNIX系システムのプログラムを開発する、あるいは既にWindowsシステムで稼働しているCOBOLプログラム(NetCOBOLで開発したもの)をUNIX系シテスムに移植するために、分散開発を適用する場合です。
NetCOBOLの提供する分散開発支援機能は、このパターンでの開発を想定して提供されているため、このマニュアルで説明する手順をそのまま適用できます。以下に、その概要を説明します。
COBOLソースを始めとする各種プログラム資産をPC上で作成・更新します。
COBOLソースプログラム
COBOL登録集原文(COPY句)
画面帳票定義体
オーバレイパターン
この際、作成・更新するプログラム資産をNetCOBOLのプロジェクトマネージャで作成するプロジェクトに登録します。この登録情報を元にUNIX系システムでの翻訳・リンク用の制御文(Makefile)を生成することができます。
NetCOBOLを使用して、Windowsシステムで作成・更新したプログラム資源を翻訳・リンクします。この作業は、次のような目的で行います。
作成したプログラム資源に誤りや矛盾がないことをまず確認する。
プロジェクトマネージャに登録したプログラム資産の依存関係をチェックする。
単体テスト用の実行形式プログラムを作成する。
Windowsシステムで翻訳・リンクしたプログラムを使用して、そのプログラムに閉じた範囲の機能をテストします。NetCOBOLの提供するデバッグ機能(CHECK、COUNT、TRACE)と対話型デバッガを使用して、Windowsシステム上でプログラムの誤りを発見することができます。
Windowsシステムで翻訳・リンクしたプログラムは、UNIX系システムでは動作しません。このため、Windowsシステムで作成・更新したプログラム資産をUNIX系システムに転送して、UNIX系システムのNetCOBOLを用いて、改めて翻訳・リンクします。
このために必要となる以下の操作は、NetCOBOLのプロジェクトマネージャの操作によって可能です。
UNIX系システムへのプログラム資産の転送
UNIX系システム上での翻訳・リンクのための制御文(Makefile)の生成
UNIX系システム上での翻訳・リンクの実行
UNIX系システム上で翻訳・リンクし直したプログラムによるテストを実施します。
この際、Windowsシステム上の対話型デバッガを使用して、UNIX系システム上のプログラムをリモートデバッグすることができます。
対象となるプログラムが分散開発の適用に不向きなCOBOL言語の機能を使用していない限り、全工程に分散開発を適用することが、作業の効率化につながります。
パターンB
既にUNIX系システムで稼働しているCOBOLプログラム保守および機能拡張のために分散開発を適用する場合です。
この場合でも、次の作業を先立って行うことだけで、パターンAで示した各作業を実施することは可能です。
UNIX系システム上に存在するCOBOLソースを始めとする各種プログラム資産を、Windows-PC上に移行します。
COBOLソースプログラム
COBOL登録集原文(COPY句)
画面帳票定義体
オーバレイパターン
NetCOBOLのプロジェクトマネージャで空のプロジェクトファイルを作成し、UNIX系の分散開発の設定を行うと、プロジェクトマネージャを使用してUNIX系システムからファイルを受信することができるようになります。その後、受信したプログラム資産をプロジェクトに登録します。
しかし、このような作業の進め方による開発作業の効率化が期待できるのは、複数のプログラム資産にまたがる規模の大きな修正を実施する場合だけです。
修正の範囲が限定される、あるいは規模が小さい場合は、プログラム資産のWindowsシステムへの移行とプロジェクトファイルを作成する作業は無駄になります。むしろ、開発環境は基本的にUNIX系システム上に既に存在するものを使用し、特定の作業に限定して、分散開発を適用するほうが、効率的です。
以下にその考え方を図で示します。
リモートビルドやリモートデバッグなどの機能の有用性は、いずれの場合も変わりません。
また、UNIX系システム側で作成したプログラムのデバッグにのみ、分散開発を適用することも可能です。COBOLソース・登録集などのプログラム資産をWindowsシステム側に転送して、適切に配置することでリモートデバッグが可能となります。リモートデバッグ時のプログラム資産の配置については“表4.6 リモートデバッグ時の資産格納場所”を参照してください。
パターンC
OSIV系システムで稼働しているCOBOLプログラムをUNIX系システムに移植する際に分散開発を適用する場合です。
この場合でも、次の作業を先立って行うことだけで、パターンAで示した各作業を実施することは可能です。
OSIV系システム上に存在するCOBOLソースを始めとする各種プログラム資産を、Windows-PC上に移行します。
COBOLソースプログラム
COBOL登録集原文(COPY句)
フォーマット定義体(オープン系システムの画面帳票定義体に相当)
オーバレイ定義体
NetCOBOLのプロジェクトマネージャで空のプロジェクトファイルを作成し、OSIV系の分散開発の設定を行うと、プロジェクトマネージャを使用してOSIVシステムからファイルを受信することができるようになります(ただし、定義体類は移行に先立ってファイルの形式を変換する必要があります)。その後、受信したプログラム資産をプロジェクトに登録します。
参照
“OSIV分散開発の手引き”
このような作業の進め方は、プログラム資産およびその開発環境の移行を次の2段階で行うことに相当します。
OSIV系システムからWindowsシステムへの移行
WindowsシステムからUNIX系システムへの移行
あえて、このように2つの段階を持って、移行を実施することは無意味にも見えますが、このような手順を取る方が、UNIX系システムに直接移行するよりも効率的な開発が可能になります。
これは、OSIV系システムのCOBOL85とNetCOBOLの機能差が、各プラットフォーム向けのNetCOBOL製品間の機能差よりも遥かに大きいためです。
UNIX系システムとWindowsシステムのNetCOBOLの機能範囲を“図1.8 UNIX系システムとWindowsシステムの機能範囲”に示します。
以降では、“図1.8 UNIX系システムとWindowsシステムの機能範囲”に従って、各機能範囲に対し分散開発が適用可能かを説明します。
共通仕様範囲の機能
“図1.8 UNIX系システムとWindowsシステムの機能範囲”で“***”を付けて表示した機能は、各オペレーティングシステム用のNetCOBOL製品間で、共通の仕様を持ちます。これらの機能のみを使用しているプログラムには、最大限に分散開発が適用可能です。
通常のWindowsシステム上のプログラム開発と同じ手順で翻訳・リンク・実行を行って、プログラム単位で動作を確認するところまでを、Windowsシステム上で可能です。
Linux 32bit版 NetCOBOLに機能差がある機能
“図1.8 UNIX系システムとWindowsシステムの機能範囲”で“**”を付けて表示した機能は、Linux 32bit版 NetCOBOLでは提供されていません。これらの機能を使用し、Linux上で動作するプログラムは作成することはできません。
Solaris 32bit版 NetCOBOLでは、共通仕様範囲と同様に、分散開発が適用可能です。
Windows-UNIX系間で機能差がある機能
“図1.8 UNIX系システムとWindowsシステムの機能範囲”で“*”を付けて表示した機能は、Windows-UNIX系間で機能差があります(Solaris 32bit版 NetCOBOL/Linux 32bit版 NetCOBOLの間でも機能差を持つ場合があります)。機能差の原因はさまざまですが、その現れ方は次のいずれかです。
実行結果の違い
組み合わせ可能なミドルウェア製品に依存した機能差
以下、それぞれの場合について分散開発がどこまで適用可能となるかを説明します。
“図1.8 UNIX系システムとWindowsシステムの機能範囲”における次の機能がこれに当たります。
表示ファイル機能(画面・帳票)
日本語処理
拡張日本語印刷
これらの機能については、ソースレベルでの互換性はありますが、実行時の動作については完全に互換性が保証される訳ではありません(詳細は“付録A NetCOBOL製品の相違点”を参照)。
これらの機能を使用する場合、単体テストをWindowsシステムで実施することはあまり意味を持ちません。
“図1.8 UNIX系システムとWindowsシステムの機能範囲”における次の機能がこれに当たります。
データベース操作(SQL)
Web連携機能
これらの機能は、COBOL言語の機能だけでは実現できないため、他のミドルウェア製品が必要となりますが、組み合わせ可能なミドルウェア製品(データベース、Webサーバ等)の有無・連携方法の違いから機能差が生じます。
次のような条件を満たすなら、共通範囲と同じように分散開発をすることができます。
WindowsシステムとUNIX系システムで同じミドルウェア製品が組み合わせ可能である。
データベース製品であれば、接続方法についても同じ方法を使用できる。
ただし、Windowsシステムでこれらのミドルウェア製品と連携するプログラムの単体テストを実施する場合、これらのWindows版NetCOBOL製品のライセンスが必要になってきます。
UNIX系システムのNetCOBOLとWindows版NetCOBOLにおいて、提供するCOBOL言語の機能差は“図1.8 UNIX系システムとWindowsシステムの機能範囲”で示したとおり、大きなものではありません。
しかし、開発系製品で提供する開発用の各種ツールの機能差は大きなものがあります。“表1.2 NetCOBOL開発系製品のコンポーネントの機能差”にUNIX系の各開発製品で提供される開発用のコンポーネントの機能差を示します。
なお、表中の(1)~(3)はそれぞれ、次の製品を表します。
(1) : Solaris 32bit版 NetCOBOL
(2) : Linux 32bit版 NetCOBOL
(3) : Linux(Itanium) 64bit版 NetCOBOL
コンポーネント名 | 機能概要 | 各製品の状況 | 備考 | ||
---|---|---|---|---|---|
(1) | (2) | (3) | |||
FORM/PowerFORM | 画面・帳票定義体 オーバレイパターンの作成 | × | × | × | |
プロジェクトマネージャ | 統合開発環境 | △ | × | × | Solaris 32bit版NetCOBOLはX-Windows環境があれば使用可能。 その他、コマンド形式の開発支援ツールが存在。 |
SIMPLIA | 保守用ドキュメント作成 テスト支援・データ移行 | △ | △ | △ | 各製品において、データ移行機能のみを提供。 |
対話型デバッガ | デバッグ | △ | △ | × | Solaris 32bit版 NetCOBOLはX-Windows環境があれば、GUIを使用した対話型のデバッグが可能、X-Windows環境がない場合はラインモードでのデバッグのみとなる。 Linux 32bit版NetCOBOLでは、一部の機能が制限されるラインモードでのデバッグが可能。 Linux(Itanium) 64bit版 NetCOBOLでは、COBOLデバッガは提供されないが、gdbによるデバッグが可能。 |
△:提供(ただし、Windows版NetCOBOLと機能差あり)
×:未提供
分散開発を適用することで、UNIX系のNetCOBOLの開発製品で提供されるコンポーネントの機能差を補うことができます。