COBOLコードが100万行以上あるシステムを維持しています。 COBOLで作成したビジネスロジックをすべて失うことなく、GUI(おそらくWindowsベース)に移行する方法についての提案がありますか?そして、はい、ビジネスロジックのいくつかは、現在のユーザーインターフェイスの内部に埋め込まれています。COBOLで書かれたビジネスロジックを失うことなくGUIに移行
答えて
おそらくscreen scraperを書くことが最善の策です。いくつかの主要なERPシステムは、サーバーベースのアプリケーションから3層アプリケーションへの移行中にこれを何年もやってきました。 1つは、定期的に使用されるフィールド、日付ポップアップ、さらにはスクレイピング入力に基づくクライアントベースのマクロ言語のドロップダウンリストなどの面白い機能が満載です。
これらは素晴らしいものではありませんでしたが、クライアントにとってうまく機能し、アプリケーションが依然として信頼できる方法で動作していることを確認しました。
これをまとめる方法はたくさんありますが、もし考えてみれば、おそらくjavaや.netを使ってデスクトップベースのアプリケーションを作成し、少しでもWebベースの実装を行うことができます。
それは私だった場合、私はこのようなものになります。
それはまだことを書かれていない場合(機能を公開インターフェースを使用してCOBOLをラップするためにかなり簡単なはずNETアプリケーションから呼び出すことができます。
このようなことをしなかったので、私たちのメインフレームから降りるまでには約15年かかりました。
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サーバーに適用する必要があります。個々のワークステーションに変更を展開する必要があります。
- 1. GMPとのエラー私はCOBOLで、このハローワールドプログラムを実行したいCOBOL
- 2. COBOLからC++への移行
- 3. Javaでgui移植を行うには?
- 4. ビジネスロジックをサービスに移行する:
- 5. COBOLでSQLiteコールバックを書く方法
- 6. Laravel 5.2データを失うことなく移行を更新する方法
- 7. UWPハンバーガーメニューを失うことなくフレーム間を移動する
- 8. WCF /クライアントアプリ - ビジネスロジックはどこに行くべきですか?
- 9. Fujitsu COBOL 3.0 - 富士通COBOL 3.0でcobol progを実行中に
- 10. GLADEのような最もよく書かれたpythonフレンドリーなGUIビルダー
- 11. 位置を失うことなく同じ行にあるオブジェクト?
- 12. COBOLは、私はいくつかのレガシーCOBOLコードを変換するに取り組んでおり、このような文に出くわしたんだ
- 13. コマンドラインでGUIの作業を行うプログラムを書く
- 14. Python2でインポートされたモジュールを失うことなく辞書でevalを使用
- 15. angularjsアプリケーション - javascriptファイル内に書かれた角度コントローラにビジネスロジック/バックエンドコードを含めることができます
- 16. フィールドを失うことなくSplunkマップ
- 17. squeakにGUIを書く
- 18. 履歴を失うことなく、Mercurialサーバーから別のMercurialサーバーに移行するにはどうすればよいですか?
- 19. 前の行を失うことなくDataTableに行を追加します。
- 20. ヘッダーを失うことなくDataSetにバインドされたDataGridViewをクリアするVB.NET
- 21. コミットされていないファイルを失うことなくリセット
- 22. ターゲットコントローラでデータを失うことなくモーダルビューを開くにはどうすればよいですか?
- 23. GHC 7.10.xの移行:なぜApplicativeインスタンスに "pure = return"と書くことができませんか?
- 24. 書式を失うことなく、別の単語文書に単語文書を挿入します。
- 25. 移行することなくBluemixからClearDBをアップグレードする
- 26. ビジネスロジックをどこに置くべきですか? chanelRead0()またはタスクを実行しますか?
- 27. パンダ:グループ化された列を失うことなくgroupbyとaggregate
- 28. C#Entity Framework:自動移行を使用してデータを失うことなくテーブルフィールドの名前を変更
- 29. フォーカスを失うことなくcontenteditableでタブするには?
- 30. (Python GUI)短く効率的なコードを書くにはどうすればいいですか