お問い合わせ

ホーム > COBOLのはなし > COBOLシステムの変遷(3) COBOLからプレゼンテーション層を切り出す

COBOLシステムの変遷(3) COBOLからプレゼンテーション層を切り出す

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

次に、クライアントに処理を分散配置する「クライアント/サーバー・システム(C/Sシステム)」において、COBOLがどのように活用されてきたかを見ていきます。
ダウンサイジングやオープンシステムというキーワードとともに、1990年代にC/Sシステムの採用が一気に進みました。C/Sシステムではプレゼンテーション層やビジネスロジック層をクライアントに配置していることが特徴です。
この構成では、GUIを活用した表現力の高い画面や業務処理をクライアントに実装できます。また、クライアントとサーバーの開発を分業して小回りの効く開発ができることもメリットです。さらに、クライアント側で入力項目のインプットチェックなどを実行できるため、サーバーの処理負荷を抑えられます。加えてそれに伴うネットワークのデータ転送量が削減できるメリットも得られます。しかしその反面、クライアントに対してアプリケーションを配布しなければならないため、クライアントの運用管理コストが増大するという問題があります。

オープンシステム化に伴う注意点

単一のホストコンピュータ上で集中処理していたホストシステムを、オープンシステムにおける多階層モデルに移行する場合、業務処理の中心を占めるビジネスロジックの多くが流用/活用できます。ただし、次のような注意が必要になります。
プレゼンテーション機能をクライアントに導入するには、基本的には元のホストシステムからプレゼンテーション層を切り出し、再構成する必要があります。元のプログラム構造にも依存しますが、ホストシステムでプレゼンテーション層とビジネスロジック層が一体として記述されている場合、切出し作業にはそれなりの手間がかかります。また、データの管理についても、索引ファイルや階層型DBをリレーショナル型DBに変更する場合、プログラム構造の変更に負荷がかかります。
移行に伴う開発の負担は、利用する開発言語に依存します。C/Sシステムでのプレゼンテーション層の開発言語はVisual Basicなどが使われます。しかし、ビジネスロジック層の開発はもちろんのこと、プレゼンテーション層のGUI開発にもCOBOLは利用できます。このような形態であれば、COBOL開発者のノウハウが活かせます。
クライアントとサーバー間の連携に使う方式は、利用するプラットフォームによって、DCOMベースとするRPCが使えたり、CORBAをベースとするTPモニターを介した連携が使えたりします。その他、非同期型の連携方法もあります。

構成⑤ 業務をクライアントに切り出す

ホストコンピュータをサーバーととらえたC/Sシステムです。ホストシステムにおいても、柔軟なプレゼンテーション層を実現する高機能なGUIクライアントへの要望はあります。PCの高性能化などを背景に、クライアントにプレゼンテーション層だけでなくビジネスロジック層も配置し、ホストコンピュータにはDB層のみを配置する例もあります。この構成では、クライアントはホストシステムに格納されているデータを利用してアプリケーションを実行します。特にオフコンをサーバーとして利用しているシステムでは、この構成が多く用いられます。
先に説明したホストシステムからこの構成に移行するには、ホストコンピュータから業務全体、あるいは特定機能や部門業務など、まとまった単位でビジネスロジックを切り出してクライアントへ移行する必要があります。
もちろん、クライアントに実装するビジネスロジックは、ホストコンピュータで稼働しているCOBOLプログラムを移行できます。もし、ホストシステムとオープンシステムとで、利用しているCOBOLベンダが同じで、かつホストコンピュータ版のCOBOL仕様がそのままオープンシステム版に継承されている場合は、プログラムをそのまま流用できる可能性が高いです。当然ですが、この構成でシステムに新規機能を追加する場合は、ホストコンピュータではなくクライアント側に追加します。
また、クライアントからホストコンピュータのDBにアクセスする際は、ローカルなDBアクセスと同様にREAD/WRITE文やSQL文を使用します。リモートファイルアクセスやリモートDBアクセスと呼ばれる機構を利用して、DBの所在を特に意識することなくデータ処理を行うことができます。

構成⑥ DBサーバーをダウンサイジング

この構成は、構成⑤のサーバーがホストコンピュータからUNIXやWindowsにダウンサイジングしたものととらえられます。そのため、先に説明した構成⑤と同様のメリットが得られます。比較的小規模のCOBOLシステムに適用されることが多いです。

構成⑦ 通常のC/Sシステム型

クライアントがプレゼンテーション層を、UNIXサーバーやWindowsサーバーがビジネスロジック層とDB層を、それぞれ担う構成で、「C/Sシステム」の中でも、一般にイメージされる形です。この構成はLANなど閉じたネットワーク環境で適用されることが一般的です。例えば、インターネット環境なら、ファイアウォールなどを使ったセキュリティ保護の保護レベルを維持しながら連携するのは、困難な場合があるからです。

構成⑧ クライアント機能をダウンロード

この構成は、構成⑦の発展形です。構成⑦では、VB、Java、COBOLのGUI拡張機能などで開発したアプリケーションをクライアントごとに導入します。そのため、クライアント側で稼働するアプリケーションに変更が発生した際は、すべてのクライアントに対してアプリケーションを再配布する手間が必要です。
構成⑧では、利用時にアプリケーションをサーバーから動的にダウンロードします。この形態であれば、変更が発生してもサーバー側のアプリケーションをメンテナンスすれば済みます。
実際には、アプリケーションはActiveXコントロールやJavaアプレットの形で実装します。オンラインシステムにおける表示/入力や印刷の処理とそれに関連する処理をアプリケーションとしてまとめておけば、Web環境においてもC/Sシステムの構成を実現できます。また、クライアントのアプリケーションをHTMLのスクリプトとしてCOBOLで記述することも可能です。
さらに、ベンダーのツールによってはWebへスムーズに移行できるものもあります。例えば、クライアントでの表示/入力および印刷の各処理をツールで実現していた場合、そのツールの機能がActiveXコントロールとして提供されていることもあります。この場合、プレゼンテーション層の分離のためのプログラムの改変は不要です。
この構成では、C/Sシステムのメリットであるサーバーや回線の負荷軽減、および柔軟なプレゼンテーションの実現が踏襲され、さらにデメリットである各クライアントに対する保守管理の負担が解消されます。ただし、クライアントアプリケーションをダウンロードするため、初期立上げに時間がかかることに注意が必要です。
なお、この構成もセキュリティ上の問題から、イントラネットなど閉じたネットワーク環境で適用されることが一般的です。