お問い合わせ

ホーム > COBOLのはなし > COBOLシステムの変遷(2) エミュレータの機能向上

COBOLシステムの変遷(2) エミュレータの機能向上

福島 秀明(富士通株式会社 アプリケーションマネジメント・ミドルウェア事業部)

COBOLを利用したシステムの構成は、大きく3種類あります。ここでは、最も歴史が長い構成であるホストシステムについて解説します。
一口にホストシステムと言っても、クライアントの種類などで、いくつかのバリエーションがあります。例えばクライアントは、古くは専用端末しかありませんでしたが、専用端末と同様に振る舞うソフトウェアをパソコンに導入すれば機能を代替できるようになりました。さらに、Webブラウザからホストコンピュータにアクセスするためのエミュレータ製品などもあります。
ホストシステムの特徴は、ホストコンピュータがプレゼンテーション層、ビジネスロジック層、DB層をすべて受け持つことです。クライアントにユーザーがアプリケーションを作り込む必要はありません。クライアントに導入した、ハードウェアやベンダーが提供するソフトウェアが、プレゼンテーション層とのデータ送受信や表示/入力を行います。それでは、登場してきた順番でホストシステムのバリーションを解説します。

構成① 専用端末からアクセスする

COBOLシステムの出発点は、クライアントが専用端末、サーバーがホストコンピュータという形態です。専用端末の画面表示は文字ベースのインタフェース(CUI)となります。DB層には、索引ファイル、階層型DB、ネットワーク型DB、リレーショナル型DBなどのデータベースが用いられます。専用端末とホストコンピュータは、ベンダーが独自に規定したプロトコルでやり取りします。
オンラインシステムでは、一般的に複数のクライアントとやり取りします。複数のクライアントを制御する処理は複雑であり、そのロジックをユーザーが作り込むことは現実的ではありません。そのため、ホストコンピュータを利用したシステムの多くは「TPモニター」を採用してトランザクションを制御しています。
ただし、ホストコンピュータを利用しても、小規模なオンラインシステムでは、TPモニターを使用せずTSSとプログラムの作込みで対応するケースもあります。具体的には、プログラムに「再入可能な属性」を付与します。通常、ホストコンピュータ側ではクライアントの数だけメモリー内にプログラムを立ち上げ、同じプログラムが起動済であれば、これを共有することでメモリーを節約します。プログラムのコンパイル時およびリンク時に再入可能属性を付与すれば、プログラムの手続き部が共有できます。なお、データ部は各クライアント個別に確保されます。
また、COBOL開発に目を向けるとクライアントの画面や帳票の体裁や管理をプログラムの外部に切り出すことにより、プログラムをクライアントとの入出力データの処理に専念させることで、開発の負荷を軽減させる機能/ツールもあります。COBOLプログラムは、READ/WRITE文、SECEIVE/SEND文、ACCEPT/DISPLAY文などの命令文でオンラインデータの表示/入力を行います。

構成② エミュレータで専用端末を代替

PCの普及に伴い、ホストシステムのクライアントは、構成①の専用端末に代わって、PC +「エミュレータ」が多用されるようになりました。
この構成では、PCに導入したエミュレータが、専用端末と同様に振る舞うので、ユーザーは専用端末と同様の操作をPC上で実行できます。そのため、専用端末で利用しているプログラムを変更することなく、ユーザーを拡大できるというメリットが生まれます。ただし、専用端末のキーボードで利用していた実行キーや多くのファンクションキーはPCのキーボードには存在しないため、他のキーに割り付けた上でエミュレータを利用する必要があります。
この構成では専用端末と同様の操作性が引き継がれるため、CUI画面が基本となります。ただし、エミュレータによってはツールバーを付与できたり、マウスが利用できるなど、PCの特徴を活かせるものもあります。
通信プロトコルにTCP/IPを用いる場合は、クライアントとホストコンピュータ間に「プロトコル変換ゲートウェイ」を設置する必要があります。通信の制御や、ホストコンピュータの独自プロトコルとLANやWANで利用するTCP/IPなどの通信プロトコルとの変換を担当します。

構成③ エミュレータでGUIを実現

構成②のエミュレータは時代とともに進化してきました。そのなかには、クライアントの画面表示をCUIからGUIに変更できるエミュレータもあります。
このエミュレータを利用する準備として、COBOLプログラムで扱う画面入出力レコードの各データ項目を、クライアント画面上のGUIコンポーネントに対応付けて外部に定義しておきます。例えば、CUIでは商品コードで入力するフィールドを、GUIではコンボボックスに対応させ、プルダウンから商品名を選択させるように定義しておきます。エミュレータはこの定義を読み込み、GUI画面を表示します。
アプリケーションの機能が引き継がれると同時に、プログラムの変更なしにクライアントの操作性を向上できることがメリットです。

構成④ Web版のエミュレータを使う

構成②のもう一つの発展形として、Webブラウザをクライアントとして利用できるエミュレータもあります。この構成では、前述のプロトコル変換ゲートウェイに代えて、CUI画面をHTMLへ変換するためのエミュレータをサーバーに導入します。このサーバーとクライアントであるWebブラウザはHTTPプロトコルでやりとりします。
構成②と同様、クライアントの操作性がそのまま引き継がれることに加え、プログラムをほとんど変更することなくWebシステムへ移行できること、各クライアントへのエミュレータ配布が不要になること、などがメリットです。