我們維護一個擁有超過一百萬行COBOL代碼的系統。有人會建議如何遷移到GUI(可能是基於Windows),而不會丟失我們在COBOL中編寫的所有業務邏輯?是的,一些業務邏輯被隱藏在當前的用戶界面中。遷移到GUI而不會丟失用COBOL編寫的業務邏輯
回答
寫一個screen scraper可能是你最好的選擇。在從基於服務器的應用程序轉換到3層應用程序的過程中,一些主要的ERP系統已經這樣做了多年。我曾經使用過的一些有趣的功能,如常用字段的下拉列表,日期彈出窗口,甚至基於刮取輸入的基於客戶端的宏語言。
這些都不是很好,但對客戶很好,並確保應用程序仍然以可靠的方式工作。
有很多不同的方法可以將它們放在一起,但是如果你想一想,你可以用java或.net來創建一個基於桌面的應用程序,只需要額外的努力就可以創建一個基於web的實現。
如果是我,我會考慮這樣的事情:
應該很容易暴露的功能(如果它不是已經寫了一個接口來包裝你COBOL方式),然後從.NET應用程序調用它。
我們花了大約15年的時間才從主機上下車,因爲我們沒有這樣做。
Microfocus提供了一個名爲Enterprise Server的工具,它允許COBOL與Web服務交互。
如果您有COBOL程序A和另一個COBOL程序B和A通過接口部分調用B,該工具允許您將B的接口部分作爲Web服務公開。
對於程序A,您隨後生成客戶端代理,並且A現在可以通過Web服務調用B.
當然,因爲B現在有一個web服務,現在任何其他類型的程序(命令行,Windows應用程序,Java,ASP等)也可以調用它。
使用這種方法,您可以「蠶食邊緣」,使用ASP之類的東西將GUI遷移到現代的基於瀏覽器的方法,同時仍然使用COBOL業務引擎。
一旦你有一套體面的Web服務,這些可以用於任何新的開發,這提供了一種遠離COBOL的方式。
您可以使用ESB公開後端傳統服務,然後編寫GUI以通過ESB調用服務。
然後,您可以開始使用您選擇的新平臺上的實施來替換舊服務。
只要到服務的接口沒有改變,GUI不需要意識到切換後端服務實現 - ESB可能會隱藏GUI的細微變化。
駐留在遺留用戶界面層的業務邏輯需要通過提取業務邏輯並將其作爲新服務公開在新平臺上供新GUI使用,通過ESB進行重構。
至於新GUI平臺的選擇,爲什麼不考慮一個基於Web的UI而不是一個本地的Windows平臺,那麼至少UI的更新只需要應用到Web服務器而不是必須對每個工作站進行改動。
- 1. 編輯Log4Net loggingEventData而不會丟失messageobject
- 2. 將業務邏輯遷移到服務:替代節點
- 3. PHP:Zend_Layout:在哪裏編寫業務邏輯?
- 4. 從wordpress遷移到Django,而不會丟失網頁鏈接
- 5. Qt GUI和業務邏輯模塊
- 6. EF遷移 - 遷移期間修改現有數據W/C#業務邏輯
- 7. 編輯RichTextBox的編程方式,而不會丟失格式
- 8. 遷移從belong_to對mongoid has_and_belongs_to_many而不會丟失數據
- 9. 業務邏輯
- 10. 降低圈複雜度,而不會影響業務邏輯
- 11. 如何編寫應用業務邏輯的LINQ?
- 12. SugarCRM邏輯掛鉤從CE遷移到專業版問題
- 13. 重構業務/數據邏輯準備將WebForms遷移到MVC的建議
- 14. 如何從REST遷移到GDAA Api而不丟失文件?
- 15. WCF數據服務 - 我在哪裏編寫業務邏輯
- 16. 業務邏輯exception.example
- 17. 業務邏輯類
- 18. ASP.NET業務邏輯
- 19. 重用java業務邏輯
- 20. 可編輯的Jeditable編輯過程中不會丟失樣式?
- 21. COBOL程序中的邏輯
- 22. 域邏輯和業務邏輯
- 23. 演示邏輯或業務邏輯?
- 24. 有沒有Java Swing GUI邏輯和業務邏輯解耦的工具/軟件?
- 25. 業務邏輯和服務
- 26. 如何將郵件帳戶從一臺服務器遷移到另一臺服務器而不會丟失?
- 27. 有沒有辦法使用south進行遷移,而不會丟失數據?
- 28. Netty中的業務邏輯?
- 29. 同步的業務邏輯
- 30. Java中的業務邏輯