100 万行を超える COBOL コードを含むシステムを維持しています。COBOL で記述したすべてのビジネス ロジックを失うことなく GUI (おそらく Windows ベース) に移行する方法について誰か提案がありますか? はい、ビジネス ロジックの一部は、現在のユーザー インターフェイス内に埋め込まれています。
4 に答える
それが私だったら、私はこのようなものを調べます:
機能を公開するインターフェイスでCOBOLをラップし(まだそのように記述されていない場合)、.NETアプリケーションから呼び出すのはかなり簡単です。
このようなことをしなかったので、メインフレームから降りるのに約15年かかりました。
おそらく、スクリーン スクレーパーを作成するのが最善の策です。主要な ERP システムの一部は、サーバー ベースのアプリから 3 層アプリケーションへの移行中に何年もこれを行ってきました。私が使用したものには、定期的に使用されるフィールドのドロップダウン リスト、日付のポップアップ、さらにはスクレイピング入力に基づくクライアント ベースのマクロ言語など、興味深い機能がたくさんありました。
これらは素晴らしいものではありませんでしたが、クライアントにとってはうまく機能し、アプリケーションが引き続き信頼できる方法で動作することを確認しました.
これをまとめるにはさまざまな方法がありますが、少し考えてみると、おそらく Java または .net を使用してデスクトップ ベースのアプリケーションを作成し、もう少し努力すれば Web ベースの実装を作成できます。
Microfocusは、COBOL が Web サービスと対話できるようにする Enterprise Server と呼ばれるツールを提供します。
COBOL プログラム A と別の COBOL プログラム B があり、A がインターフェイス セクションを介して B を呼び出す場合、このツールを使用すると、B のインターフェイス セクションを Web サービスとして公開できます。
次に、プログラム A に対してクライアント プロキシを生成すると、A は Web サービスを介して B を呼び出すことができます。
もちろん、B には Web サービスがあるため、他の種類のプログラム (コマンド ライン、Windows アプリケーション、Java、ASP など) もそれを呼び出すことができます。
このアプローチを使用すると、COBOL ビジネス エンジンを利用しながら、ASP のようなものを使用して、GUI を最新のブラウザー ベースのアプローチに移行することができます。
そして、適切な Web サービスのセットがあれば、これらを長期的に COBOL から離れる方法を提供する新しい開発に使用できます。
ESBを使用してバックエンドのレガシー サービスを公開し、GUI をコーディングして ESB 経由でサービスを呼び出すことができます。
その後、選択した新しいプラットフォームでレガシー サービスを実装に置き換えることができます。
GUI は、サービスへのインターフェイスが変更されない限り、バックエンド サービス実装のカットオーバーを認識する必要はありません。マイナーな変更は、ESB によって GUI から隠される場合があります。
従来のユーザー インターフェイス レイヤーに存在するビジネス ロジックは、ビジネス ロジックを抽出し、ESB を介して新しい GUI によって使用される新しいプラットフォーム上の新しいサービスとして公開することによって、リファクタリングする必要があります。
新しい GUI のプラットフォームの選択については、ネイティブの Windows プラットフォームではなく、Web ベースの UI を検討してみてください。少なくとも UI の更新は、ロールする必要はなく、Web サーバーに適用するだけで済みます。変更を個々のワークステーションに送信します。